Oracle Linux环境RAC迁移到异机RAC

Oracle Linux环境RAC迁移到异机RAC

一、RMAN 手动还原备份集方式

1.1 迁移环境
源数据库

操作系统:CentsOS 7.2
Oracle数据库版本:11.2.0.4 RAC
ORACLE_SID:ORCLDB
DB_NAME:ORCLDB

目标数据库

操作系统:CentOS 7.5
Oracle数据库版本:11.2.0.4 RAC
即将创建ORACLE_SID:ORCLDB
即将创建DB_NAME:ORCLDB

1.2 迁移准备
1、在迁移前需要在rac源数据库做好RMAN全备,以及归档日志备份。在新RAC环境还原时需要考虑pfile中控制文件的路径。
2、还原之后需要在srvctl注册spfile路径
3、手动还原方式产生的dbid与源库相同

1.3 迁移步骤
1.3.1 源服务器做RMAN全备

rman target /

run{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
backup as compressed backupset database format '/u01/rman/full_%d_%U.bak';
backup as compressed backupset archivelog all format '/u01/rman/arch_%d_%U.bak';
backup current controlfile format '/u01/rman/ctl_%d_%U.bak';
release channel c1;
release channel c2;
release channel c3;
}

1.3.2 拷贝备份到新环境RAC数据库服务器
在rac新环境中建立rman的备份目录“/u01/rman"

scp /u01/rman/* oracle@172.16.4.41:/u01/rman

1.3.3 编辑新rac环境参数文件

*.audit_trail='none'
*.cluster_database=false
*.compatible='11.2.0.4.0'
*.control_files='+DATA/orcldb/controlfile/current.274.980502673'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_domain=''
*.db_name='orcldb'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orcldbXDB)'
orcldb2.instance_number=2
orcldb1.instance_number=1
orcldb1.local_listener='(address=(protocol=tcp)(host=rac1-vip)(port=1521))'
orcldb2.local_listener='(address=(protocol=tcp)(host=rac2-vip)(port=1521))'
*.log_archive_dest_1='LOCATION=+arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcldb'
*.log_archive_format='%t_%s_%r.arc'
*.open_cursors=300
*.parallel_execution_message_size=8192
*.pga_aggregate_target=268435456
*.processes=1000
*.remote_listener='rac-scan:1521'
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=1105
*.sga_target=838860800
orcldb2.thread=2
orcldb1.thread=1
orcldb2.undo_tablespace='UNDOTBS2'
orcldb1.undo_tablespace='UNDOTBS1'


备注:
1、pfile中控制文件需要与rman还原之后的控制文件名字相同
2、cluster_database需要设置为false

1.3.4 新环境rac数据库启动到nomount

sqlplus / as sysdba
startup nomount;

1.3.5 还原控制文件

[oracle@rac1:/home/oracle]$rman target /   

RMAN> restore controlfile from '/u01/rman/ctl_ORCLDB_32tvuvos_1_1.bak'

还原控制文件之后需要修改pfile的控制文件参数

*.control_files='+DATA/orcldb/controlfile/current.还原之后控制文件名称'

shutdown immediate;

startup mount;



1.3.6 添加归档目录、还原数据文件、以及recover
如有部分新产生或者远程目录的归档日志,可手动加到控制文件

RMAN> catalog start with '/bak/arch/'
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;
allocate channel c5 device type disk;
allocate channel c6 device type disk;
allocate channel c7 device type disk;
allocate channel c8 device type disk;
restore database;
recover database;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
release channel c5;
release channel c6;
release channel c7;
release channel c8;
}

1.3.7 在asm中生成spfile
rman还原之后在本地以及asm中不会有spfile,需要手动操作

create spfile='+ORADATA/orcldb/spfileorcldb.ora' from memory;

1.3.8 修改pfile指向asm spfile
pfile中内容指向共享存储的spfile

[oracle@rac1:/u01/app/oracle/product/11.2.0/db_1/dbs]$vi initorcldb1.ora

SPFILE='+DATA/orcldb/spfileorcldb.ora'

1.3.9 重启数据库

shutdown immediate;
startup;

1.3.10 在节点一查看undo参数

show parameter undo_tablespace

在节点一执行命令使节点2使用undotbs2表空间

alter system set undo_tablespace='UNDOTBS2' scope=spfile sid='orcldb2';

1.3.11 恢复两个节点为集群环境

alter system set cluster_database=true scope=spfile sid='*';
alter system set cluster_database_instances=2 scope=spfile sid='*';
alter system set instance_number=1 scope=spfile sid='orcldb1';
alter system set instance_number=2 scope=spfile sid='orcldb2';
alter system set thread=1 scope=spfile sid='orcldb1';
alter system set thread=2 scope=spfile sid='orcldb2';

alter system reset background_dump_dest;
alter system reset user_dump_dest;

1.3.12 重启数据库

shutdown immediate;
startup;

1.3.13 调整rac环境资源管理

在集群资源管理中增加新数据库orcldb

[oracle@rac1:/home/oracle]$srvctl add database -d orcldb -o $ORACLE_HOME

在节点1增加实例名orcldb1

[oracle@rac1:/home/oracle]$srvctl add instance -d orcldb -i orcldb1 -n rac1

在节点2增加实例名orcldb2

[oracle@rac1:/home/oracle]$srvctl add instance -d orcldb -i orcldb2 -n rac2

1.3.14 关闭数据库

shutdown immediate;

1.3.15 集群中加入spfile参数启动

srvctl  modify database -d orcldb -p +DATA/orcldb/spfileorcldb.ora

1.3.16 测试srvctl组件启动数据库

[oracle@rac1:/home/oracle]$srvctl start database -d orcldb

1.3.17 查看rac两个节点参数

SQL> show parameter cluster_database

NAME                                 TYPE       VALUE
------------------------------------ ---------- -----
cluster_database                     boolean    FALSE
cluster_database_instances           integer    2



SQL> show parameter instance_number

NAME                                 TYPE       VALUE
------------------------------------ ---------- -----
instance_number                      integer    1


SQL> show parameter thread
NAME                                 TYPE       VALUE
------------------------------------ ---------- -------
thread                               integer    0
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值