Oracle入门(1)-Oracle 11g体系结构

久未见 提交于 2020-02-22 09:12:23

一、逻辑存储结构

 
 
1、数据块是逻辑存储结构中的最小逻辑单位,一般默认是8K(相当于MySQL的页),查看数据块大小:
select name, value from v$parameter where name='db_block_size';

2、数据区(Extent)是Oracle存储分配的最小单位,也是数据增长的基本单位。一个数据区包含多个数据块。

3、 段(Segmemt)是由一个或多个数据区构成,它不是存储空间的分配单位,而是一个独立的逻辑存储结构,用于存储表、索引或簇等占用空间的数据对象,Oracle也把这种占用空间的数据对象统一称为段。
  3.1、当创建一个表时,系统自动创建一个以该表名字命名的数据段
  3.2、建立索引时,系统自动创建一个以该索引名字命名的索引段
  3.3、考虑调整sort_area_size(默认64K)来增大排序区,从而使排序操作尽量在内存中完成。这属于临时段
 
 
 

二、物理存储结构

1、数据文件

  查看数据文件信息
set linesize 32767;  
col file_name for a50;
col tablespace_name for a100;
select file_name,tablespace_name from dba_data_files;  #或者v$datafile

2、控制文件

  Oracle实例启动过程:访问初始化参数文件SPFILE  => 为系统全局区(SGA)分配内存   =>   从控制文件中读出所有数据文件和日志文件信息   =>   打开当前数据库中所有的数据文件和日志文件供用户访问。
  查看控制文件位置:
set linesize 32767;  
col name for a50;
select name from v$controlfile;

  系统自动创建两个或三个控制文件,每个控制文件记录相同,如果某个控制文件损坏,Oracle会自动使用另外一个控制文件,如果所有控制文件都损坏Oracle则无法工作。

3、日志文件

  3.1、重做日志

  日志  =>  SGA的重做日志缓存区  =>  事务提交或日志缓冲区超1/3或超3秒  =>  Redo log(由LGWR进程负责)

  3.2、归档日志

  非归档模式下,事务日志直接覆盖轮询,归档模式下,事务日志被覆盖前先由归档(ARCH)进程把日志文件读出,然后写入归档日志文件。
  默认情况下,Oracle系统不采用归档模式运行。
  查看是否归档模式:
set linesize 32767;  
col name for a50;
col value for a50;
select dbid,name,log_mode from v$database;

  如果在归档模式下,通过下面语句确定归档日志文件所在路径:

set linesize 32767;  
col name for a50;
col value for a50;
show parameter log_archive_dest;

4、服务器参数文件

  服务器参数文件SPFILE(Server Parameter File)是二进制文件,由Oracle自动维护,如果要修改则通过alter system命令来修改,参数修改后会自动写到SPFILE。
set linesize 32767;  
col name for a50;
col value for a50;
select name, value, ismodified from v$parameter;

  修改参数:例如修改shared_pool_size的大小为30M:

set linesize 32767;  
col name for a50;
col value for a50;
select name, value, ismodified from v$parameter where name='sort_area_size';
alter system set shared_pool_size=30m;

  如果报:“ORA-02095: specified initialization parameter cannot be modified”说明不能直接修改,需要加上scope=spfile然后重启oracle:

alter system set sort_area_size=16777216 scope=spfile;

  查看日志位置:

--查警告日志
select name, value, ismodified from v$parameter where name = 'background_dump_dest'; 
--查看跟踪文件
select name, value, ismodified from v$parameter where name='user_dump_dest'; 

  跟踪文件文件命名格式:<sid>_<processname>_<spid>.trc,如orcl_cjq0_5172.trc

 
 

三、Oracle 11g服务器结构

  

1、修改共享池的内存为30M

alter system set shared_pool_size=30m;

2、大型池(Large pool)

  以下情况需使用大型池来减轻共享池的访问压力:
      (1)使用恢复管理器进行备份和恢复操作时,大型池将作为I/O缓冲区使用。
    (2)使用I/O Slave仿真异步I/O功能时,大型池将被作为I/O缓冲区使用。
    (3)执行具有大量排序操作的SQL语句。
    (4)当使用并行查询时,大型池作为并行查询进程彼此交换信息的地方。
  修改大型池缓存区大小为16MB(默认0):
set linesize 32767;  
col name for a50;
col value for a50;
select name, value, ismodified from v$parameter where name='large_pool_size';
alter system set large_pool_size=16m;

3、后台进程

  3.1、数据写入进程(DBWR)

    在以下几种情况,DBWR进程会将“脏”数据块写入数据文件:
           (1)缓冲区无空间,又有新数据写入
      (2)检查点启动
      (3)脏数据在缓冲区超3秒

  3.2、检查点进程(CKPT)

    当发生日志切换时就会启动检查点进程。

  3.3、日志写入进程(LGWR)

     事务提交 或 日志缓冲区超1/3 或 超3秒,即把日志缓冲区日志写入日志文件。
 
 

四、数据字典

Oracle11g常用数据字典

Oracle数据字典的名称由前缀和后缀组成,使用_连接,含义说明如下:

  dba_:包含数据库实例的所有对象信息

  v$_:当前实例的动态视图,包含系统管理和系统优化等所使用的视图

    user_:记录用户的对象信息

  gv_:分布式环境下所有实例的动态视图,包括系统管理和系统优化使用的视图

  all_:记录用户的对象信息机被授权访问的对象信息  

 

基本数据字典

  描述逻辑存储结构和物理存储结构的数据表,还包括描述其他数据对象信息的表:

数据字典名称  说明 
dba_tablespaces 关于表空间的信息
dba_ts_quotas 所有用户表空间限额
dba_free_space 所有表空间中的自由分区
dba_segments   描述数据库中所有段的存储空间
dba_extents 数据库中所有分区的信息
dba_tables 数据库中所有数据表的描述
dba_tab_columns 所有表、视图以及簇的列
dba_views 数据库中所有视图的信息
dba_synonyms 关于同义词的信息
dba_sequences 所有用户序列信息
dba_constraints 所有用户表的约束信息
dba_indexs 数据表中所有索引的描述
dba_ind_columns 所有表及簇上压缩索引的列
dba_triggers 所有用户的触发器信息
dba_source 所有用户存储过程信息
dba_data_files 查询关于数据库文件的信息
dba_tab_grants/privs 查询关于对象授权的信息
dba_objects 数据库所有对象
dba_users 关于数据库中所有用户的信息

 

常用动态性能视图

  提供了关于内存和磁盘的运行情况,用户只能进行只读而不能修改它们

数据字典名称   说明
v$database 描述关于数据库的相关信息
v$datafile 数据库使用的数据文件信息
v$log 从控制文件中提取有关重做日志组的信息
v$logfile 有关实例重置日志组文件名及其位置的信息
v$archived_log 记录归档日志文件的基本信息
v$archived_dest 记录归档日志文件的路径信息
v$controlfile 描述控制文件的相关信息
v$instance 记录实例的基本信息
v$system_parameter 显示实例当前有效的参数信息
v$sga 显示实例的SGA区大小
v$sgastat 统计SGA使用情况的信息
v$parameter   记录初始化参数文件中所有项的值
v$lock 通过访问数据库会话,设置对象锁的所有信息
v$session 有个会话的信息
v$sql 记录SQL语句的详细信息
v$sqltext 记录SQL语句的语句信息
v$bgprocess 显示后台进程信息
v$process 当前进程的信息
 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!