数据迁移_老集群RAC迁移数据恢复到新集群RAC

作者:Eric
微信:loveoracle11g

1、把老集群RAC备份的数据远程拷贝到新集群RAC
[root@old-rac-node1 ~]# cd /backup/rman/orcl
[root@old-rac-node1 orcl]# ls -l *1119*
[root@old-rac-node1 orcl]# scp *1119* root@192.168.10.10:/backup/rman/orcl
密码:oracle

[root@rac-node1 ~]# su - oracle
[oracle@rac-node1 ~]$ cd /backup/rman/orcl
[oracle@rac-node1 orcl]$ ll
total 7357616
-rw-r----- 1 oracle asmadmin  242676224 Nov 16 02:55 arch_5dtiajdc_1_1_20181115.bak
-rw-r----- 1 oracle asmadmin  241586176 Nov 16 02:55 arch_5etiajdc_1_1_20181115.bak
-rw-r----- 1 oracle asmadmin  203652096 Nov 16 02:55 arch_5ftiajdg_1_1_20181115.bak
-rw-r----- 1 oracle asmadmin   19202048 Nov 16 02:55 ctl_file_5gtiajdi_1_1_20181115.bak
-rw-r----- 1 oracle asmadmin 5939224576 Nov 16 02:56 data_level0_59tiajbk_1_1_20181115.bak
-rw-r----- 1 oracle asmadmin  868433920 Nov 16 02:56 data_level0_5atiajbk_1_1_20181115.bak
-rw-r----- 1 oracle asmadmin   19202048 Nov 16 02:56 data_level0_5btiajbr_1_1_20181115.bak
-rw-r----- 1 oracle asmadmin      98304 Nov 16 02:56 data_level0_5ctiajbu_1_1_20181115.bak
-rw-r----- 1 oracle asmadmin      98304 Nov 16 02:56 orcl_spfile_5htiajdl_1_1_20181115.bak

[oracle@rac-node1 orcl]$ pwd
/backup/rman/orcl

2、新集群要恢复的数据库,要开启归档
# su - grid
# srvctl stop database -d orcl

---------------------------------------->node1
# su - oracle
# export ORACLE_SID=orcl1
# sqlplus / as sysdba
SQL> startup mount ;
SQL> alter database archivelog ;

---------------------------------------->node2
# su - oracle
# export ORACLE_SID=orcl2
# sqlplus / as sysdba
SQL> startup mount ;
SQL> alter database archivelog ;

---------------------------------------->node1
SQL> alter database open ;
---------------------------------------->node2
SQL> alter database open ;

3、停掉要恢复的数据库orcl
直接停掉 # srvctl stop database -d orcl
# su - grid
# crs_stat -t -v
# crsctl stat res -t

	[oracle@rac-node1 ~]$ export ORACLE_SID=orcl1
	[oracle@rac-node1 ~]$ sqlplus / as sysdba
	SQL> shutdown immediate ;

	[oracle@rac-node2 ~]$ export ORACLE_SID=orcl2
	[oracle@rac-node2 ~]$ sqlplus / as sysdba
	SQL> shutdown immediate ;

启动到mount状态
[oracle@rac-node1 orcl]$ rman target /
RMAN> shutdown immediate ;
RMAN> startup mount ;

4、恢复参数文件spfile
RMAN> restore spfile to '+DATA/spfileorcl.ora' from '/backup/rman/orcl/orcl_spfile_5htiajdl_1_1_20181115.bak';
RMAN> shutdown immediate ;
RMAN> exit ;

[oracle@rac-node1 orcl]$ sqlplus / as sysdba

SQL> startup force nomount ;

ALTER SYSTEM SET DB_CREATE_FILE_DEST='+DATA' SID='*';
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=100G SID='*';
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='+FRA' SID='*';
ALTER SYSTEM SET CONTROL_FILES='+DATA','+FRA' SCOPE=SPFILE SID='*';

5、恢复控制文件controlfile
[oracle@rac-node1 orcl]$ rman target /

RMAN> startup force nomount ;

RMAN> restore controlfile from  '/backup/rman/orcl/ctl_file_5gtiajdi_1_1_20181115.bak' ;

RMAN> alter database mount ;

6、恢复数据文件datafile
RMAN> catalog start with '/backup/rman/orcl/' ;
输入:yes

