Oracle结构管理

一、Oracle的相关服务
成功安装Oracle 11g后,共有7个服务,这七个服务的含义分别为:
注:ORCL是数据库实例名,默认的数据库是ORCL,你可以指定其他的实例名
1、Oracle ORCL VSS Writer Service 
        Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存储基础设备(比如磁盘,阵列等)
创建高保真的时间点映像,即映射拷贝(shadow copy)。它可以在多卷或者单个卷上创建映射拷贝,同时不会影响到系统的系统性能。(非必须启动)
2. OracleDBConsoleorcl
        Oracle数据库控制台服务,在运行Enterprise Manager(企业管理器OEM)的时候,需要启动这个服务。(非必须启动)
3. OracleJobSchedulerORCL
        Oracle作业调度(定时器)服务。(非必须启动)
4. OracleMTSRecoveryService
        服务端控制。该服务允许数据库充当一个微软事务服务器MTS、COM/COM+对象和分布式环境下的事务的资源管理器。(非必须启动)
5. OracleOraDb11g_home1ClrAgent
       Oracle数据库.NET扩展服务的一部分。 (非必须启动)
6、OracleOraDb11g_home1TNSListener
       监听器服务,服务只有在数据库需要远程访问的时候才需要。(非必须启动)。
7. OracleServiceORCL
      数据库服务(数据库实例),是Oracle核心服务该服务,是数据库启动的基础, 只有该服务启动,Oracle数据库才能正常启动。(必须启动)
 对于开发者来讲,要是只用Oracle自带的sql*plus的话,只要启动OracleServiceORCL即可,要是使用PL/SQL Developer等第三方工具的话,
 OracleOraDb11g_home1TNSListener服务也要开启。OracleDBConsoleorcl是进入基于web的EM必须开启的,其余服务很少用。
 
二、Oracle体系结构
        Oracle存储结构分为物理存储结构和逻辑存储结构
        实例结构分为内存结构和进程结构


1、物理存储结构
        物理存储结构由存储在磁盘上的操作系统文件所组成,Oracle运行时需要这些文件,一般,Oracle数据库在物理上主要由3种类型的文件组成,
分别是数据文件(*.dbf)、控制文件(*.ctl)和重做日志文件(*.log)。


(1)、数据文件(Data File)
        是存储数据库数据的文件,数据库中的所有数据最终都保存在数据文件中。例如,表中的记录和索引等。如果数据文件中的某些数据被频繁访问
,则这些数据会被存储在内存的缓冲区中。读取数据时,Oracle系统会先从内存的数据缓冲区中查找相关数据信息,如果找不到,
则从数据库文件中把数据读取出来,存放到内存的数据缓冲区中,供查询使用;存储数据时,修改后的数据信息,
也是先存放在内存的数据缓冲区中,在满足写入条件(例如执行提交操作)时,由Oracle的后台DBWn将数据写入数据文件。


//查询数据库的数据文件
select file_name from dba_data_files;
(2)、控制文件(Control File)
        控制文件是一个很小的二进制文件,用于描述和维护数据库的物理结构。在Oracle数据库中,控制文件相当重要,
它存放有数据库中数据文件和日志文件的信息。Oracle数据库在启动时需要访问控制文件,在数据库的使用过程中,
数据库需要不断更新控制文件,由此可见,一旦控制文件受损,那么数据库将无法正常工作。
   怎样设置多份控制文件


//查询控制文件信息
select name from v$controlfile;


(3)、重做日志文件(Redo Log File)
         重做日志文件是记录数据库中所有修改信息的文件,简称日志文件。其中,修改信息包括数据库中数据的修改信息和数据库结构的修改信息等,
例如删除表中的一行数据或删除表中的一列。如果只是进行了查询操作,则该操作不会被记录到日志文件中。
日志文件是数据库系统的最重要的文件之一,它可以保证数据库安全,是进行数据库备份与恢复的重要手段。
如果日志文件受损,数据库同样可能会无法正常运行。


//查询日志文件信息
select * from v$logfile;
或select MEMBER from v$logfile;


2、逻辑存储结构
        Oracle数据库从逻辑存储结构上来讲,主要包括表空间、段、区和数据块。这4者之间存在如下关系:多个数据块组成一个区;
多个区组成一个段;多个段组成一个表空间;而一个Oracle数据库由多个表空间组成。


(1)、表空间
        表空间是Oracle中最大的逻辑存储结构,它与物理上的一个或多个数据文件相对应,每个Oracle数据库都至少拥有一个表空间,
