oracle六种物理文件.docx
《oracle六种物理文件.docx》由会员分享,可在线阅读,更多相关《oracle六种物理文件.docx(17页珍藏版)》请在冰豆网上搜索。
oracle六种物理文件
2010-05-1414:
06340人阅读评论(0)收藏举报
一、控制文件(ControlFile):
保存有关数据库的结构信息!
控制文件是一个小型的二进制文件,可以记录数据库的物理结构。
包括:
*数据库名称
*数据文件和日志文件的名称和位置
*数据库创建的时标
*当前日志的序号
*检验点信息
一般Oracle数据库创建时都会创建至少两个或两个以上的控制文件。
二、控制文件的标准
1、控制文件的文件名
由control_files参数来指定控制文件名。
若没有指定该参数,则生成默认文件名,默认文件名在各个操作系统中各不相同
2、控制文件的复用
一般不同的控制文件都存放在不同的磁盘,当某个磁盘损坏时可以通过在其他磁盘上的控制文件进行复用,不需要任何的介质恢复。
*找到control_files参数列出所有文件名,将相应内容写入所有控制文件
*control_files中列出的第一个文件是Oracle数据库运行期间唯一可以读取的文件
*数据库运行期间,任何控制文件变为不可用,则实例不能继续运行
3、备份控制文件
进行以下数据库物理结构改变之后,需要备份控制文件
*添加、取消或重命名数据文件
*添加或撤销表空间,或更改表空间读写状态
*添加或取消重做日志文件
4、控制文件大小管理
MAXDATAFILES、MAXLOGFILES、MAXLOGMEMBERS、MAXLOGHISTORY、MAXINSTANCES参数控制
三、创建控制文件
1、创建初始化控制文件
control_files=(/u01/oracle/prod/control01.ctl,
/u02/oracle/prod/control02.ctl,
/u03/oracle/prod/control03.ctl)
注:
若已经存在与指定名同名的文件,则在createdatabase语句中指定controlfilereuse子句。
而且新控制文件与原先控制文件的size必须相同。
2、创建额外副本、重命名和重定位控制文件
①关闭数据库
②在操作系统中复制、修改原控制文件
③修改control_files,添加或修改新的控制文件名
④重新启动数据库
3、创建新的控制文件
以下情况可能会需要重新创建新的控制文件:
*数据库所有控制文件都收到永久性损坏,且无任何备份
*希望修改数据库参数的永久性设置,例如:
SID、MAXDATAFILES、MAXLOGFILES、MAXLOGMEMBERS、MAXLOGHISTORY、MAXINSTANCES等参数
4、创建语句示例
createcontrolfile
setdatabseapril
LOGFILEGROUP1('/export/home/oracle/oradata/april/redo01_01.log',
'/export/home/oracle/oradata/april/redo01_02.log'),
GROUP2('/export/home/oracle/oradata/april/redo02_01.log',
'/export/home/oracle/oradata/april/redo02_02.log'),
GROUP3('/export/home/oracle/oradata/april/redo03_01.log',
'/export/home/oracle/oradata/april/redo03_02.log')
noresetlogs
datafile'/export/home/oracle/oradata/april/system01.dbf'size3M,
'/export/home/oracle/oradata/april/rbs01.dbf'SIZE5M,
'/export/home/oracle/oradata/april/users01.dbf'SIZE5M,
'/export/home/oracle/oradata/april/temp01.dbf'SIZE5M
MAXLOGFILES50
MAXLOGMEMBERS3
MAXDATAFILES200
MAXINSTANCES6
ARCHIVELOG;
注:
createcontrolfile语句可能会损坏数据文件和联机重做日志文件,省略文件名会引起文件中数据的丢失,或失去访问完整数据库的能力,所以在使用这条语句时需要特别小心。
5、创建步骤(严格遵守)
①制作包括数据库所有数据文件和联机重做日志文件的列表,可以使用以下SQL列出清单
selectmemberfromv$logfile;--日志文件
selectnamefromv$datafile;--数据文件
selectvaluefromv$parameterwherename='control_files';--控制文件
②关闭数据库(immediate、abort)
③备份数据库的所有数据文件和联机重做日志文件
④启动一个新的实例,但不要装载和打开数据库(nomount)
⑤使用createcontrolfile语句创建一个新的控制文件
注:
若重命名数据库,或联机重做日志文件丢失,可使用resetlogs子句
⑥在离线存储设备上存储新的控制文件备份
⑦编辑control_file初始化参数,若重命名数据库,则编辑DB_NAME参数
⑧进行数据库恢复(如果需要的话)
注:
若指定resetlogs,则需要加入usingbackupcontrolfile来恢复数据库
⑨打开数据库(alterdatabseopen;)
==========================控制文件的相关操作==============================
一、createcontrolfile错误
1、检查文件差异
创建新的控制文件之后会检查数据字典和控制文件之间的矛盾,以检查丢失或多余的文件。
丢失:
若数据字典中存在某数据文件,而控制文件中没有,则Oracle在控制文件中创建一个名为MISSINGnnn的占位符入口,表示作为脱机并需要介质恢复的标志。
可以通过重命名MISSINGnnn来访问MISSINGnnn对应的真正数据文件,但该文件必须是只读或正常脱机的。
又因为数据文件需要介质恢复,而RESETLOGS的结果排除了介质恢复的可能,所以当使用了RESETLOGS子句时,必须撤销包含数据文件的表空间。
多余:
当控制文件记录的数据文件不在数据字典中时,Oracle会从新的控制文件中删除对数据文件的引用。
注:
无论是丢失还是多余,都会在相应实例的alert.log文件中包含一条解释性消息。
2、创建过程中的错误
一般在创建新的控制文件后打开数据库,可能会返回一下错误类型:
ORA-01173、ORA-01176、ORA-01177、ORA-01215、ORA-01216
最大的可能是在在创建时有文件丢失或多余文件。
此时应该找到备份的数据文件和联机重做日志文件,覆盖当前文件,并使用正确的CREATECONTROLFILE语句重新创建。
二、备份控制文件
1、备份控制文件为二进制文件
alterdatabasebackupcontrolfileto'/oracle/backup/control.bkp';
2、制作以后可以重新创建控制文件的SQL
alterdatabasebackupcontrolfiletotrace;
3、可以使用RMAN对控制文件进行备份
三、恢复控制文件
1、控制文件损坏
①关闭实例②将未损坏的控制文件副本覆盖已损坏文件③打开数据库
2、磁盘损坏
①关闭实例②经未损坏控制文件副本复制到新磁盘空间③修改control_file参数④打开数据库
也可以先修改control_file参数,然后恢复控制文件,再把
四、删除控制文件
①关闭数据库
②修改control_file参数
③启动数据库
④在磁盘上删除相应controlfile文件
五、控制文件信息
通过一下视图来查看控制文件信息:
V$CONTROLFILE:
控制文件名称
V$CONTROLFILE_RECORD_SECTION:
控制文件记录段信息
V$PARAMETER:
初始化参数CONTROL_FILES的值
联机重做日志概念——又叫做日志文件
一、联机重做日志
1、重做线程
每个数据库实例的联机重做日志组都是一个联机重做的实例线程。
不管有没有多路复用,一般每个Oracle都只有一个重做线程,当然RAC中每个实例都包含一个重做线程。
2、联机重做日志内容
重做条目记录了可以对数据库重新构造的所有修改数据,包括回滚段。
重做记录在SGA重做日志缓存区中缓冲,并由LGWR进程写入某个联机重做日志文件。
事务被提交时,必定需要用LGWR将日志全部从SGA缓存中写入联机重做日志文件,然后才被告知提交完成。
LGWR还会为每个事务分配一个识别重做记录的系统修改号(SCN)。
当重做日志缓存填满时LGWR也会将重做条目写入到重做日志文件,这些是可以回滚的。
3、联机重做日志写入方式
数据库的联机重做日志组务必要有两个或两个以上,这样可以保持其中一个一直用于写入,另一个用于归档。
LGWR采用循环写入的方式,即写满一个换下一个。
或归档模式则写满了之后归档,否则则直接覆盖。
4、活动与非活动
当前正在写入的联机重做日志文件成为“当前的”联机重做日志文件。
实例恢复时所需的联机重做日志文件称为“活动的”联机重做日志文件。
实例恢复不用的联机重做日志文件称为“非活动的”联机重做日志文件。
已经进行存档的联机重做日志文件不能重新使用或重写,知道ARCn存储了这个文件内容。
5、日志切换&日志顺序号
一般默认在一个文件写满时切换到写一个文件,但是也可以规定时间进行切换,这样就不用理会是否写满。
也可以手动进行强制切换。
每次日志切换都会分配一个新的日志顺序号,归档时也将顺序号进行保存。
每个联机或存档的重做日志文件都通过它的日志顺序号进行唯一标识。
二、规划联机重做日志
1、多路复用(Group)
多路复用是避免损坏联机重做日志文件。
多路复用时LGWR将同一重做日志信息同时写入多个同样的联机重做日志文件。
建议必须要使用多路复用(至少两个组)。
注:
当某个成员不可用,则标记为INVALID,并向LGWR跟踪文件和数据报警文件中写入错误信息。
不同问题会不同反映。
*一个操作成功一个操作失败时:
按正常过程进行,忽略不可用成员
*日志切换时需要存档而不能访问下一个组时:
暂时中断操作,直到归档完成
*介质失败,切换时不能访问下一组:
关闭数据库,并返回错误信息
*LGWR写入时不能访问文件:
关闭数据库,并返回错误信