公务员期刊网 论文中心 正文

RMAN的数据库恢复研究

RMAN的数据库恢复研究

如果所有数据文件都丢失了,可以使用RESTOREDAT-ABASE命令转储所有数据文件,再使用RECOVERDATA-BASE命令恢复数据库,要求数据库必须处于MOUNT状态。注意:对于数据库中存在只读数据文件的情况,如果该数据文件是在有效备份之前把它设置为只读的,RMAN会跳过该只读数据文件的恢复,如果希望恢复该只读数据文件可以使用RESTOREDATABASECHECKREADONLY命令。如果某个表空间的数据文件出现介质失败,可以先使用SQL语句ALTERTABLESPACE…OFFLINEIMMEDIATE脱机表空间,接着使用RESTORETABLESPACE命令转储表空间的所有数据文件,再使用RECOVERTABLESPACE命令应用日志,最后使用SQL语句ALTERTABLESPACE…ONLINE使表空间联机,要求数据库必须处于OPEN状态。

SYSTEM表空间的数据文件只能在数据库MOUNT状态下恢复,其他数据文件既可以在数据库MOUNT状态下恢复,也可以在数据库OPEN状态下恢复。如果某个数据文件出现介质失败,那么在装载了数据库之后,先使用RESTOREDATAFILE命令转储该数据文件,再使用RECOVERDATAFILE命令应用日志,最后使用SQL语句ALTERDATABASEOPEN打开数据库。数据块是恢复的最小单元,通过数据块介质恢复可以减少恢复时间,而且数据文件可以在线。要恢复的坏块信息可以从报警与跟踪文件、表与索引的分析、dbverify工具或第三方介质管理工具以及具体的查询语句中获得。产生数据块损坏的原因一般是随机的IO错误或者是内存的块错误。如果绝对文件号为6的数据文件中块号是3的数据块损坏了,可以使用如下命令恢复损坏的数据块,如下:RMAN>BLOCKRECOVERDATAFILE6BLOCK3;损坏的数据块的信息保存在视图V$DATABASE_BLOCK_CORRUPTION中,用如下命令可以恢复该视图中列出的坏块,如下:RMAN>BLOCKRECOVERCORRUPTIONLISTRE-STOREUNTILTIME‘SYSDATE-7’。

RMAN不完全恢复

RMAN不完全恢复是指当数据库出现介质失败或逻辑失败时,使用RESTORE命令转储备份,并使用RECOVER命令将数据库恢复到备份点与失败点之间某个时刻的状态。注意不完全恢复只能在数据库MOUNT状态下进行。

1基于时间恢复。当执行基于时间点的不完全恢复时,首先要在命令行设置环境变量NLS_DATE_FORMAT。在进入RMAN之后,先装载数据库,再使用SETUNTILTIME命令指定要恢复到的时间点,使用RESTOREDATABASE转储所有数据文件,使用RE-COVERDATABASE命令恢复数据库,最后使用SQL语句AL-TERDATABASEOPENRESETLOGS打开数据库。

2基于SCN恢复。当使用RMAN执行基于SCN的不完全恢复时,在装载数据库后,先使用SETUNTILSCN命令指定要恢复到的SCN点,再使用RESTOREDATABASE转储所有数据文件,使用RECOVERDATABASE命令恢复数据库,最后使用SQL语句ALTERDATABASEOPENRESETLOGS打开数据库。4.3基于日志序列号恢复当使用RMAN执行基于日志序列号的不完全恢复时,在装载数据库后,先使用SETUNTILSEQUENCE…THREAD命令指定要恢复到的日志序列号,接着使用RESTOREDATA-BASE转储所有数据文件,再使用RECOVERDATABASE命令恢复数据库,最后使用SQL语句ALTERDATABASEOPENRESETLOGS打开数据库。

恢复控制文件

还原一个备份的控制文件后,需要注意以下事项:(1)运行RECOVERDATABASE命令恢复数据库,然后用RESETLOGS选项打开数据库;(2)在打开数据库后为本地管理方式的临时表空间新增临时文件。如果没有使用恢复目录,RMAN只能在数据库NO-MOUNT状态下,从备份中进行控制文件的恢复。

1从自动备份中恢复控制文件。在NOMOUNT数据库后,先使用SETDBID命令设置数据库的ID编号,接着使用RESTORECONTROLFILEFROMAUTOBACKUP命令还原控制文件。

2从包含控制文件的备份文件中恢复控制文件。在NOMOUNT数据库后,先使用SETDBID命令设置数据库的ID编号,接着使用RESTORECONTROLFILEFROM'media_handle'命令还原控制文件。

结束语

本文对如何使用RMAN进行Oracle数据库的还原与恢复作了较详尽的阐述,为需要使用RMAN恢复Oracle数据库的用户提供了一些使用方法,使之能尽可能的挽回由系统突发事故所带来的数据损失,保障企业应用系统的正常运行。(本文作者:朱伟 单位:淮北矿业集团通讯计算机处)