表空间的大小等于构成该表空间的所有数据文件大小的总和。表空间用于存储用户在数据库中创建的所有内容,例如用户在创建表时,
可以指定一个表空间存储该表,如果用户没有指定表空间,则Oracle系统会将用户的内容存储到默认的表空间中。


//系统默认安装的表空间
-- system
系统表空间,用于存储系统的数据字典、系统的管理信息和用户数据表等


-- sysaux
辅助系统表空间。用于减少系统表空间的负荷,提高系统作业效率。该表空间由Oracle系统自动维护,一般不用于存储用户数据


-- temp
临时表空间。用于存储临时的数据,例如存储排序时产生的临时数据。一般情况下,数据库中的所有用户都使用temp作为默认的临时表空间。


-- undotbs1
撤销表空间。用于在自动撤销管理方式下存储撤销信息。在撤销表空间中,除了回退段以外,不能建立任何其他类型的段。所以,
用户不可以在撤销表空间中创建任何数据库对象。


-- users
用户表空间。用于存储永久性用户对象和私有信息


//查看表空间信息
select tablespace_name from dba_tablespaces;
(2)、数据字典
       数据字典是Oracle存放数据库实例信息的一组表和视图,通过数据字典可以了解数据的详细信息。
       Oracle数据字典(Data Dictionary)是存储在数据库中的所有对象信息的知识库,
  Oracle数据库管理系统使用数据字典获取对象信息和安全信息,而用户和数据库系统管理员则用数据字典来查询数据库信息。
       Oracle数据字典保存有数据库中对象和段的信息,例如表、视图、索引、包、存储过程以及与用户、权限、角色、审计和约束等相关的信息。


 数据字典的分类:


主要分为4部分:


-- 内部RDBMS表:x$...


-- 数据字典表: ...$


-- 动态性能视图:gv$...、v$...


-- 数据字典视图:user_...、all_...、dba_...




 USER视图:
   以user_为前缀,用来记录用户对象的信息。例如user_tables视图


ALL视图:
   以all_为前缀,用来记录用户对象的信息以及被授权访问的对象信息。例如all_synonyms视图


DBA视图:
   以dba_为前缀,用来记录数据库实例的所有对象的信息。例如dba_table视图


V$视图:
   以v$为前缀,用来记录与数据库活动相关的性能统计动态信息。例如v$datafile视图


GV$视图:
   以gv$为前缀,用来记录分布式环境下所有实例的动态信息,例如gv$lock视图


 基本的数据字典:
dba_tables:        所有用户的所有表的信息
dba_tab_columns:   所有用户的表的字段信息
dba_views:         所有用户的所有视图信息
dba_synonyms:      所有用户的同义词信息
dba_sequences:     所有用户的序列信息
dba_constraints:   所有用户的表的约束信息
dba_indexes:       所有用户的表的索引简要信息
dba_ind_columns:   所有用户的索引的字段信息


 与数据库组件相关的数据字典
 数据库  v$datafile 记录系统的运行情况
 表空间  dba_tablespace 系统表空间的基本信息
        dba_free_space 系统表空间的空闲空间的信息
 控制文件 v$controlfile:系统控制文件的基本信息
         v$controlfile_record_section :系统控制文件中记录文档段的信息
         v$parameter:系统各参数的基本信息
 数据文件 dba_data_files :系统数据文件以及表空间的基本信息
         v$filestat:来自控制文件的数据文件信息
         v$datafile_header:记录数据文件头部分的信息


 常用的动态性能视图
v$fixed_table :显示当前发行的固定对象的说明
v$instance :显示当前实例的信息
v$latch: 显示锁存器的统计数据
v$librarycache:显示有关库缓存性能的统计数据
v$rollstat:显示联机的回滚段的名字
v$rowcache:显示活动数据字典的统计
v$sga: 显示有关系统全局区的总结信息
v$sgastat: 显示有关系统全局区的详细信息
v$sort_usage:显示临时段的大小及会话
v$sqlarea:显示SQL区的SQL信息


//查看SCOTT用户的table信息
COLUMN tablespace_name FROMAT A10;
 select table_name, tablespace_name, owner from dba_tables where owner='SCOTT';


 //查看所有用户的终端信息
select username, terminal from v$session where username is not null;


 //获取数据库实例信息
select instance_name, host_name, status from v$instance;


主键索引是在创建主键时一起创建的,是基于主键约束而建立的,是不可以为空也不可以重复
 而唯一索是引基于唯一约束而建立的,可以为空不可以重复  
主键索引本身就具备了唯一索引的功能


主键是唯一的,索引是为了方便快速的查询,序列是按照指按照给出的值然后自增。

猜你喜欢

转载自blog.csdn.net/m0_38025207/article/details/80717104