RMAN备份和恢复

来源:这里教程网 时间:2026-03-03 11:46:03 作者:
RMAN备份和恢复

异地RMAN恢复,更改数据文件位置; 一 RMAN全备  (1)RMAN全备 (2)创建测试数据 二 RMAN恢复  (1)恢复参数文件 (2)恢复控制文件  (3)修改控制文件中记录的rman相关路径信息 (4)恢复数据库 (5)验证数据 一 RMAN全备  (1)RMAN全备 ---RMAN全备2018-07-01 22:00 RUN { CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; allocate channel c1 type disk; allocate channel c2 type disk; backup full database tag='full_orcl' format 'E:\backup\rman\rman_full_%d_%T_%U.bak'; sql 'alter system archive log current'; backup archivelog all tag 'arch_orcl' format 'E:\backup\rman\rman_arc_%d_%T_%U.bak' delete all input; backup current controlfile tag 'ctl_orcl' format 'E:\backup\rman\rman_ctl_%d_%T_%U.bak'; release channel c1; release channel c2; report obsolete; crosscheck backup; crosscheck copy; delete noprompt expired backup; delete noprompt expired copy; delete noprompt obsolete; delete noprompt expired archivelog all;  delete noprompt archivelog until time 'sysdate-7'; } exit; (2)创建测试数据 ---创建测试表2018-07-02 14:30 conn chenjch/*** select * from user_tables; create table test20180702 as select level as id from dual connect by level<=1000; select * from test20180702; ---切换日志 alter system switch logfile; alter system checkpoint; 二 RMAN恢复  ---备份文件恢复到其他服务器上,并更改备份文件路径,数据文件路径; (1) 恢复参数文件 RMAN> startup nomount RMAN> restore spfile to 'D:\app\Administrator\product\11.2.0\dbhome_1\database\SPFILECHENJCHORCL.ORA' from 'D:\backup_nfs\rman\RMAN_FULL_CHENJCHORCL_20180702_4QT6UTM7_1_1.BAK';    SQL> shutdown immediate SQL> create pfile='D:\app\Administrator\product\11.2.0\dbhome_1\database\INITeasorcl.ORA' from spfile='D:\app\Administrator\product\11.2.0\dbhome_1\database\SPFILECHENJCHORCL.ORA'; ---提前根据参数文件创建或修改目录 SQL> startup nomount pfile='D:\app\Administrator\product\11.2.0\dbhome_1\database\INITeasorcl.ORA'; (2) 恢复控制文件 RMAN> restore controlfile from 'D:\backup_nfs\rman\RMAN_CTL_CHENJCHORCL_20180702_4TT6UULU_1_1.BAK'; SQL> alter database mount; (3) 修改控制文件中记录的rman相关路径信息 RMAN> list backup;  ---查看控制文件中记录的数据文件位置等信息; RMAN> list backup of archivelog all;  ---查看控制文件中记录的归档位置等信息; ---将备份文件注册到控制文件(原库部分文件目录和目标库备份文件目录不一致时,需要执行注册); RMAN> catalog backuppiece 'D:\backup_nfs\rman\RMAN_FULL_CHENJCHORCL_20180702_4NT6USSD_1_1.BAK'; RMAN> catalog backuppiece 'D:\backup_nfs\rman\RMAN_FULL_CHENJCHORCL_20180702_4PT6UTLS_1_1.BAK'; RMAN> catalog backuppiece 'D:\backup_nfs\rman\RMAN_FULL_CHENJCHORCL_20180702_4QT6UTM7_1_1.BAK'; RMAN> catalog backuppiece 'D:\backup_nfs\rman\RMAN_FULL_CHENJCHORCL_20180702_4OT6USSE_1_1.BAK'; RMAN> catalog backuppiece 'D:\backup_nfs\rman\RMAN_ARC_CHENJCHORCL_20180702_4RT6UUDT_1_1.BAK'; RMAN> catalog backuppiece 'D:\backup_nfs\rman\RMAN_ARC_CHENJCHORCL_20180702_4ST6UUE0_1_1.BAK'; ---归档位置(原库归档目录位置和目标库备份文件目录不一致时,需要执行注册); RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40620_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40621_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40622_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40623_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40624_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40625_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40626_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40627_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40628_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40629_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40630_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40631_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40632_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40633_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40634_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40635_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40636_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40637_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40638_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40639_954797105.ARC'; RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40640_954797105.ARC'; ...... RMAN> catalog archivelog 'D:\backup_nfs\arch\CHENJCHORCL_1_40648_954797105.ARC'; ---RMAN恢复时重新指定数据文件位置; SQL> select * from v$dbfile order by 1;      FILE# NAME ---------- --------------------------------------------------          1 D:\DATABASE\CHENJCHORCL\SYSTEM01.DBF          2 D:\DATABASE\CHENJCHORCL\SYSAUX01.DBF          3 D:\DATABASE\CHENJCHORCL\UNDOTBS01.DBF          4 D:\DATABASE\CHENJCHORCL\USERS01.DBF          5 D:\DATABASE\CHENJCH_D_CJC_TEMP2.DBF          6 D:\DATABASE\CHENJCH_D_CJC_STANDARD.ORA          7 D:\DATABASE\CHENJCH_D_CJC_INDEX.ORA          8 D:\DATABASE\CHENJCH_D_CHEN2_STANDARD.DBF          9 D:\DATABASE\CHENJCH_D_A005_STANDARD.DBF         10 D:\DATABASE\CHENJCH_D_A003_STANDARD.DBF         12 D:\DATABASE\CHENJCH_D_A004_STANDARD.DBF 已选择11行。 (4)恢复数据库 RMAN>  RUN {  SET NEWNAME FOR DATAFILE 1 to 'D:\oradata\easorcl\SYSTEM01.DBF';  SET NEWNAME FOR DATAFILE 2 to 'D:\oradata\easorcl\SYSAUX01.DBF';  SET NEWNAME FOR DATAFILE 3 to 'D:\oradata\easorcl\UNDOTBS01.DBF';  SET NEWNAME FOR DATAFILE 4 to 'D:\oradata\easorcl\USERS01.DBF';  SET NEWNAME FOR DATAFILE 5 to 'D:\oradata\easorcl\CHENJCH_D_CJC_TEMP2.DBF';  SET NEWNAME FOR DATAFILE 6 to 'D:\oradata\easorcl\CHENJCH_D_CJC_STANDARD.ORA';  SET NEWNAME FOR DATAFILE 7 to 'D:\oradata\easorcl\CHENJCH_D_CJC_INDEX.ORA';  SET NEWNAME FOR DATAFILE 8 to 'D:\oradata\easorcl\CHENJCH_D_CHEN2_STANDARD.DBF';  SET NEWNAME FOR DATAFILE 9 to 'D:\oradata\easorcl\CHENJCH_D_A005_STANDARD.DBF';  SET NEWNAME FOR DATAFILE 10 to 'D:\oradata\easorcl\CHENJCH_D_A003_STANDARD.DBF';  SET NEWNAME FOR DATAFILE 12 to 'D:\oradata\easorcl\CHENJCH_D_A004_STANDARD.DBF';  RESTORE DATABASE;  SWITCH DATAFILE ALL;  recover database; ...... 启动 recover 于 03-7月 -18 使用通道 ORA_DISK_1 正在开始介质的恢复 无法找到归档日志 归档日志线程=1 序列=40649 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: recover 命令 (在 07/03/2018 11:06:01 上) 失败 RMAN-06054: 介质恢复正在请求未知的线程 1 序列 40649 的归档日志以及起始 SCN 799976516 ...... SQL> alter database open resetlogs; alter database open resetlogs * 第 1 行出现错误: ORA-00344: 无法重新创建联机日志 'D:\DATABASE\CHENJCHORCL\REDO01A.LOG' ORA-27040: 文件创建错误, 无法创建文件 OSD-04002: 无法打开文件 O/S-Error: (OS 3) 系统找不到指定的路径。 SQL> col member for a50 SQL> select member,group# from v$logfile order by 2,1; MEMBER                                                 GROUP# -------------------------------------------------- ---------- D:\DATABASE\CHENJCHORCL\REDO01A.LOG                             1 D:\DATABASE\CHENJCHORCL\REDO01B.LOG                             1 D:\DATABASE\CHENJCHORCL\REDO02A.LOG                             2 D:\DATABASE\CHENJCHORCL\REDO02B.LOG                             2 D:\DATABASE\CHENJCHORCL\REDO03A.LOG                             3 D:\DATABASE\CHENJCHORCL\REDO03B.LOG                             3 D:\DATABASE\CHENJCHORCL\REDO04A.LOG                             4 D:\DATABASE\CHENJCHORCL\REDO04B.LOG                             4 D:\DATABASE\CHENJCHORCL\REDO05A.LOG                             5 D:\DATABASE\CHENJCHORCL\REDO05B.LOG                             5 已选择10行。 SQL> alter database rename file 'D:\DATAB ASE\CHENJCHORCL\REDO01A.LOG' to 'D:\oradata\easorcl\REDO01A.LOG'; SQL> alter database rename file 'D:\DATABASE\CHENJCHORCL\REDO01B.LOG' to 'D:\oradata\easorcl\REDO01B.LOG'; SQL> alter database rename file 'D:\DATABASE\CHENJCHORCL\REDO02A.LOG' to 'D:\oradata\easorcl\REDO02A.LOG'; SQL> alter database rename file 'D:\DATABASE\CHENJCHORCL\REDO02B.LOG' to 'D:\oradata\easorcl\REDO02B.LOG'; SQL> alter database rename file 'D:\DATABASE\CHENJCHORCL\REDO03A.LOG' to 'D:\oradata\easorcl\REDO03A.LOG'; SQL> alter database rename file 'D:\DATABASE\CHENJCHORCL\REDO03B.LOG' to 'D:\oradata\easorcl\REDO03B.LOG'; SQL> alter database rename file 'D:\DATABASE\CHENJCHORCL\REDO04A.LOG' to 'D:\oradata\easorcl\REDO04A.LOG'; SQL> alter database rename file 'D:\DATABASE\CHENJCHORCL\REDO04B.LOG' to 'D:\oradata\easorcl\REDO04B.LOG'; SQL> alter database rename file 'D:\DATABASE\CHENJCHORCL\REDO05A.LOG' to 'D:\oradata\easorcl\REDO05A.LOG'; SQL> alter database rename file 'D:\DATABASE\CHENJCHORCL\REDO05B.LOG' to 'D:\oradata\easorcl\REDO05B.LOG'; SQL> alter database open resetlogs; 数据库已更改。 ---重建tempfile; (5)验证数据 SQL> conn chenjch/*** 已连接。 SQL> select count(*) from test20180702;   COUNT(*) ----------       1000 欢迎关注我的微信公众号"IT小Chen",共同学习,共同成长!!!

相关推荐