Oracle单实例迁移到RAC实例--使用RMAN
异机恢复
一.大致操作步骤如下:
1.安装Clusterware和ASM实例
2.备份源库,并将备份集copy到rac节点上
3.在RAC上还原并修改初始化参数文件,还原控制文件和数据文件
4.增加undo表空间和redo
log线程组,创建密钥文件
5.配置RAC监听
6.将等资源添加到CRS
注意:迁移的2个db版本版本要一致。包括小版本。比如11.2.0.4
二.具体操作步骤
2.1安装Clusterware和ASM实例
2.2在源库用RMAN备份,并将备份文件copy到rac上
源库实例名:yzx,为了确认迁移成功,我们现在源库上创建一个表test,并插入一条记录。
SQL>
create table test(id number,name varchar2(20));
Table
created.
SQL>
insert into test values(3,'姚振星测试');
1 row
created.
SQL>
insert into test values(4,'单实例迁移rac');
1 row
created.
SQL>
commit;
Commit
complete.
用nocatalog方式进行0级备份。
run
{
allocate
channel c1 type disk;
allocate
channel c2 type disk;
allocate
channel c3 type disk;
allocate
channel c4 type disk;
sql
'alter system switch logfile';
crosscheck
archivelog all;
delete
noprompt expired archivelog all;
crosscheck
backup;
delete
noprompt obsolete;
delete
noprompt expired backup;
backup
incremental level 0 database format 'c:\backup\inc_0_%T_%u.bak'
tag=inc_0_backup;
sql
'alter system archive log current';
release
channel c1;
release
channel c2;
release
channel c3;
release
channel c4;
allocate
channel c1 type disk;
backup
filesperset 20 format 'c:\backup\arch_%T_%u.bak' archivelog all
delete input;
release
channel c1;
allocate
channel c1 type disk;
backup
format 'c:\backup\ctl_%T_%u.bak' current controlfile;
release
channel c1;
allocate
channel c1 type disk;
backup
format 'c:\backup\spfile_%T_%u.bak' spfile;
release
channel c1;
}
备份之后的信息如下:
RMAN>
list backup summary;
将备份文件SCP到RAC服务器:
2.3还原并修改初始化文件
2.3.1还原spfile到pfile
rac节点
set
ORACLE_SID=yzx
rman
target \
RMAN>
startup nomount
startup
failec: ORA-01078: failure in processing system
parameters
LRM-00109:
could not open parameter file
'c:\app\oracle\product\11.2.0\db_1\dbs\inityzx1.ora'
RMAN> restore
spfile to pfile 'rac机器路径'
2>
from 'spfile备份路径';
RMAN>
看一下我们刚才恢复的参数文件:
c:\app\oracle\product\11.2.0\db_1\dbs\
ab_
ASM1.dathc_yzx.dathc_test1.datinityzx.orainit.ora orapw
ASM1
ab_
ASM2.dathc_
ASM1.dathc_rac1.datinit
ASM1.orainit.ora.4122017215823snapcf_test1.f
core_10447hc_
ASM2.dathc_rac2.datinitdw.orainitrac1.oraspfilerac1.ora
查看inityzx.ora
yzx.__db_cache_size=96468992
yzx.__java_pool_size=4194304
yzx.__large_pool_size=4194304
yzx.__shared_pool_size=58720256
yzx.__streams_pool_size=0
*.audit_file_dest='c:\app\oracle\admin\yzx\adump'
*.background_dump_dest='c:\app\oracle\admin\yzx\bdump'
*.compatible='11.2.0.1.0'
*.control_files='c:\app\oracle\oradata\yzx\control01.ctl','c:\app\oracle\oradata\yzx\control02.ctl','c:\app\oracle\oradata\yzx\control03.ctl'
*.core_dump_dest='c:\app\oracle\admin\yzx\cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='yzx'
*.db_recovery_file_dest='c:\app\oracle\flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP)
(SERVICE=yzxXDB)'
*.job_queue_processes=10
*.log_archive_format='%t_%s_%r.dbf'
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=167772160
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='c:\app\oracle\admin\yzx\udump'
这里面都是单实例的参数,我们需要把这个改成RAC的参数。