RMAN备份和恢复

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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29785807/viewspace-2157253/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29785807/viewspace-2157253/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值