Migrate database from single instance to Oracle RAC
# Preparation before restore
# Backup database
# check listener
# check ASM disk group free space is sufficient.
# the following steps was completed sucessful on Oracle 10g RAC + Suse Linux 10.
-
Synopsis:
-
source DB : GOBO1 on file system
-
Target DB : GOBO1 on RAC +ASM
-
Target Instance: GOBO1A, GOBO1B
-
Target node: bo2dbp, bo2dbs
-
Source Env: Oracle 10g(10.2.0.3) + Suse 10
-
Target Env: Oracle 10g(10.2.0.3) RAC + ASM + RAW + Suse 10
-
ORA_CRS_HOME=/u01/oracle/crs
-
ORA_ASM_HOME=/u01/oracle/asm
-
ORACLE_BASE=/u01/oracle
-
ORACLE_HOME=/u01/oracle/db
-
-
Step 1
-
-
export ORACLE_SID=GOBO1A
-
rman target /
-
startup nomount;
-
restore spfile to pfile '/u01/oracle/db/dbs/initGOBO1A.ora'
-
from '';
-
shutdown immediate;
-
-
Step 2
-
-
export ORACLE_SID=GOBO1
-
mkdir -p /u01/oracle/admin/${ORACLE_SID}/{bdump,cdump,udump,adump}
-
-
Step 3
-
-
-
-
cp initGOBO1A.ora initGOBO1A.ora.bak
-
vi initGOBO1A.ora
-
GOBO1.__db_cache_size=230686720
-
GOBO1.__java_pool_size=4194304
-
GOBO1.__large_pool_size=4194304
-
GOBO1.__shared_pool_size=289406976
-
GOBO1.__streams_pool_size=0
-
*.compatible='10.2.0.3.0'
-
-
-
-
-
-
*.db_block_size=8192
-
*.db_domain=''
-
*.db_file_multiblock_read_count=16
-
*.DB_FLASHBACK_RETENTION_TARGET=2880
-
*.db_name='GOBO1'
-
-
-
-
*.db_recovery_file_dest_size=4G
-
-
*.dispatchers='(PROTOCOL=TCP) (SERVICE=GOBO1XDB)'
-
*.job_queue_processes=10
-
-
-
-
*.log_archive_format='arch_%r_%t_%s.arc'
-
*.open_cursors=300
-
*.pga_aggregate_target=199229440
-
*.processes=1000
-
*.remote_login_passwordfile='EXCLUSIVE'
-
*.sga_target=512M
-
*.shared_pool_size=256M
-
-
-
-
-
-
-
-
-
*.core_dump_dest='/u01/oracle/admin/GOBO1/cdump'
-
*.user_dump_dest='/u01/oracle/admin/GOBO1/udump'
-
*.UTL_FILE_DIR='/u01/oracle/admin/GOBO1/udump'
-
*.background_dump_dest='/u01/oracle/admin/GOBO1/bdump'
-
*.audit_file_dest='/u01/oracle/admin/GOBO1/adump'
-
-
*.cluster_database = TRUE
-
*.cluster_database_instances = 2
-
*.undo_management='AUTO'
-
*.control_files='+DG1/GOBO1/controlf/cntl1GOBO1.ctl','+DG1/GOBO1/controlf/cntl2GOBO1.ctl'
-
-
GOBO1A.undo_tablespace='UNDOTBS1'
-
GOBO1A.instance_name=GOBO1A
-
GOBO1A.instance_number=1
-
GOBO1A.thread=1
-
-
-
GOBO1B.undo_tablespace='UNDOTBS2'
-
GOBO1B.instance_name=GOBO1B
-
GOBO1B.instance_number=2
-
-
-
-
*.db_create_file_dest='+DG2'
-
*.db_recovery_file_dest='+REV'
-
*.log_archive_dest_1='LOCATION=+REV/GOBO1/archivelog'
-
-
Step 4
-
-
-
-
export ORACLE_SID=+ASM1
-
asmcmd
-
cd +DG1
-
mkdir GOBO1
-
cd GOBO1
-
mkdir controlf parameterf onlinelog
-
-
cd +DG2
-
mkdir GOBO1
-
cd GOBO1
-
mkdir datafile
-
-
Step 5
-
-
$ORACLE_HOME/dbs/orapwd file=?/dbs/orapwGOBO1A password=oracle entries=10
-
-
$ORACLE_HOME/dbs/orapwd file=?/dbs/orapwGOBO1B password=oracle entries=10
-
-
Step 6
-
-
export ORACLE_SID=GOBO1A
-
sqlplus / as sysdba
-
startup nomount;
-
create spfile='+DG1/GOBO1/parameterf/spfileGOBO1.ora' from pfile='/u01/oracle/db/dbs/initGOBO1A.ora'
-
shutdown immediate;
-
-
echo "SPFILE='+DG1/GOBO1/parameterf/spfileGOBO1.ora'" >/u01/oracle/db/dbs/initGOBO1A.ora
-
echo "SPFILE='+DG1/GOBO1/parameterf/spfileGOBO1.ora'" >/u01/oracle/db/dbs/initGOBO1B.ora
-
-
startup nomount;
-
show parameter spfile;
-
-
Step 7
-
-
export ORACLE_SID=GOBO1A
-
$ORACLE_HOME/bin/rman target /
-
restore controlfile from '';
-
sql 'alter database mount';
-
-
Step 8
-
-
-
sys@GOBO1> select file_id,file_name from dba_data_files order by 1;
-
-
FILE_ID FILE_NAME
-
---------- ------------------------------------------------------------
-
1 /u02/database/GOBO1/oradata/sysGOBO1.dbf
-
2 /u02/database/GOBO1/undo/undotbsGOBO1.dbf
-
3 /u02/database/GOBO1/oradata/sysauxGOBO1.dbf
-
4 /u02/database/GOBO1/undo/undotbsGOBO12.dbf
-
5 /u02/database/GOBO1/oradata/GOBO1_account_tbl.dbf
-
6 /u02/database/GOBO1/oradata/GOBO1_stock_tbl.dbf
-
7 /u02/database/GOBO1/oradata/GOBO1_stock_l_tbl.dbf
-
8 /u02/database/GOBO1/oradata/GOBO1_tx_tbl.dbf
-
9 /u02/database/GOBO1/oradata/GOBO1_users_tbl.dbf
-
10 /u02/database/GOBO1/oradata/GOBO1_account_idx.dbf
-
11 /u02/database/GOBO1/oradata/GOBO1_stock_idx.dbf
-
12 /u02/database/GOBO1/oradata/GOBO1_stock_l_idx.dbf
-
13 /u02/database/GOBO1/oradata/GOBO1_tx_idx.dbf
-
14 /u02/database/GOBO1/oradata/GOBO1_users_idx.dbf
-
15 /u02/database/GOBO1/oradata/GOBO1_IES_IDX.DBF
-
16 /u02/database/GOBO1/oradata/GOBO1_IES_TBL.DBF
-
17 /u02/database/GOBO1/oradata/GOBO1_import_idx.dbf
-
18 /u02/database/GOBO1/oradata/GOBO1_import_tbl.dbf
-
19 /u02/database/GOBO1/oradata/GOBO1_fix_tx_idx.dbf
-
20 /u02/database/GOBO1/oradata/GOBO1_fix_tx_tbl.dbf
-
21 /u02/database/GOBO1/oradata/GOBO1_fix_users_idx.dbf
-
22 /u02/database/GOBO1/oradata/GOBO1_fix_users_tbl.dbf
-
23 /u02/database/GOBO1/oradata/xxxx_ipo_tbl.dbf
-
24 /u02/database/GOBO1/oradata/xxxx_ipo_idx.dbf
-
catalog start with '/install_source/rman_bak';
-
run {
-
set newname for datafile 1 to '+DG2/GOBO1/datafile/sysGOBO1.dbf';
-
set newname for datafile 2 to '+DG2/GOBO1/datafile/undotbsGOBO1.dbf';
-
set newname for datafile 3 to '+DG2/GOBO1/datafile/sysauxGOBO1.dbf';
-
set newname for datafile 4 to '+DG2/GOBO1/datafile/undotbsGOBO12.dbf';
-
set newname for datafile 5 to '+DG2/GOBO1/datafile/GOBO1_account_tbl.dbf';
-
set newname for datafile 6 to '+DG2/GOBO1/datafile/GOBO1_stock_tbl.dbf';
-
set newname for datafile 7 to '+DG2/GOBO1/datafile/GOBO1_stock_l_tbl.dbf';
-
set newname for datafile 8 to '+DG2/GOBO1/datafile/GOBO1_tx_tbl.dbf';
-
set newname for datafile 9 to '+DG2/GOBO1/datafile/GOBO1_users_tbl.dbf';
-
set newname for datafile 10 to '+DG2/GOBO1/datafile/GOBO1_account_idx.dbf';
-
set newname for datafile 11 to '+DG2/GOBO1/datafile/GOBO1_stock_idx.dbf';
-
set newname for datafile 12 to '+DG2/GOBO1/datafile/GOBO1_stock_l_idx.dbf';
-
set newname for datafile 13 to '+DG2/GOBO1/datafile/GOBO1_tx_idx.dbf';
-
set newname for datafile 14 to '+DG2/GOBO1/datafile/GOBO1_users_idx.dbf';
-
set newname for datafile 15 to '+DG2/GOBO1/datafile/GOBO1_IES_IDX.DBF';
-
set newname for datafile 16 to '+DG2/GOBO1/datafile/GOBO1_IES_TBL.DBF';
-
set newname for datafile 17 to '+DG2/GOBO1/datafile/GOBO1_import_idx.dbf';
-
set newname for datafile 18 to '+DG2/GOBO1/datafile/GOBO1_import_tbl.dbf';
-
set newname for datafile 19 to '+DG2/GOBO1/datafile/GOBO1_fix_tx_idx.dbf';
-
set newname for datafile 20 to '+DG2/GOBO1/datafile/GOBO1_fix_tx_tbl.dbf';
-
set newname for datafile 21 to '+DG2/GOBO1/datafile/GOBO1_fix_users_idx.dbf';
-
set newname for datafile 22 to '+DG2/GOBO1/datafile/GOBO1_fix_users_tbl.dbf';
-
set newname for datafile 23 to '+DG2/GOBO1/datafile/xxxx_ipo_tbl.dbf';
-
set newname for datafile 24 to '+DG2/GOBO1/datafile/xxxx_ipo_idx.dbf';
-
restore database;
-
switch datafile all;
-
switch tempfile all;
-
}
-
-
Step 9
-
-
recover database;
-
-
Step 10
-
-
sys@GOBO1> select * from v$logfile;
-
-
GROUP
-
---------- ------- ------- ------------------------------------------------------------ ---
-
1 ONLINE /u02/database/GOBO1/redolog/log1aGOBO1.log NO
-
1 ONLINE /u02/database/GOBO1/redolog/log1bGOBO1.log NO
-
3 ONLINE /u02/database/GOBO1/redolog/log3aGOBO1.log NO
-
3 ONLINE /u02/database/GOBO1/redolog/log3bGOBO1.log NO
-
2 ONLINE /u02/database/GOBO1/redolog/log2aGOBO1.log NO
-
2 ONLINE /u02/database/GOBO1/redolog/log2bGOBO1.log NO
-
-
alter database rename file '/u02/database/GOBO1/redolog/log1aGOBO1.log' to '+DG1/GOBO1/onlinelog/log1aGOBO1.log';
-
alter database rename file '/u02/database/GOBO1/redolog/log1bGOBO1.log' to '+DG1/GOBO1/onlinelog/log1bGOBO1.log';
-
alter database rename file '/u02/database/GOBO1/redolog/log3aGOBO1.log' to '+DG1/GOBO1/onlinelog/log3aGOBO1.log';
-
alter database rename file '/u02/database/GOBO1/redolog/log3bGOBO1.log' to '+DG1/GOBO1/onlinelog/log3bGOBO1.log';
-
alter database rename file '/u02/database/GOBO1/redolog/log2aGOBO1.log' to '+DG1/GOBO1/onlinelog/log2aGOBO1.log';
-
alter database rename file '/u02/database/GOBO1/redolog/log2bGOBO1.log' to '+DG1/GOBO1/onlinelog/log2bGOBO1.log';
-
-
-
alter database add logfile thread 2 group 4
-
('+DG1/GOBO1/onlinelog/log4aGOBO1.log','+DG1/GOBO1/onlinelog/log4bGOBO1.log') size 20M;
-
alter database add logfile thread 2 group 5
-
('+DG1/GOBO1/onlinelog/log5aGOBO1.log','+DG1/GOBO1/onlinelog/log5bGOBO1.log') size 20M;
-
alter database add logfile thread 2 group 6
-
('+DG1/GOBO1/onlinelog/log6aGOBO1.log','+DG1/GOBO1/onlinelog/log6bGOBO1.log') size 20M;
-
-
-
Step 11
-
-
-
alter database open resetlogs; --> if failed, recover database using backup controlfile until cancel by sqlplus;
-
-
Step 12
-
-
alter system set thread=1 scope=spfile sid='GOBO1A';
-
alter system set thread=2 scope=spfile sid='GOBO1B';
-
alter database enable thread 2;
-
-
Step 13
-
-
alter system set undo_tablespace='UNDOTBS2' scope=spfile sid='GOBO1B';
-
-->if current db has no undotbs2,create it firstly as follows
-
create undo tablespace UNDOTBS2 datafile '+DG2/GOBO1/datafile/undotbs02.dbf' size 500m autoextnd on;
-
-
Step 14
-
-
-
col file_name format a55
-
select file_name,tablespace_name,bytes/1022/1024 from dba_temp_files;
-
alter tablespace temp add tempfile '+DG2/GOBO1/datafile/temp.dbf' size 50m;
-
alter tablespace goex_temp add tempfile '+DG2/GOBO1/datafile/goex_temp.dbf' size 50m;
-
-
Step 15
-
-
-
select username,default_tablespace,temporary_tablespace from dba_users;
-
-
Step 16
-
-
select * from v$option where parameter = 'Real Application Clusters';
-
show parameter cluster;
-
show parameter thread;
-
show parameter instance_number;
-
-
Step 17
-
-
-
-
Step 18
-
-
-
-
Step 19
-
-
select instance_number,instance_name,host_name from gv$instance;
-
-
Step 20
-
-
-
$ORACLE_HOME/rdbms/admin/catclust.sql
-
-
Step 21
-
-
by netca
-
ps -ef | grep lsnr
-
crs_stat -t
-
-
Step 22
-
-
srvctl add database -d GOBO1 -o $ORACLE_HOME -p +DG1/GOBO1/parameterf/spfileGOBO1.ora
-
srvctl add instance -d GOBO1 -i GOBO1A -n bo2dbp
-
srvctl add instance -d GOBO1 -i GOBO1B -n bo2dbs
-
-
srvctl modify instance -d GOBO1 -i GOBO1A -s +ASM1
-
srvctl modify instance -d GOBO1 -i GOBO1B -s +ASM2
-
crs_stat -t
-
-
Step 23
-
-
-
-
-
srvctl start database -d GOBO1
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23490154/viewspace-1062400/
,如需转载,请注明出处,否则将追究法律责任。