备份有效性验证操作手册
备份有效性验证操作手册
通常情况下,我们在系统运行期间,不停地进行备份,但是我们无法知道该备份的有效性。所谓备份的有效性就是指在得到所有备份(包括备份数据、归档日志等等)的情况下,如何将数据库恢复。只有验证了备份的有效性,我们才敢断定将来发生灾难事件时,我们的备份能真正起作用。
一般情况下,不允许我们在生产和开发系统中进行备份有效性验证,所以只能在另外一台测试机器上进行验证。
本文只探讨在oracle9.2.0.4版本,red hat linux advanced server3.0操作系统的情况下的恢复操作,不保证其他情况下继续适用。
备份有效性验证分为以下几个方面:
从备份方式来看,有以下几种对应的恢复方案:
1. 冷备份(全备份)
2. 热备份(全备份)
3. 逻辑备份
从备份介质来看,有以下几种:
1. 硬盘
2. 磁带
热备份的恢复验证:
假定原来的数据库instance_name:ORA9,db_name:ORA9
1. 获得热备份和归档日志
2. 在测试机器上安装一个新的数据库instance_name:test ,db_name:test ,假定数据文件安装
目录为$ORACLE_BASE/oradata/test。
3. 关闭test 数据库,将$ORACLE_BASE/oradata/test下的所有文件移出(或删除),将全热备
份的数据文件、控制文件全部拷贝到$ORACLE_BASE/oradata/test目录下。
4. 由于拷贝过去的controlfile 只有一个control01.ctl ,需要根据inittest.ora 文件中control_files
参数指定的位置将其多拷贝几份(使用操作系统的cp 命令)。
5. 运行以下命令:sqlplus ‘/ as sysdba ’,startup mount 。可能会出现错误:ORA-01991: invalid
password file '/gxlifesys/ora9/product/9.2.0.4/dbs/orapwtest'。这是由于test 数据库的密码文件与ORA9的sys 用户不一致造成的。可以先删除原密码文件orapwtest' ,再使用命令:orapwd file=orapwtest password= entries=10来创建一个新的密码文件。
6. Shutdown 数据库,再次startup mount,这时应用可以正常mount 数据库了。
7. 修改数据文件的指向,alter database rename file ‘filename1’ to ‘filename2’。使用查询:select
name from v$datafile;获得所有需要改变路径的数据文件,如/gxsys/oracle/oradata/ORA9/system01.dbf要改变为/gxlifedata/oracle/oradata/test/system01.dbf。
8. 修改redo log文件的指向,使用查询:select * from v$logfile;获得数据库ORA9的在线日志
路径。需要将该路径,指向test 数据库的数据文件安装路径上。如:alter database rename file '/gxsys/oracle/oradata/ORA9/redo01.log' to '/gxlifedata/oracle/ora9/oradata/ora9/redo01.log';
9. 倒入归档日志,并修改归档路径。在inittest.ora 初始化文件中,增加如下几项:
log_archive_dest='/gxlifedata/arch',log_archive_start=true,log_archive_format="%t_%s.arc",要求和原来的ORA9数据库的log_archive_format一样。
10. 使用命令recover database using backup controlfile; 当出现Specify log:
{=suggested | filename | AUTO | CANCEL}时,可以选择auto ,因为我们已经将归档日志拷贝到了指定的位置。当要求一个还没有归档的日志时,会出现错误:ORA-00308: cannot open archived log '/gxlifedata/arch/1_73.arc',ORA-27037: unable to obtain file status ,Linux
Error: 2: No such file or directory,Additional information: 3。
11. 这时可以再使用recover database using backup controlfile until cancel命令,输入cancel ,
应该会有Media recovery cancelled的提示,表示恢复成功,但要注意这是一个不完全恢复过程。如果要使用完全恢复,则可以将ORA9数据库shutdown ,直接应用在线的那个日志,将把数据库完全恢复。
12. 使用命令alter database open resetlogs,重新生成在线日志文件。
逻辑备份的恢复验证: