日期:2014-05-16  浏览次数:20703 次

Oracle 10g 读书笔记之数据库常用文件

一、参数文件和服务器参数文件
参数文件(Parameter File)通常称为初始文件(init file),或 init.ora 文件。默认名称为 init<ORACLE_SID>.ora 文本文件。
SPFILE 生成 PFILE:create pfile='/tmp/initorcl.ora' from spfile;
服务器参数文件(Server Parameter File),或简称 SPFILE。默认名称为 spfile<ORACLE_SID>.ora 二进制文件,可通过 RMAN 备份。
PFILE 转换为 SPFILE :create spfile from pfile
修改SPIFLE参数:alter system set parameter=value <comment='text'> <deferred> <scope=memory|spfile|both> <sid='sid|*'>
其中,deferred 指定系统修改是否只对以后的会话生效,默认情况下,alter system 命令会立即生效。
可以使用以下查询确认哪些参数要求必须使用 deferred:
select name from v$parameter where ISSYS_MODIFIABLE='DEFFERRED';
取消 SPFILE 中的值设置:alter system reset parameter <scope=memory|spfile|both> sid='sid|*'
SID 是站点标识符(Site Identifie)。在 UNIX 中,SID 和 ORACLE_HOME 一同进行散列运算,创建一个唯一的键名从而附加到 SGA。
如果 ORACLE_SID 或 ORACLE_HOME 设置不当,就会得到 ORACLE NOT AVAILABLE 错误,因为无法附加到这个唯一键所标识的共享内存段。
查看参数:show parameter <name> 或查询视图 v$parameter
修改参数:alter system set <name>=<value>

二、跟踪文件
文件位置:USER_DUMP_DEST(专用服务器连接) 和 BACKGROUND_DUMP_DEST (共享服务器连接)
查询文件位置:select name, value from v$parameter where name like '%dump_dest%';
如果使用共享服务器连接,就会使用一个后台进程;如果使用专用服务器连接,则会使用一个用户或前台进程与 oracle 交互。
如果出现严重的 oracle 内部错误,或者如果 oracle support 要求生成一个跟踪文件来得到额外的调试信息,CORE_DUMP_DEST 则定义了文件的位置。
查询跟踪文件:
select c.value || '/' || d.instance_name || '_ora_' || a.spid || '.trc' trace
from v$process a, v$session b, v$parameter c, v$instance d
where a.addr=b.paddr and b.audsid=userenv('sessionid') and c.name='user_dump_dest'
标准格式:<ORACLE_SID>_ora_<PROCESS_ID>

三、数据文件
表空间是 oracle 中的一个逻辑存储容器,位于存储层次的顶层,包括一个或多个数据文件。
段就是占用存储空间的数据库对象,如表、索引、回滚段、临时段等。
段本身又由一个或多个区段组成。区段是文件中一个逻辑上连续分配的空间。每个段至少有一个区段,回滚段需要两个。
区段进一步由块组成。它是 oracle 中最小的空间分配单位。数据行、索引条目或临时排序结果就存在块中。块大小有 2、4、8、16 K等。
一个数据库允许有多种块大小,目的是为了可以在更多的情况下使用可传输的表空间。所以一个表空间中的所有块大小都相同。
块结构:
1、首部,包含块类型的有关信息、块上发生的活动事务和过去事务的相关信息,以及块在磁盘上的地址。
2、表目录,如果有则会包含把行存储在这个块上的表的有关信息(可能一个块上存储多个表的数据)。
3、行目录,包含块中行的描述信息。这是一个指针数据,指向块中数据部分中的行。
4、空闲空间。5、数据。6、尾部。

四、临时文件(临时数据文件)
临时文件是一种特殊类型的数据文件。oracle 使用临时文件来存储大规模排序操作和散列操作的中间结果。
oracle 以一种特殊的方式处理临时文件。一般你对对象所做的每个修改都会存储在重做日志中,临时文件不包括在这个重放过程内。
对临时文件并不生成 redo 日志,不过可以生成 undo 日志。由于 undo 总是受 redo 的“保护”,因此这就会生成使用临时表的 redo 日志。

五、控制文件
参数文件告知实例控制文件的位置,控制文件则告知实例数据库和在线重做日志文件的位置。

六、重做日志文件
它们是数据库的事务日志。包括在线重做日志和归档重做日志。
从一个日志文件组切换到另一个日志文件组的动作称为日志切换。它可能会导致临时性“暂停”,数据库确保将缓存中的数据安全的写入磁盘。
在填满日志文件 A 并切换到日志文件 B 时,oracle 就会启动一个检查点。此时 DBWn 开始将日志文件组 A 所保护的所有脏块写至磁盘。

七、密码文件
它是一个可选的文件,允许远程 SYSDBA 或者管理员访问数据库。

八、修改跟踪文件
它是一个可选的文件,是 10g 企业版中新增的。它唯一的目的是跟踪自上一个增量备份以来哪些块已经修改。这样 RMAN 备份时就不必读取整个数据库。
创建修改跟踪文件命令如下:
alter database enable block change tracking using file 'c:/oracle/changed_blocks.bct';
关闭和删除修改跟踪文件:
alter database disable block change tracking;

九、闪回日志文件
简称为闪回日志,这是 oracle 10g 中为支持 FLASHBACK DATABASE 命令而引入的。包含已修改数据库块的“前镜像”,可用于将数据库返回到该时间点之前的状态。
恢复步骤如下:
1、关闭数据库。
2、启动并装载数据库,可以使用 SCN、Oracle 时钟或时间戳发出闪回数据库命令。
3、以 RESETLOGS 选项打开数据库。
要使用这个特性,必须采用 ARCHIVELOG 模式,而且必须配置为支持 FLASHBACK DATABASE 命令。