run {
allocate channel c1 device type DISK;
allocate channel c2 device type DISK;
allocate channel c3 device type DISK;
allocate channel c4 device type DISK;
restore database;
switch datafile all;
switch tempfile all;
recover database delete archivelog;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 11/23/2018 04:04:48
RMAN-06054: media recovery requesting unknown archived log for thread 2 with sequence 1939 and starting SCN of 105650523

再执行下run
run {
allocate channel c1 device type DISK;
allocate channel c2 device type DISK;
allocate channel c3 device type DISK;
allocate channel c4 device type DISK;
set until sequence 1939 thread 2; # 问题在这
restore database;
switch datafile all;
switch tempfile all;
recover database delete archivelog;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}

7、重命名redolog文件
SQL> set linesize 200 ;
SQL> select  'alter database rename file '''||MEMBER||''' to '''||'+data/orcl/onlinelog/'||regexp_substr(MEMBER,'[^\/]+',1,4)||''';' from v$logfile;

'ALTERDATABASERENAMEFILE'''||MEMBER||'''TO'''||'+DATA/orcl/ONLINELOG/'||REGEXP_SUBSTR(MEMBER,'[^\/]+',1,4)||''';'
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
alter database rename file '+DATADG/orcl/onlinelog/group_1.261.967309327' to '+data/orcl/onlinelog/group_1.261.967309327';
alter database rename file '+FRADG/orcl/onlinelog/group_1.257.967309327' to '+data/orcl/onlinelog/group_1.257.967309327';
alter database rename file '+DATADG/orcl/onlinelog/group_2.265.967309327' to '+data/orcl/onlinelog/group_2.265.967309327';
alter database rename file '+FRADG/orcl/onlinelog/group_2.259.967309329' to '+data/orcl/onlinelog/group_2.259.967309329';
alter database rename file '+DATADG/orcl/onlinelog/group_3.262.967309409' to '+data/orcl/onlinelog/group_3.262.967309409';
alter database rename file '+FRADG/orcl/onlinelog/group_3.258.967309409' to '+data/orcl/onlinelog/group_3.258.967309409';
alter database rename file '+DATADG/orcl/onlinelog/group_4.266.967310049' to '+data/orcl/onlinelog/group_4.266.967310049';
alter database rename file '+FRADG/orcl/onlinelog/group_4.260.967310049' to '+data/orcl/onlinelog/group_4.260.967310049';
alter database rename file '+DATADG/orcl/onlinelog/group_5.268.967308939' to '+data/orcl/onlinelog/group_5.268.967308939';
alter database rename file '+FRADG/orcl/onlinelog/group_5.261.967308939' to '+data/orcl/onlinelog/group_5.261.967308939';
alter database rename file '+DATADG/orcl/onlinelog/group_6.269.967308939' to '+data/orcl/onlinelog/group_6.269.967308939';

'ALTERDATABASERENAMEFILE'''||MEMBER||'''TO'''||'+DATA/orcl/ONLINELOG/'||REGEXP_SUBSTR(MEMBER,'[^\/]+',1,4)||''';'
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
alter database rename file '+FRADG/orcl/onlinelog/group_6.262.967308939' to '+data/orcl/onlinelog/group_6.262.967308939';
alter database rename file '+DATADG/orcl/onlinelog/group_7.270.967308941' to '+data/orcl/onlinelog/group_7.270.967308941';
alter database rename file '+FRADG/orcl/onlinelog/group_7.263.967308941' to '+data/orcl/onlinelog/group_7.263.967308941';
alter database rename file '+DATADG/orcl/onlinelog/group_8.271.967309023' to '+data/orcl/onlinelog/group_8.271.967309023';
alter database rename file '+FRADG/orcl/onlinelog/group_8.264.967309023' to '+data/orcl/onlinelog/group_8.264.967309023';
alter database rename file '+DATADG/orcl/onlinelog/group_9.272.967309023' to '+data/orcl/onlinelog/group_9.272.967309023';
alter database rename file '+FRADG/orcl/onlinelog/group_9.265.967309025' to '+data/orcl/onlinelog/group_9.265.967309025';
alter database rename file '+DATADG/orcl/onlinelog/group_10.273.967309025' to '+data/orcl/onlinelog/group_10.273.967309025';
alter database rename file '+FRADG/orcl/onlinelog/group_10.266.967309025' to '+data/orcl/onlinelog/group_10.266.967309025';

20 rows selected.
执行上面的输出sql

alter database clear logfile group 1;
alter database clear logfile group 2;
alter database clear logfile group 3;
alter database clear logfile group 4;
alter database clear logfile group 5;
alter database clear logfile group 6;
alter database clear logfile group 7;
alter database clear logfile group 8;
alter database clear logfile group 9;
alter database clear logfile group 10;

SQL> ALTER DATABASE DISABLE BLOCK CHANGE TRACKING ; # 报错不管它

8、打开数据库
SQL> alter database open resetlogs ;

重启数据库
startup force ;

9、检查
检查参数文件spfile
SQL> show parameter spfile ;

检查控制文件controlfile
SQL> select NAME from v$controlfile ;

检查数据文件datafile
SQL> select NAME from v$datafile ;

检查日志文件logfile
SQL> select MEMBER from v$logfile ;

查看字符集
select userenv('LANGUAGE') FROM DUAL ;

集群实例状态
select instance_name ,status from gv$instance ;

检查集群状态
直接停掉# srvctl status database -d orcl
		# srvctl status instance -d orcl -i orcl1
		# srvctl status instance -d orcl -i orcl2
		# srvctl start database -d orcl
		# srvctl status database -d orcl

查看# su - grid
    # crs_stat -t -v
    # crsctl stat res -t

最新文章

  1. appzapper注册码
  2. Python-Django进阶
  3. Junit使用教程 转
  4. 对于spark以及hadoop的几个疑问(转)
  5. 他们在军训,我在搞 OI(一)
  6. 【Java 基础篇】【第六课】接口interface
  7. 在Mac OS X中搭建STM32开发环境(2)
  8. LeetCode_Length of Last Word
  9. 验证码 Captcha 之大插件
  10. Computation expressions and wrapper types
  11. 深度学习与NLP简单应用
  12. Curl测试socks5 or http 代理命令
  13. Hadoop01的主要总结
  14. [ICLR'17] DEEPCODER: LEARNING TO WRITE PROGRAMS
  15. python安装scrapy
  16. MySQL之视图、触发器、事务、存储、函数、流程控制
  17. Regex Golf练习笔记(1)
  18. python基础--xml和configparse模块
  19. 前端解析cookie出现多余的双引号的问题
  20. Navicat修改查询保存路径

热门文章

  1. adx-desc-adtype统计
  2. day3 python学习
  3. minio 对于压缩的处理
  4. OFIFG fault when using DCO in MSP430
  5. 编写python扩展
  6. 突破本地离线存储的JS库 localforage
  7. Zookeeper命令行world
  8. sql update操作结果
  9. Hadoop 完全分布式部署
  10. TransportClient 新建index,mappings dynamic_templates。