1.执行rman备份
rman备份包括全备,增量备份(可选),归档或归档备份,控制文件备份(可以用全备之后的控制文件自动备份)
2.在异机安装同版本软件(不需要建库)
3.拷贝恢复需要的文件
包括所有rman备份,参数文件,密码文件
备份文件位置尽量和原机器位置保持一致,可减少一些额外操作
参数文件和密码文件放在$ORACLE_HOME/dbs下
4.调整参数文件并将数据库启动到nomount
根据参数文件中记录的文件位置信息创建对应的文件目录,否则无法启动到nomount状态
5.还原控制文件并将数据库启动到mount
6.若备份文件位置和原机器有差异,需用catalog start with ‘<backup_file_path>’;
将备份位置信息同步到控制文件
catalog start with命令不能重复使用,否则会让数据库认为备份文件存在多个副本,在还原或恢复的时候会出问题。若需要重复执行或新添了备份文件需要刷新,可按照以下步骤操作:
修改备份文件的路径并执行crosscheck backup;
,这会让控制文件中的备份位置信息失效
执行delete expired backup;
,这会删除失效的备份位置信息
重新执行catalog start with '<backup_file_path>';
,将最新的备份位置信息写入控制文件
7.还原数据文件
若数据文件位置和原机器有差异,需使用set newname for datafile '<old_filename>' to '<new_filename>';
命令来指定旧文件与新文件之间的映射关系。
还原之后,需要使用switch datafile all;
命令让文件位置信息写入控制文件。自此数据文件还原完成。
8.恢复数据文件
恢复前,先使用list backup of archivelog all
或者list archivelog all
查看归档或归档备份中最新的sequence或scn或time(我一般喜欢使用sequence,比较方便)
然后执行recover database unitl sequence <seq_no>;
9.若日志文件位置和原机器位置有差异,使用如下命令修改日志文件位置:
alter database rename file '<old_logfile_name>' to '<new_logfile_name>';
10.resetlogs方式启动数据库
alter database open resetlogs;
11.调整临时表空间
若临时表空间位置与原机器有差异,需要新建临时表空间并设置为默认临时表空间,最好清理原来的临时表空间信息