单实例数据库迁移到RAC环境.docx
《单实例数据库迁移到RAC环境.docx》由会员分享,可在线阅读,更多相关《单实例数据库迁移到RAC环境.docx(18页珍藏版)》请在冰豆网上搜索。
![单实例数据库迁移到RAC环境.docx](https://file1.bdocx.com/fileroot1/2023-2/17/2bf13ab1-7f00-474e-9973-7101583d21fa/2bf13ab1-7f00-474e-9973-7101583d21fa1.gif)
单实例数据库迁移到RAC环境
单实例数据库迁移到RAC环境
环境介绍:
数据库的版本均为11.1.0.6.0,数据库字符集编码为AMERICAN_AMERICA.ZHS16GBK
操作系统的版本单实例数据库(源库)为rhel5.864bit
数据库名:
db11g实例名:
db11g
RAC(目标数据库)为rhel5.864bit
一.目标数据库准备工作,rman备份的异机恢复要求数据库名要一致,因而需要先删掉原有的db11g数据库和数据文件
[oracle@rac1~]$srvctlstopdatabase-ddb11g-oimmediate
[oracle@rac1~]$srvctlremovedatabase-ddb11g
Removethedatabasedb11g?
(y/[n])y
[oracle@rac1~]$crs_stat-t-v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora....SM1.asmapplication 0/5 0/0 ONLINE ONLINE rac1
ora....C1.lsnrapplication 0/5 0/0 ONLINE ONLINE rac1
ora.rac1.gsd application 0/5 0/0 ONLINE ONLINE rac1
ora.rac1.ons application 0/3 0/0 ONLINE ONLINE rac1
ora.rac1.vip application 0/0 0/0 ONLINE ONLINE rac1
ora....SM2.asmapplication 0/5 0/0 ONLINE ONLINE rac2
ora....C2.lsnrapplication 0/5 0/0 ONLINE ONLINE rac2
ora.rac2.gsd application 0/5 0/0 ONLINE ONLINE rac2
ora.rac2.ons application 0/3 0/0 ONLINE ONLINE rac2
ora.rac2.vip application 0/0 0/0 ONLINE ONLINE rac2
修改/etc/oratab文件(节点2上同样需要)
[root@rac1~]#tail-n1/etc/oratab
+ASM1:
/u01/app/oracle/product/10.2.0/db_1:
N
[oracle@rac1~]$exportORACLE_SID=+ASM1
[oracle@rac1~]$asmcmd
ASMCMD>rm-rf+DATA/DB11G
ASMCMD>rm-rf+FRA/DB11G
[oracle@rac1~]$sqlplus/nolog
SQL>conn/assysdba
Connected.
SQL>colstateformata10
SQL>colnameformata15
SQL>colfailgroupformata20
SQL>setline200
SQL>select state,redundancy,total_mb,free_mb,name,failgroupfromv$asm_disk;
STATE REDUNDANCY TOTAL_MB FREE_MBNAME FAILGROUP
--------------------------------------------------------------------------------------
NORMAL UNKNOWN 286 0
NORMAL UNKNOWN 286 0
NORMAL UNKNOWN 286 0
NORMAL UNKNOWN 286 0
NORMAL UNKNOWN 286 0
NORMAL UNKNOWN 10208 10114FRA_0000 FRA_0000
NORMAL UNKNOWN 9537 9443DATA_0001 DATA_0001
NORMAL UNKNOWN 9537 9443DATA_0000 DATA_0000
8rowsselected.
备注:
前5个磁盘分别为表决盘和ocr,data磁盘组做了normal冗余
SQL>select group_number,name,state,type,total_mb,free_mb,unbalanced fromv$asm_diskgroup;
GROUP_NUMBERNAME STATE TYPE TOTAL_MB FREE_MBUNB
------------------------------------------------------------------------------
1DATA MOUNTED NORMAL 19074 18886N
2FRA MOUNTED EXTERN 10208 10114N
二.源库上建一个测试表,由spfile生成pfile
SQL>showparametername;
NAME TYPE VALUE
-----------------------------------------------------------------------------
db_file_name_convert string
db_name string db11g
db_unique_name string db11g
global_names boolean FALSE
instance_name string db11g
lock_name_space string
log_file_name_convert string
service_names string db11g
SQL>createtabletest1.migrate(avarchar2(20));
Tablecreated.
SQL>insertintotest1.migrateavalues('successful');
1rowcreated.
SQL>commit;
Commitcomplete.
SQL>createpfile='/backup_ora/rman_bak/initdb11g.ora'fromspfile;
SQL>selectfile_id,file_name,tablespace_namefromdba_data_filesorderby1;
FILE_IDFILE_NAME TABLESPACE_NAME
---------------------------------------------------------------------------
1/u01/app/oracle/oradata/db11g/system01.dbf SYSTEM
2/u01/app/oracle/oradata/db11g/undotbs01.dbf UNDOTBS1
3/u01/app/oracle/oradata/db11g/sysaux01.dbf SYSAUX
4/u01/app/oracle/oradata/db11g/users01.dbf USERS
5/u01/app/oracle/oradata/db11g/example01.dbf EXAMPLE
6/u01/app/oracle/oradata/db11g/exp_rac01.dbf EXP_RAC
7/u01/app/oracle/oradata/db11g/exp_rac_index01.dbf EXP_RAC_INDEX
8/u01/app/oracle/oradata/db11g/exp_rac1_01.dbf EXP_RAC1
9/u01/app/oracle/oradata/db11g/exp_rac1_index_01.dbfEXP_RAC1_INDEX
9rowsselected.
SQL>selectfile_id,file_name,tablespace_namefromdba_temp_filesorderby1;
FILE_IDFILE_NAME TABLESPACE_NAME
---------------------------------------------------------------------------
1/u01/app/oracle/oradata/db11g/temp01.dbf TEMP
SQL>selectfile_name,tablespace_namefromdba_temp_files;
FILE_NAME TABLESPACE_NAME
----------------------------------------------------------------------
/u01/app/oracle/oradata/db11g/temp01.dbf TEMP
三.在源库上使用rman进行全库备份,并将备份复制到目标数据库上
[oracle@server49~]$rmantarget/
RecoveryManager:
Release11.1.0.6.0-ProductiononTueJan312:
10:
062012
Copyright(c)1982,2007,Oracle. Allrightsreserved.
connectedtotargetdatabase:
DB11G(DBID=1299224612)
RMAN>backupincrementallevel0
2>format'/home/oracle/rman_bak/db11g_%U'
3>databaseplusarchivelog
4>deleteallinput;
RMAN>backupcurrentcontrolfileformat'/home/oracle/rman_bak/migrate.ctl';
RMAN>listbackupofdatabasesummary;
ListofBackups
===============
Key TYLVSDeviceTypeCompletionTime#Pieces#CopiesCompressedTag
-----------------------------------------------------------------
2 B 0 ADISK 03-JAN-12 1 1 NO TAG20120103T121503
[oracle@server49~]$scp-rp/home/oracle/rman_bak/rac1:
/home/oracle/
四.在目标数据库上执行恢复
4.1修改初始化参数文件如下
*.__db_cache_size=79691776
*.__java_pool_size=4194304
*.__large_pool_size=4194304
*.__shared_pool_size=109051904
*.__streams_pool_size=8388608
db11g1.instance_name='db11g1'
db11g2.instance_name='db11g2'
db11g1.instance_number=1
db11g2.instance_number=2
*.cluster_database=true
*.cluster_database_instances=2
db11g1.thread=1
*.compatible='11.1.0.6.0'
*.control_files='+DATA/db11g/controlfile/control01.ctl','+FRA/db11g/controlfile/control02.ctl'
*.audit_file_dest='/u01/app/oracle/admin/db11g/adump'
*.core_dump_dest='/u01/app/oracle/admin/db11g/cdump'
*.db_block_size=8192
*.db_file_multiblock_read_count=16
*.db_name='db11g'
*.db_recovery_file_dest='+FRA'
*.db_recovery_file_dest_size=21474836480
*.log_archive_dest_1='LOCATION=+FRA/db11g/archivelog'
*.dispatchers='(PROTOCOL=TCP)(SERVICE=db11gXDB)'
*.job_queue_processes=10
*.log_archive_format='%t_%s_%r.arc'
*.open_cursors=300
*.pga_aggregate_target=71303168
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=213909504
*.undo_management='AUTO'
db11g1.undo_tablespace='UNDOTBS1'
db11g2.undo_tablespace='UNDOTBS2'
备注:
需要格外注意的是,这个时候不能加db11g2.thread=2参数,否则后面无法将数据库启动到mount状态
4.2创建相关的目录,两个节点上都应该存在相应的目录和密码文件
[oracle@rac1~]$mkdir-p /u01/app/oracle/admin/db11g/{adump,bdump,cdump,udump}
[oracle@rac1~]$cd$ORACLE_HOME/dbs
[oracle@rac1dbs]$echo'spfile=+DATA/DB11G/PARAMETERFILE/spfiledb11g.ora'>initdb11g1.ora
[oracle@rac1dbs]$orapwdfile=orapwdb11g1password=123456
[oracle@rac2~]$cd$ORACLE_HOME/dbs
[oracle@rac2dbs]$echo'spfile=+DATA/DB11G/PARAMETERFILE/spfiledb11g.ora'>initdb11g2.ora
[oracle@rac2dbs]$orapwdfile=orapwdb11g2password=123456
4.3利用pfile生成spfile,并保存在ASM实例上,ASM磁盘组中需要存在相应的目录,否则将报错!
[oracle@rac1~]$exportORACLE_SID=db11g1
[oracle@rac1~]$sqlplus/nolog
SQL*Plus:
Release11.1.0.6.0-ProductiononTueJan313:
00:
102012
Copyright(c)1982,2010,Oracle. AllRightsReserved.
SQL>conn/assysdba
Connectedtoanidleinstance.
SQL>startupnomountpfile='/home/oracle/rman_bak/initdb11g.ora';
ORACLEinstancestarted.
TotalSystemGlobalArea 213909504bytes
FixedSize 2095152bytes
VariableSize 125831120bytes
DatabaseBuffers 79691776bytes
RedoBuffers 6291456bytes
SQL>createspfile='+DATA/DB11G/PARAMETERFILE/spfiledb11g.ora'frompfile='/home/oracle/rman_bak/initdb11g.ora';
Filecreated.
ASMCMD>pwd
+DATA/DB11G/PARAMETERFILE
ASMCMD>ls
spfiledb11g.ora
SQL>shutdownabort;
ORACLEinstanceshutdown.
4.4将节点1数据库启动到nomount状态,恢复控制文件,重新将数据库启动到mount状态
[oracle@rac1~]$sqlplus/nolog
SQL*Plus:
Release11.1.0.6.0-ProductiononTueJan313:
09:
482012
Copyright(c)1982,2010,Oracle. AllRightsReserved.
SQL>conn/assysdba
Connectedtoanidleinstance.
SQL>startupnomount
ORACLEinstancestarted.
TotalSystemGlobalArea 213909504bytes
FixedSize 2095152bytes
VariableSize 125831120bytes
DatabaseBuffers 79691776bytes
RedoBuffers 6291456bytes
[oracle@rac1~]$rmantarget/
RecoveryManager:
Release11.1.0.6.0-ProductiononTueJan313:
15:
052012
Copyright(c)1982,2007,Oracle. Allrightsreserved.
connectedtotargetdatabase:
db11g(notmounted)
RMAN>restorecontrolfilefrom'/home/oracle/rman_bak/migrate.ctl';
Startingrestoreat2012-01-0313:
15:
11
usingtargetdatabasecontrolfileinsteadofrecoverycatalog
allocatedchannel:
ORA_DISK_1
channelORA_DISK_1:
sid=153instance=db11g1devtype=DISK
channelORA_DISK_1:
restoringcontrolfile
channelORA_DISK_1:
restorecomplete,elapsedtime:
00:
00:
08
outputfilename=+DATA/db11g/controlfile/control01.ctl
outputfilename=+FRA/db11g/controlfile/control02.