Rman备份及异机恢复步骤

本文详细介绍了如何使用RMAN进行数据库备份以及在不同机器上进行恢复的步骤,包括配置备份脚本、创建新的spfile、恢复控制文件和数据文件、设置相关参数、归档和清理过期备份等关键操作。

  一、rman备份脚本

  

RUN {

allocate channel c1 device type disk ;

configure retention policy to redundancy 3 ;  

configure archivelog backup copies for device type disk to 3;

CONFIGURE CONTROLFILE AUTOBACKUP ON;

 

delete noprompt obsolete ;

backup database format 'g:\backup\db_%T_%U'

plus archivelog format 'g:\backup\arch_%T_%U' ;

 

crosscheck backup ;

delete noprompt obsolete ;

delete noprompt expired backup;

 

crosscheck archivelog all;

delete expired archivelog all;

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

 

host 'copy /y D:\oracle\product\10.2.0\oradata\orcl\control*.ctl g:\backup';

host 'copy /y D:\oracle\product\10.2.0\db_1\database\PWDorcl.ora g:\backup';

release channel c1;

}  

其中crosscheck archivelog all;可以用change  archivelog all crosscheck; 代替,区别见文档最后说明。

 

 二、Rman备份恢复步骤

1、备份现有spfile ,避免新的配置文件无法启动。

   sqlplus / as sysdba;

   sql> shutdown immediate

   SQL> startup nomount;

   sql> create pfile='d:\inipfile.txt' from spfile='D:\oracle\product\10.2.0\db_1\dbs\SPFILEORCL.ora';

   利用备份产生新的spfile文件语法:sql >create spfile='D:\oracle\product\10.2.0\db_1\dbs\SPFILEORCL.ora' from pfile='d:\inipfile.txt';

2、d:> rman target /

3、Rman>shutdown immedaite;

4、rman> startup nomount pfile='d:\inipfile.txt'

5、Rman> set dbid 1286861270;

6、恢复控制文件。 rman> restore controlfile from  'G:\backup\CTL_SP_C-1286861270-20200803-00';

7、恢复spfile。 rman>restore spfile to  'D:\oracle\product\10.2.0\db_1\dbs\SPFILEORCL.ora' from  'G:\backup\CTL_SP_C-1286861270-20200803-00';

8、装载数据库. rman>alter database mount;

9、注册备份目录  rman>catalog start with 'G:\backup\';

10、恢复数据文件 rman>restore database;

11、删除过期备份,避免找不到原有文件导致后续备份失败;

    rman>crosscheck backup;

    rman>delete noprompt expired backup;

    rman>change  archivelog all crosscheck;

    rman>delete expired archivelog all;        

    rman>exit

12、重新进入 d:>sqlplus  / as sysdba;

13、利用新的spfile启动并设置相关参数

    sql> shutdown immediate;

    SQL> startup mount;

    sql> alter system set "_allow_resetlogs_corruption"=true scope=spfile; --关键语句,否则打不开数据库

14、打开数据库

    sql>shutdown immediate;

    sql>startup mount;  -- 使新修改的参数起作用

    sql> alter database open resetlogs;

15、重新关闭数据库,然后打开测试是否正常。

    sql>shutdown immediate;

    sql>startup;

16、查看相关参数,并设置归档和归档目录。参数在v$parameter动态参数视图中

   查看结构 desc v$parameter;

   sql> select log_mode from v$database;

   sql> show parameter log_archive;

   若未归档,设置 sql>alter database archivelog;

   查看归档sql>archive log list ;

   设置归档路径 SQL>alter system set log_archive_dest_1='location=e:\archive' scope=spfile;

   切换日志,看归档结果SQL>alter system switch logfile;

   若没有改变,重启数据库使spfile发挥作用后再试。

17、退出sqlplus,恢复完成。

   

rosscheck archivelog all;  -- 检查归档日志是否过期,过期后标示expired 状态,手工删除日志不满足过期则不处理

change  archivelog all crosscheck; -- 检查归档日志是否过期,同时对手工删除的日志标示过期状态

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值