Oracle RMAN Migrate DB from RAC ASM to Single non-ASM
2013-07-23 11:02
639 查看
环境: Linux 5.5 x64 + Oracle 11.2.3 RAC + ASM ->Linux 5.5 x64 + Oracle 11.2.3 Single + non-ASM
迁移: ORALCE_HOME,DATABASE(pfile,controlfile,datafile,redolog,archivelog)
####################################### RAC Oracle Home迁移成Single Oracle Home #######################################
1, Oracle Home从RAC拷贝到Single主机,启动SQLPLUS出现ORA-29702
http://somireddy.wordpress.com/2011/10/08/ora-29702-error-occurred-in-cluster-group-service-operation/
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk rac_off
make -f ins_rdbms.mk ioracle
[oraprod@q1ebsdb lib]$ ll|grep ins_rdbms.mk
-rw-r--r-- 1 oraprod oinstall 40678 Sep 17 2011 ins_rdbms.mk
[oraprod@q1ebsdb lib]$ make -f ins_rdbms.mk rac_off
rm -f /prod/oracle/product/11.2.0/db_1/lib/libskgxp11.so
cp /prod/oracle/product/11.2.0/db_1/lib//libskgxpg.so /prod/oracle/product/11.2.0/db_1/lib/libskgxp11.so
rm -f /prod/oracle/product/11.2.0/db_1/lib/libskgxn2.so
cp /prod/oracle/product/11.2.0/db_1/lib//libskgxns.so \
/prod/oracle/product/11.2.0/db_1/lib/libskgxn2.so
/usr/bin/ar d /prod/oracle/product/11.2.0/db_1/rdbms/lib/libknlopt.a kcsm.o
/usr/bin/ar cr /prod/oracle/product/11.2.0/db_1/rdbms/lib/libknlopt.a /prod/oracle/product/11.2.0/db_1/rdbms/lib/ksnkcs.o
[oraprod@q1ebsdb lib]$ make -f ins_rdbms.mk ioracle
chmod 755 /prod/oracle/product/11.2.0/db_1/bin
- Linking Oracle
rm -f /prod/oracle/product/11.2.0/db_1/rdbms/lib/oracle
gcc -o /prod/oracle/product/11.2.0/db_1/rdbms/lib/oracle -m64 -L/prod/oracle/product/11.2.0/db_1/rdbms/lib/ -L/prod/oracle/product/11.2.0/db_1/lib/ -L/prod/oracle/product/11.2.0/db_1/lib/stubs/ -Wl,-E /prod/oracle/product/11.2.0/db_1/rdbms/lib/opimai.o /prod/oracle/product/11.2.0/db_1/rdbms/lib/ssoraed.o
/prod/oracle/product/11.2.0/db_1/rdbms/lib/ttcsoi.o -Wl,--whole-archive -lperfsrv11 -Wl,--no-whole-archive /prod/oracle/product/11.2.0/db_1/lib/nautab.o /prod/oracle/product/11.2.0/db_1/lib/naeet.o /prod/oracle/product/11.2.0/db_1/lib/naect.o /prod/oracle/product/11.2.0/db_1/lib/naedhs.o
/prod/oracle/product/11.2.0/db_1/rdbms/lib/config.o -lserver11 -lodm11 -lcell11 -lnnet11 -lskgxp11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lclient11 -lvsn11 -lcommon11
-lgeneric11 -lknlopt `if /usr/bin/ar tv /prod/oracle/product/11.2.0/db_1/rdbms/lib/libknlopt.a | grep xsyeolap.o > /dev/null 2>&1 ; then echo "-loraolap11" ; fi` -lslax11 -lpls11 -lrt -lplp11 -lserver11 -lclient11 -lvsn11 -lcommon11 -lgeneric11 `if [ -f
/prod/oracle/product/11.2.0/db_1/lib/libavserver11.a ] ; then echo "-lavserver11" ; else echo "-lavstub11"; fi` `if [ -f /prod/oracle/product/11.2.0/db_1/lib/libavclient11.a ] ; then echo "-lavclient11" ; fi` -lknlopt -lslax11 -lpls11 -lrt -lplp11 -ljavavm11
-lserver11 -lwwg `cat /prod/oracle/product/11.2.0/db_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /prod/oracle/product/11.2.0/db_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lmm -lsnls11 -lnls11
-lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lztkg11 `cat /prod/oracle/product/11.2.0/db_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /prod/oracle/product/11.2.0/db_1/lib/ldflags`
-lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `if /usr/bin/ar tv /prod/oracle/product/11.2.0/db_1/rdbms/lib/libknlopt.a
| grep "kxmnsd.o" > /dev/null 2>&1 ; then echo " " ; else echo "-lordsdo11"; fi` -L/prod/oracle/product/11.2.0/db_1/ctx/lib/ -lctxc11 -lctx11 -lzx11 -lgx11 -lctx11 -lzx11 -lgx11 -lordimt11 -lclsra11 -ldbcfg11 -lhasgen11 -lskgxn2 -lnnz11 -lzt11 -lxml11 -locr11
-locrb11 -locrutl11 -lhasgen11 -lskgxn2 -lnnz11 -lzt11 -lxml11 -loraz -llzopro -lorabz2 -lipp_z -lipp_bz2 -lippdcemerged -lippsemerged -lippdcmerged -lippsmerged -lippcore -lippcpemerged -lippcpmerged -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11
-lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lsnls11 -lunls11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lasmclnt11 -lcommon11 -lcore11
-laio `cat /prod/oracle/product/11.2.0/db_1/lib/sysliblist` -Wl,-rpath,/prod/oracle/product/11.2.0/db_1/lib -lm `cat /prod/oracle/product/11.2.0/db_1/lib/sysliblist` -ldl -lm -L/prod/oracle/product/11.2.0/db_1/lib
test ! -f /prod/oracle/product/11.2.0/db_1/bin/oracle ||\
mv -f /prod/oracle/product/11.2.0/db_1/bin/oracle /prod/oracle/product/11.2.0/db_1/bin/oracleO
mv /prod/oracle/product/11.2.0/db_1/rdbms/lib/oracle /prod/oracle/product/11.2.0/db_1/bin/oracle
chmod 6751 /prod/oracle/product/11.2.0/db_1/bin/oracle
####################################### RMAN恢复备份集权限不足 #######################################
2, 问题2:备份集权限不足。
RMAN> restore spfile from '/u01/FULL_PROD_20130715_16';
Starting restore at 15-JUL-13
using channel ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 07/15/2013 17:32:26
RMAN-06172: no AUTOBACKUP found or specified handle is not a valid copy or piece
这里是权限的问题,设置全部可读写,恢复成功。
[root@q1ebsdb u01]# chmod 777 ARCH_PROD_20130715_17 CTRL_PROD_20130715_18 FULL_PROD_20130715_1*
[oraprod@q1ebsdb u01]$ rman target /
Recovery Manager: Release 11.2.0.3.0 - Production on Mon Jul 15 17:33:10 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: PROD (not mounted)
RMAN> restore spfile from '/u01/FULL_PROD_20130715_16';
Starting restore at 15-JUL-13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=9 device type=DISK
channel ORA_DISK_1: restoring spfile from AUTOBACKUP /u01/FULL_PROD_20130715_16
channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete
Finished restore at 15-JUL-13
####################################### 备份数据库 #######################################
# 备份数据库。
backup full database tag 'FULL' format='/u01/FULL_%d_%T_%s';
backup archivelog all tag 'ARCH' format '/u01/ARCH_%d_%T_%s' delete all input;
backup current controlfile tag 'CTRL' format '/u01/CTRL_%d_%T_%s';
#######################################3种方式恢复数据库 RAC ASM ->Single non-ASM#######################################
1,相同DBNAME,相同DBID
2,不同DBNAME,相同DBID
3,不同DBNAME,不同DBID
####################################### 1 RMAN恢复相同DBNAME,相同DBID数据库 #######################################
# 恢复同名数据库,DBNAME和DBID都相同。
1,利用恢复出来的spfile生成pfile,并修改成initprod.ora,SQLPLUS启动数据库nomount状态。
2,恢复DB_NAME相同的数据库: RMAN恢复控制文件,转换恢复数据文件,恢复数据库,启用新的归档日志,再次恢复数据库。
startup nomount;
set dbid=228115897
restore controlfile from '/u01/CTRL_PROD_20130715_18';
alter database mount;
catalog start with '/u01';
run{
SET NEWNAME FOR DATABASE TO '/prod/oracle/oradata/prod/%b';
SET NEWNAME FOR TEMPFILE 1 TO '/prod/oracle/oradata/prod/%b';
RESTORE DATABASE;
SWITCH DATAFILE ALL;
SWITCH TEMPFILE ALL;
}
RECOVER DATABASE;
此时数据库会开始使用归档目录下的归档日志,重新catalog新产生并拷贝过来的归档文件。
catalog start with '/prod/oracle/fast_recovery_area/PROD/archivelog/2013_07_15';
RECOVER DATABASE;
alter database open resetlogs;
通过nis可以进行数据库改名。
####################################### 2 RMAN恢复不同DBNAME,但相同DBID数据库 #######################################
# RMAN恢复到不同数据库,DBNAME不同,但DBID相同。
准备2个pfile,initprod.ora和initTEST.ora,仅仅db_name不同而已。
export ORACLE_SID=prod
startup nomount pfile='/prod/oracle/product/11.2.0/db_1/dbs/initprod.ora';
restore controlfile from '/u01/CTRL_PROD_20130715_18';
startup mount;
catalog start with '/u01/';
run{
SET NEWNAME FOR DATABASE TO '/prod/oracle/oradata/TEST/%b';
SET NEWNAME FOR TEMPFILE 1 TO '/prod/oracle/oradata/TEST/%b';
RESTORE DATABASE;
SWITCH DATAFILE ALL;
SWITCH TEMPFILE ALL;
}
修改logfile,主要是为了更新控制文件的在线日志从ASM->non-ASM。
alter database rename file '+DATADG/prod/onlinelog/group_1.267.817172147' to '/prod/oracle/oradata/TEST/group_1.267.817172147';
alter database rename file '+FRADG/prod/onlinelog/group_1.260.817172149' to '/prod/oracle/oradata/TEST/group_1.260.817172149';
alter database rename file '+DATADG/prod/onlinelog/group_2.266.817172151' to '/prod/oracle/oradata/TEST/group_2.266.817172151';
alter database rename file '+FRADG/prod/onlinelog/group_2.259.817172151' to '/prod/oracle/oradata/TEST/group_2.259.817172151';
alter database rename file '+DATADG/prod/onlinelog/group_3.265.817172153' to '/prod/oracle/oradata/TEST/group_3.265.817172153';
alter database rename file '+FRADG/prod/onlinelog/group_3.258.817172153' to '/prod/oracle/oradata/TEST/group_3.258.817172153';
alter database rename file '+DATADG/prod/onlinelog/group_4.264.817172155' to '/prod/oracle/oradata/TEST/group_4.264.817172155';
alter database rename file '+FRADG/prod/onlinelog/group_4.257.817172155' to '/prod/oracle/oradata/TEST/group_4.257.817172155';
alter database rename file '+DATADG/prod/onlinelog/group_5.271.817172163' to '/prod/oracle/oradata/TEST/group_5.271.817172163';
alter database rename file '+FRADG/prod/onlinelog/group_5.264.817172163' to '/prod/oracle/oradata/TEST/group_5.264.817172163';
alter database rename file '+DATADG/prod/onlinelog/group_6.270.817172163' to '/prod/oracle/oradata/TEST/group_6.270.817172163';
alter database rename file '+FRADG/prod/onlinelog/group_6.263.817172163' to '/prod/oracle/oradata/TEST/group_6.263.817172163';
alter database rename file '+DATADG/prod/onlinelog/group_7.269.817172167' to '/prod/oracle/oradata/TEST/group_7.269.817172167';
alter database rename file '+FRADG/prod/onlinelog/group_7.262.817172167' to '/prod/oracle/oradata/TEST/group_7.262.817172167';
alter database rename file '+DATADG/prod/onlinelog/group_8.268.817172167' to '/prod/oracle/oradata/TEST/group_8.268.817172167';
alter database rename file '+FRADG/prod/onlinelog/group_8.261.817172167' to '/prod/oracle/oradata/TEST/group_8.261.817172167';
SQL> alter database backup controlfile to trace as '/u01/control_trace.txt';--生成DBNAME=PROD的控制文件脚本。
shutdown immediate;
export ORACLE_SID=TEST
startup nomount pfile='/prod/oracle/product/11.2.0/db_1/dbs/initTEST.ora'
修改/u01/control_trace.txt,PROD=>TEST,利用NORETLOGS那一段脚本创建control_trace.sql,重建TEST控制文件。
SQL> !rm -rf /prod/oracle/oradata/TEST/control01.ctl
SQL> @/u01/control_trace.sql
CREATE CONTROLFILE REUSE DATABASE "TEST" NORESETLOGS ARCHIVELOG
*
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-01161: database name PROD in file header does not match given name of TEST
ORA-01110: data file 1: '/prod/oracle/oradata/TEST/system.259.817171877'
修改control_trace.sql中RESET=>SET,注意这里是关键。
SQL> @/u01/control_trace.sql
CREATE CONTROLFILE SET DATABASE "TEST" NORESETLOGS ARCHIVELOG
*
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-01223: RESETLOGS must be specified to set a new database name
修改control_trace.sql中NORESETLOGS=>RESETLOGS,注意这里也是关键。
SQL> @/u01/control_trace.sql
Control file created.
注意:这一步控制文件已经重建完毕,如果源数据库有结构变化,这里需要手动增加数据文件。这一步也可以放在后面恢复时提醒数据文件缺失并OFFLINE时进行处理。
RMAN恢复
export ORACLE_SID=TEST
RMAN> recover database;
Starting recover at 22-JUL-13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=10 device type=DISK
starting media recovery
unable to find archived log
archived log thread=1 sequence=369
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 07/22/2013 14:36:21
RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 369 and starting SCN of 14781355
RMAN> catalog start with '/u01/'; --注意/u01/目录里只存放了恢复使用的备份集。
RMAN> recover database; --这里是进行归档日志的恢复,需要多尝试几次,它会利用所有的归档日志。
...
Executing: alter database datafile 6 offline
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_1_426_8yvs7zwz_.arc thread=1 sequence=426
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_2_179_8yvs7zw9_.arc thread=2 sequence=179
channel default: deleting archived log(s)
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_1_426_8yvs7zwz_.arc RECID=95 STAMP=821527552
archived log file name=/backup/thread_1_seq_427.364.821465293 thread=1 sequence=427
channel default: deleting archived log(s)
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_2_179_8yvs7zw9_.arc RECID=96 STAMP=821527552
archived log file name=/backup/thread_2_seq_180.368.821484023 thread=2 sequence=180
archived log file name=/backup/thread_1_seq_428.366.821473911 thread=1 sequence=428
archived log file name=/backup/thread_1_seq_429.361.821484021 thread=1 sequence=429
archived log file name=/backup/thread_1_seq_430.370.821491237 thread=1 sequence=430
archived log file name=/backup/thread_2_seq_181.369.821494839 thread=2 sequence=181
archived log file name=/backup/thread_1_seq_431.371.821502021 thread=1 sequence=431
unable to find archived log
archived log thread=2 sequence=182
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 07/23/2013 10:07:46
RMAN-06054: media recovery requesting unknown archived log for thread 2 with sequence 182 and starting SCN of 19195470
这里显示datafile 6没有,需要创建。
SQL> alter database create datafile 6 as '/prod/oracle/oradata/TEST/EBSDATA.ora';
SQL> alter database datafile 6 online;
RMAN> recover database; --此时会恢复数据文件6.
Starting recover at 23-JUL-13
using channel ORA_DISK_1
starting media recovery
archived log for thread 1 with sequence 427 is already on disk as file /backup/thread_1_seq_427.364.821465293
archived log for thread 1 with sequence 428 is already on disk as file /backup/thread_1_seq_428.366.821473911
archived log for thread 1 with sequence 429 is already on disk as file /backup/thread_1_seq_429.361.821484021
archived log for thread 1 with sequence 430 is already on disk as file /backup/thread_1_seq_430.370.821491237
archived log for thread 1 with sequence 431 is already on disk as file /backup/thread_1_seq_431.371.821502021
archived log for thread 1 with sequence 432 is already on disk as file /backup/thread_1_seq_432.373.821512819
archived log for thread 2 with sequence 180 is already on disk as file /backup/thread_2_seq_180.368.821484023
archived log for thread 2 with sequence 181 is already on disk as file /backup/thread_2_seq_181.369.821494839
channel ORA_DISK_1: starting archived log restore to default destination
channel ORA_DISK_1: restoring archived log
archived log thread=2 sequence=179
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=426
channel ORA_DISK_1: reading from backup piece /backup/ARCH_PROD_20130722_20
channel ORA_DISK_1: piece handle=/backup/ARCH_PROD_20130722_20 tag=ARCH
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:07
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_1_426_8yvsh60n_.arc thread=1 sequence=426
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_2_179_8yvsh60j_.arc thread=2 sequence=179
channel default: deleting archived log(s)
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_1_426_8yvsh60n_.arc RECID=98 STAMP=821527782
archived log file name=/backup/thread_1_seq_427.364.821465293 thread=1 sequence=427
channel default: deleting archived log(s)
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_2_179_8yvsh60j_.arc RECID=99 STAMP=821527782
archived log file name=/backup/thread_2_seq_180.368.821484023 thread=2 sequence=180
archived log file name=/backup/thread_1_seq_428.366.821473911 thread=1 sequence=428
archived log file name=/backup/thread_1_seq_429.361.821484021 thread=1 sequence=429
archived log file name=/backup/thread_1_seq_430.370.821491237 thread=1 sequence=430
archived log file name=/backup/thread_2_seq_181.369.821494839 thread=2 sequence=181
archived log file name=/backup/thread_1_seq_431.371.821502021 thread=1 sequence=431
unable to find archived log
archived log thread=2 sequence=182
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 07/23/2013 10:09:45
RMAN-06054: media recovery requesting unknown archived log for thread 2 with sequence 182 and starting SCN of 19195470
RMAN> recover database; --最后一次恢复,会提示需要在线日志thread 2 sequence 182。
RMAN恢复会到最后一个归档日志应用完毕,接下来在SLQPLUS中恢复应用在线日志。
SQLPLUS恢复在线日志,下面的恢复正常完成。
SQL> recover database using backup controlfile;
ORA-00279: change 19195470 generated at 07/23/2013 01:00:39 needed for thread 2
ORA-00289: suggestion :
/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_2_182_%u_.arc
ORA-00280: change 19195470 for thread 2 is in sequence #182
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/backup/group_6.263.817172163
ORA-00279: change 19195470 generated at 07/23/2013 00:00:36 needed for thread 1
ORA-00289: suggestion : /backup/thread_1_seq_431.371.821502021
ORA-00280: change 19195470 for thread 1 is in sequence #431
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/backup/thread_1_seq_431.371.821502021
ORA-00279: change 19242558 generated at 07/23/2013 03:00:21 needed for thread 1
ORA-00289: suggestion : /backup/thread_1_seq_432.373.821512819
ORA-00280: change 19242558 for thread 1 is in sequence #432
ORA-00278: log file '/backup/thread_1_seq_431.371.821502021' no longer needed
for this recovery
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/backup/thread_1_seq_432.373.821512819
ORA-00279: change 19312913 generated at 07/23/2013 06:00:17 needed for thread 1
ORA-00289: suggestion :
/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_1_433_%u_.arc
ORA-00280: change 19312913 for thread 1 is in sequence #433
ORA-00278: log file '/backup/thread_1_seq_432.373.821512819' no longer needed
for this recovery
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/backup/group_2.259.817172151
Log applied.
Media recovery complete.
SQL> alter database open;
SQL> alter database open resetlogs;
Database altered.
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/prod/oracle/oradata/TEST/TEMP.ora' size 16M autoextend on;
SQL> select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
UNDOTBS2
EBSDATA
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/prod/oracle/oradata/TEST/undotbs2.256.817172295
/prod/oracle/oradata/TEST/users.257.817171937
/prod/oracle/oradata/TEST/undotbs1.258.817171901
/prod/oracle/oradata/TEST/sysaux.260.817171845
/prod/oracle/oradata/TEST/system.259.817171877
/prod/oracle/oradata/TEST/EBSDATA.ora
SQL> conn jeron_peng/amaxgs
ID NAME
---------- ------------------------------------------------------------
1 11.1.0.7.0
2 11.2.0.3.0
6 2013-07-15 23:42:00
4 11.2.0.3.0Jul152013
5 CompleteBackup
3 11.2.0.3.0CPUApr2013
7 2013-07-22 16:43:00
最后产生的数据已经恢复出来。
注意一点:这里其实数据库结构已经发生了变化,最新的控制文件已经创建了数据文件6,而恢复的控制文件是没有的,恢复时会提示数据文件OFFLINE,我们只需在后面创建并ONLINE。
SQL> alter database create datafile 6 as '/prod/oracle/oradata/TEST/EBSDATA.ora';
SQL> alter datafile 6 online;
#################################### 3 RMAN DUPLICATE恢复不同DBNAME,不同DBID数据库 #######################################
# DUPLICATE恢复到不同名数据库。
Duplicate prod to TEST from backupset without target and catelog.
创建新库需要的audit目录,数据文件目录,trace文件目录,闪回恢复目录等。
创建密码文件,保持和源库完全一样。orapwd file=orapwTEST password=amaxgs
创建pfile,initTEST.ora,启动数据库,并创建spfile,重启数据库从spfile启动。
利用下面的Duplicate,注意BACKUP LOCATION路径组后有“/”,必须为‘/u01/’,否则‘/u01’会报错,找不到SPFILE或者CONTROLFILE等。
run{
SET NEWNAME FOR DATABASE TO '/prod/oracle/oradata/TEST/%b';
SET NEWNAME FOR TEMPFILE 1 TO '/prod/oracle/oradata/TEST/%b';
DUPLICATE DATABASE TO 'TEST' BACKUP LOCATION '/u01/';
}
[oratest@q1ebsdb ~]$ rman auxiliary /
Recovery Manager: Release 11.2.0.3.0 - Production on Thu Jul 18 22:27:00 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to auxiliary database: TEST (not mounted)
RMAN> exit
Recovery Manager complete.
[oratest@q1ebsdb ~]$ rman auxiliary /
Recovery Manager: Release 11.2.0.3.0 - Production on Thu Jul 18 22:28:33 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to auxiliary database: TEST (not mounted)
RMAN> run{
SET NEWNAME FOR DATABASE TO '/prod/oracle/oradata/TEST/%b';
2> 3> SET NEWNAME FOR TEMPFILE 1 TO '/prod/oracle/oradata/TEST/%b';
DUPLICATE DATABASE TO 'TEST' BACKUP LOCATION '/u01/';
}4> 5>
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting Duplicate Db at 18-JUL-13
contents of Memory Script:
{
sql clone "alter system set db_name =
''PROD'' comment=
''Modified by RMAN duplicate'' scope=spfile";
sql clone "alter system set db_unique_name =
''TEST'' comment=
''Modified by RMAN duplicate'' scope=spfile";
shutdown clone immediate;
startup clone force nomount
restore clone primary controlfile from '/u01/CTRL_PROD_20130715_18';
alter clone database mount;
}
executing Memory Script
sql statement: alter system set db_name = ''PROD'' comment= ''Modified by RMAN duplicate'' scope=spfile
sql statement: alter system set db_unique_name = ''TEST'' comment= ''Modified by RMAN duplicate'' scope=spfile
Oracle instance shut down
Oracle instance started
Total System Global Area 839282688 bytes
Fixed Size 2233000 bytes
Variable Size 494931288 bytes
Database Buffers 335544320 bytes
Redo Buffers 6574080 bytes
Starting restore at 18-JUL-13
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=133 device type=DISK
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/prod/oracle/oradata/TEST/control01.ctl
Finished restore at 18-JUL-13
database mounted
released channel: ORA_AUX_DISK_1
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=133 device type=DISK
contents of Memory Script:
{
set until scn 14784494;
set newname for datafile 1 to
"/prod/oracle/oradata/TEST/system.259.817171877";
set newname for datafile 2 to
"/prod/oracle/oradata/TEST/sysaux.260.817171845";
set newname for datafile 3 to
"/prod/oracle/oradata/TEST/undotbs1.258.817171901";
set newname for datafile 4 to
"/prod/oracle/oradata/TEST/users.257.817171937";
set newname for datafile 5 to
"/prod/oracle/oradata/TEST/undotbs2.256.817172295";
restore
clone database
;
}
executing Memory Script
executing command: SET until clause
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting restore at 18-JUL-13
using channel ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /prod/oracle/oradata/TEST/system.259.817171877
channel ORA_AUX_DISK_1: restoring datafile 00002 to /prod/oracle/oradata/TEST/sysaux.260.817171845
channel ORA_AUX_DISK_1: restoring datafile 00003 to /prod/oracle/oradata/TEST/undotbs1.258.817171901
channel ORA_AUX_DISK_1: restoring datafile 00004 to /prod/oracle/oradata/TEST/users.257.817171937
channel ORA_AUX_DISK_1: restoring datafile 00005 to /prod/oracle/oradata/TEST/undotbs2.256.817172295
channel ORA_AUX_DISK_1: reading from backup piece /u01/FULL_PROD_20130715_15
channel ORA_AUX_DISK_1: piece handle=/u01/FULL_PROD_20130715_15 tag=FULL
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45
Finished restore at 18-JUL-13
contents of Memory Script:
{
switch clone datafile all;
}
executing Memory Script
datafile 1 switched to datafile copy
input datafile copy RECID=6 STAMP=821140212 file name=/prod/oracle/oradata/TEST/system.259.817171877
datafile 2 switched to datafile copy
input datafile copy RECID=7 STAMP=821140212 file name=/prod/oracle/oradata/TEST/sysaux.260.817171845
datafile 3 switched to datafile copy
input datafile copy RECID=8 STAMP=821140212 file name=/prod/oracle/oradata/TEST/undotbs1.258.817171901
datafile 4 switched to datafile copy
input datafile copy RECID=9 STAMP=821140212 file name=/prod/oracle/oradata/TEST/users.257.817171937
datafile 5 switched to datafile copy
input datafile copy RECID=10 STAMP=821140212 file name=/prod/oracle/oradata/TEST/undotbs2.256.817172295
contents of Memory Script:
{
set until scn 14784494;
recover
clone database
delete archivelog
;
}
executing Memory Script
executing command: SET until clause
Starting recover at 18-JUL-13
using channel ORA_AUX_DISK_1
starting media recovery
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=369
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=2 sequence=149
channel ORA_AUX_DISK_1: reading from backup piece /u01/ARCH_PROD_20130715_17
channel ORA_AUX_DISK_1: piece handle=/u01/ARCH_PROD_20130715_17 tag=ARCH
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:15
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_18/o1_mf_1_369_8yhz017z_.arc thread=1 sequence=369
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_18/o1_mf_2_149_8yhz01vo_.arc thread=2 sequence=149
channel clone_default: deleting archived log(s)
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_18/o1_mf_1_369_8yhz017z_.arc RECID=2 STAMP=821140226
channel clone_default: deleting archived log(s)
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_18/o1_mf_2_149_8yhz01vo_.arc RECID=1 STAMP=821140226
media recovery complete, elapsed time: 00:00:02
Finished recover at 18-JUL-13
Oracle instance started
Total System Global Area 839282688 bytes
Fixed Size 2233000 bytes
Variable Size 494931288 bytes
Database Buffers 335544320 bytes
Redo Buffers 6574080 bytes
contents of Memory Script:
{
sql clone "alter system set db_name =
''TEST'' comment=
''Reset to original value by RMAN'' scope=spfile";
sql clone "alter system reset db_unique_name scope=spfile";
shutdown clone immediate;
startup clone nomount;
}
executing Memory Script
sql statement: alter system set db_name = ''TEST'' comment= ''Reset to original value by RMAN'' scope=spfile
sql statement: alter system reset db_unique_name scope=spfile
Oracle instance shut down
connected to auxiliary database (not started)
Oracle instance started
Total System Global Area 839282688 bytes
Fixed Size 2233000 bytes
Variable Size 494931288 bytes
Database Buffers 335544320 bytes
Redo Buffers 6574080 bytes
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "TEST" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 SIZE 50 M ,
GROUP 2 SIZE 50 M ,
GROUP 3 SIZE 50 M ,
GROUP 4 SIZE 50 M
DATAFILE
'/prod/oracle/oradata/TEST/system.259.817171877'
CHARACTER SET AL32UTF8
sql statement: ALTER DATABASE ADD LOGFILE
INSTANCE 'i2'
GROUP 5 SIZE 50 M ,
GROUP 6 SIZE 50 M ,
GROUP 7 SIZE 50 M ,
GROUP 8 SIZE 50 M
contents of Memory Script:
{
set newname for tempfile 1 to
"/prod/oracle/oradata/TEST/temp.272.817172253";
switch clone tempfile all;
catalog clone datafilecopy "/prod/oracle/oradata/TEST/sysaux.260.817171845",
"/prod/oracle/oradata/TEST/undotbs1.258.817171901",
"/prod/oracle/oradata/TEST/users.257.817171937",
"/prod/oracle/oradata/TEST/undotbs2.256.817172295";
switch clone datafile all;
}
executing Memory Script
executing command: SET NEWNAME
renamed tempfile 1 to /prod/oracle/oradata/TEST/temp.272.817172253 in control file
cataloged datafile copy
datafile copy file name=/prod/oracle/oradata/TEST/sysaux.260.817171845 RECID=1 STAMP=821140247
cataloged datafile copy
datafile copy file name=/prod/oracle/oradata/TEST/undotbs1.258.817171901 RECID=2 STAMP=821140247
cataloged datafile copy
datafile copy file name=/prod/oracle/oradata/TEST/users.257.817171937 RECID=3 STAMP=821140247
cataloged datafile copy
datafile copy file name=/prod/oracle/oradata/TEST/undotbs2.256.817172295 RECID=4 STAMP=821140247
datafile 2 switched to datafile copy
input datafile copy RECID=1 STAMP=821140247 file name=/prod/oracle/oradata/TEST/sysaux.260.817171845
datafile 3 switched to datafile copy
input datafile copy RECID=2 STAMP=821140247 file name=/prod/oracle/oradata/TEST/undotbs1.258.817171901
datafile 4 switched to datafile copy
input datafile copy RECID=3 STAMP=821140247 file name=/prod/oracle/oradata/TEST/users.257.817171937
datafile 5 switched to datafile copy
input datafile copy RECID=4 STAMP=821140247 file name=/prod/oracle/oradata/TEST/undotbs2.256.817172295
contents of Memory Script:
{
Alter clone database open resetlogs;
}
executing Memory Script
database opened
Finished Duplicate Db at 18-JUL-13
################################# 注意事项 #################################
1,catalog start with '/u01/'; 目录必须为/u01/这种格式,/u01会出错。
2,创建控制文件RESET->SET,NORESETLOGS->RESETLOGS
3,DUPLICATE DATABASE TO 'TEST' BACKUP LOCATION '/u01/'; 目录必须为/u01/这种格式,/u01会出错。
迁移: ORALCE_HOME,DATABASE(pfile,controlfile,datafile,redolog,archivelog)
####################################### RAC Oracle Home迁移成Single Oracle Home #######################################
1, Oracle Home从RAC拷贝到Single主机,启动SQLPLUS出现ORA-29702
http://somireddy.wordpress.com/2011/10/08/ora-29702-error-occurred-in-cluster-group-service-operation/
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk rac_off
make -f ins_rdbms.mk ioracle
[oraprod@q1ebsdb lib]$ ll|grep ins_rdbms.mk
-rw-r--r-- 1 oraprod oinstall 40678 Sep 17 2011 ins_rdbms.mk
[oraprod@q1ebsdb lib]$ make -f ins_rdbms.mk rac_off
rm -f /prod/oracle/product/11.2.0/db_1/lib/libskgxp11.so
cp /prod/oracle/product/11.2.0/db_1/lib//libskgxpg.so /prod/oracle/product/11.2.0/db_1/lib/libskgxp11.so
rm -f /prod/oracle/product/11.2.0/db_1/lib/libskgxn2.so
cp /prod/oracle/product/11.2.0/db_1/lib//libskgxns.so \
/prod/oracle/product/11.2.0/db_1/lib/libskgxn2.so
/usr/bin/ar d /prod/oracle/product/11.2.0/db_1/rdbms/lib/libknlopt.a kcsm.o
/usr/bin/ar cr /prod/oracle/product/11.2.0/db_1/rdbms/lib/libknlopt.a /prod/oracle/product/11.2.0/db_1/rdbms/lib/ksnkcs.o
[oraprod@q1ebsdb lib]$ make -f ins_rdbms.mk ioracle
chmod 755 /prod/oracle/product/11.2.0/db_1/bin
- Linking Oracle
rm -f /prod/oracle/product/11.2.0/db_1/rdbms/lib/oracle
gcc -o /prod/oracle/product/11.2.0/db_1/rdbms/lib/oracle -m64 -L/prod/oracle/product/11.2.0/db_1/rdbms/lib/ -L/prod/oracle/product/11.2.0/db_1/lib/ -L/prod/oracle/product/11.2.0/db_1/lib/stubs/ -Wl,-E /prod/oracle/product/11.2.0/db_1/rdbms/lib/opimai.o /prod/oracle/product/11.2.0/db_1/rdbms/lib/ssoraed.o
/prod/oracle/product/11.2.0/db_1/rdbms/lib/ttcsoi.o -Wl,--whole-archive -lperfsrv11 -Wl,--no-whole-archive /prod/oracle/product/11.2.0/db_1/lib/nautab.o /prod/oracle/product/11.2.0/db_1/lib/naeet.o /prod/oracle/product/11.2.0/db_1/lib/naect.o /prod/oracle/product/11.2.0/db_1/lib/naedhs.o
/prod/oracle/product/11.2.0/db_1/rdbms/lib/config.o -lserver11 -lodm11 -lcell11 -lnnet11 -lskgxp11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lclient11 -lvsn11 -lcommon11
-lgeneric11 -lknlopt `if /usr/bin/ar tv /prod/oracle/product/11.2.0/db_1/rdbms/lib/libknlopt.a | grep xsyeolap.o > /dev/null 2>&1 ; then echo "-loraolap11" ; fi` -lslax11 -lpls11 -lrt -lplp11 -lserver11 -lclient11 -lvsn11 -lcommon11 -lgeneric11 `if [ -f
/prod/oracle/product/11.2.0/db_1/lib/libavserver11.a ] ; then echo "-lavserver11" ; else echo "-lavstub11"; fi` `if [ -f /prod/oracle/product/11.2.0/db_1/lib/libavclient11.a ] ; then echo "-lavclient11" ; fi` -lknlopt -lslax11 -lpls11 -lrt -lplp11 -ljavavm11
-lserver11 -lwwg `cat /prod/oracle/product/11.2.0/db_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /prod/oracle/product/11.2.0/db_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lmm -lsnls11 -lnls11
-lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lztkg11 `cat /prod/oracle/product/11.2.0/db_1/lib/ldflags` -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnro11 `cat /prod/oracle/product/11.2.0/db_1/lib/ldflags`
-lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 -lnnz11 -lzt11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `if /usr/bin/ar tv /prod/oracle/product/11.2.0/db_1/rdbms/lib/libknlopt.a
| grep "kxmnsd.o" > /dev/null 2>&1 ; then echo " " ; else echo "-lordsdo11"; fi` -L/prod/oracle/product/11.2.0/db_1/ctx/lib/ -lctxc11 -lctx11 -lzx11 -lgx11 -lctx11 -lzx11 -lgx11 -lordimt11 -lclsra11 -ldbcfg11 -lhasgen11 -lskgxn2 -lnnz11 -lzt11 -lxml11 -locr11
-locrb11 -locrutl11 -lhasgen11 -lskgxn2 -lnnz11 -lzt11 -lxml11 -loraz -llzopro -lorabz2 -lipp_z -lipp_bz2 -lippdcemerged -lippsemerged -lippdcmerged -lippsmerged -lippcore -lippcpemerged -lippcpmerged -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11
-lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lsnls11 -lunls11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 -lasmclnt11 -lcommon11 -lcore11
-laio `cat /prod/oracle/product/11.2.0/db_1/lib/sysliblist` -Wl,-rpath,/prod/oracle/product/11.2.0/db_1/lib -lm `cat /prod/oracle/product/11.2.0/db_1/lib/sysliblist` -ldl -lm -L/prod/oracle/product/11.2.0/db_1/lib
test ! -f /prod/oracle/product/11.2.0/db_1/bin/oracle ||\
mv -f /prod/oracle/product/11.2.0/db_1/bin/oracle /prod/oracle/product/11.2.0/db_1/bin/oracleO
mv /prod/oracle/product/11.2.0/db_1/rdbms/lib/oracle /prod/oracle/product/11.2.0/db_1/bin/oracle
chmod 6751 /prod/oracle/product/11.2.0/db_1/bin/oracle
####################################### RMAN恢复备份集权限不足 #######################################
2, 问题2:备份集权限不足。
RMAN> restore spfile from '/u01/FULL_PROD_20130715_16';
Starting restore at 15-JUL-13
using channel ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 07/15/2013 17:32:26
RMAN-06172: no AUTOBACKUP found or specified handle is not a valid copy or piece
这里是权限的问题,设置全部可读写,恢复成功。
[root@q1ebsdb u01]# chmod 777 ARCH_PROD_20130715_17 CTRL_PROD_20130715_18 FULL_PROD_20130715_1*
[oraprod@q1ebsdb u01]$ rman target /
Recovery Manager: Release 11.2.0.3.0 - Production on Mon Jul 15 17:33:10 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: PROD (not mounted)
RMAN> restore spfile from '/u01/FULL_PROD_20130715_16';
Starting restore at 15-JUL-13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=9 device type=DISK
channel ORA_DISK_1: restoring spfile from AUTOBACKUP /u01/FULL_PROD_20130715_16
channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete
Finished restore at 15-JUL-13
####################################### 备份数据库 #######################################
# 备份数据库。
backup full database tag 'FULL' format='/u01/FULL_%d_%T_%s';
backup archivelog all tag 'ARCH' format '/u01/ARCH_%d_%T_%s' delete all input;
backup current controlfile tag 'CTRL' format '/u01/CTRL_%d_%T_%s';
#######################################3种方式恢复数据库 RAC ASM ->Single non-ASM#######################################
1,相同DBNAME,相同DBID
2,不同DBNAME,相同DBID
3,不同DBNAME,不同DBID
####################################### 1 RMAN恢复相同DBNAME,相同DBID数据库 #######################################
# 恢复同名数据库,DBNAME和DBID都相同。
1,利用恢复出来的spfile生成pfile,并修改成initprod.ora,SQLPLUS启动数据库nomount状态。
2,恢复DB_NAME相同的数据库: RMAN恢复控制文件,转换恢复数据文件,恢复数据库,启用新的归档日志,再次恢复数据库。
startup nomount;
set dbid=228115897
restore controlfile from '/u01/CTRL_PROD_20130715_18';
alter database mount;
catalog start with '/u01';
run{
SET NEWNAME FOR DATABASE TO '/prod/oracle/oradata/prod/%b';
SET NEWNAME FOR TEMPFILE 1 TO '/prod/oracle/oradata/prod/%b';
RESTORE DATABASE;
SWITCH DATAFILE ALL;
SWITCH TEMPFILE ALL;
}
RECOVER DATABASE;
此时数据库会开始使用归档目录下的归档日志,重新catalog新产生并拷贝过来的归档文件。
catalog start with '/prod/oracle/fast_recovery_area/PROD/archivelog/2013_07_15';
RECOVER DATABASE;
alter database open resetlogs;
通过nis可以进行数据库改名。
####################################### 2 RMAN恢复不同DBNAME,但相同DBID数据库 #######################################
# RMAN恢复到不同数据库,DBNAME不同,但DBID相同。
准备2个pfile,initprod.ora和initTEST.ora,仅仅db_name不同而已。
export ORACLE_SID=prod
startup nomount pfile='/prod/oracle/product/11.2.0/db_1/dbs/initprod.ora';
restore controlfile from '/u01/CTRL_PROD_20130715_18';
startup mount;
catalog start with '/u01/';
run{
SET NEWNAME FOR DATABASE TO '/prod/oracle/oradata/TEST/%b';
SET NEWNAME FOR TEMPFILE 1 TO '/prod/oracle/oradata/TEST/%b';
RESTORE DATABASE;
SWITCH DATAFILE ALL;
SWITCH TEMPFILE ALL;
}
修改logfile,主要是为了更新控制文件的在线日志从ASM->non-ASM。
alter database rename file '+DATADG/prod/onlinelog/group_1.267.817172147' to '/prod/oracle/oradata/TEST/group_1.267.817172147';
alter database rename file '+FRADG/prod/onlinelog/group_1.260.817172149' to '/prod/oracle/oradata/TEST/group_1.260.817172149';
alter database rename file '+DATADG/prod/onlinelog/group_2.266.817172151' to '/prod/oracle/oradata/TEST/group_2.266.817172151';
alter database rename file '+FRADG/prod/onlinelog/group_2.259.817172151' to '/prod/oracle/oradata/TEST/group_2.259.817172151';
alter database rename file '+DATADG/prod/onlinelog/group_3.265.817172153' to '/prod/oracle/oradata/TEST/group_3.265.817172153';
alter database rename file '+FRADG/prod/onlinelog/group_3.258.817172153' to '/prod/oracle/oradata/TEST/group_3.258.817172153';
alter database rename file '+DATADG/prod/onlinelog/group_4.264.817172155' to '/prod/oracle/oradata/TEST/group_4.264.817172155';
alter database rename file '+FRADG/prod/onlinelog/group_4.257.817172155' to '/prod/oracle/oradata/TEST/group_4.257.817172155';
alter database rename file '+DATADG/prod/onlinelog/group_5.271.817172163' to '/prod/oracle/oradata/TEST/group_5.271.817172163';
alter database rename file '+FRADG/prod/onlinelog/group_5.264.817172163' to '/prod/oracle/oradata/TEST/group_5.264.817172163';
alter database rename file '+DATADG/prod/onlinelog/group_6.270.817172163' to '/prod/oracle/oradata/TEST/group_6.270.817172163';
alter database rename file '+FRADG/prod/onlinelog/group_6.263.817172163' to '/prod/oracle/oradata/TEST/group_6.263.817172163';
alter database rename file '+DATADG/prod/onlinelog/group_7.269.817172167' to '/prod/oracle/oradata/TEST/group_7.269.817172167';
alter database rename file '+FRADG/prod/onlinelog/group_7.262.817172167' to '/prod/oracle/oradata/TEST/group_7.262.817172167';
alter database rename file '+DATADG/prod/onlinelog/group_8.268.817172167' to '/prod/oracle/oradata/TEST/group_8.268.817172167';
alter database rename file '+FRADG/prod/onlinelog/group_8.261.817172167' to '/prod/oracle/oradata/TEST/group_8.261.817172167';
SQL> alter database backup controlfile to trace as '/u01/control_trace.txt';--生成DBNAME=PROD的控制文件脚本。
shutdown immediate;
export ORACLE_SID=TEST
startup nomount pfile='/prod/oracle/product/11.2.0/db_1/dbs/initTEST.ora'
修改/u01/control_trace.txt,PROD=>TEST,利用NORETLOGS那一段脚本创建control_trace.sql,重建TEST控制文件。
SQL> !rm -rf /prod/oracle/oradata/TEST/control01.ctl
SQL> @/u01/control_trace.sql
CREATE CONTROLFILE REUSE DATABASE "TEST" NORESETLOGS ARCHIVELOG
*
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-01161: database name PROD in file header does not match given name of TEST
ORA-01110: data file 1: '/prod/oracle/oradata/TEST/system.259.817171877'
修改control_trace.sql中RESET=>SET,注意这里是关键。
SQL> @/u01/control_trace.sql
CREATE CONTROLFILE SET DATABASE "TEST" NORESETLOGS ARCHIVELOG
*
ERROR at line 1:
ORA-01503: CREATE CONTROLFILE failed
ORA-01223: RESETLOGS must be specified to set a new database name
修改control_trace.sql中NORESETLOGS=>RESETLOGS,注意这里也是关键。
SQL> @/u01/control_trace.sql
Control file created.
注意:这一步控制文件已经重建完毕,如果源数据库有结构变化,这里需要手动增加数据文件。这一步也可以放在后面恢复时提醒数据文件缺失并OFFLINE时进行处理。
RMAN恢复
export ORACLE_SID=TEST
RMAN> recover database;
Starting recover at 22-JUL-13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=10 device type=DISK
starting media recovery
unable to find archived log
archived log thread=1 sequence=369
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 07/22/2013 14:36:21
RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 369 and starting SCN of 14781355
RMAN> catalog start with '/u01/'; --注意/u01/目录里只存放了恢复使用的备份集。
RMAN> recover database; --这里是进行归档日志的恢复,需要多尝试几次,它会利用所有的归档日志。
...
Executing: alter database datafile 6 offline
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_1_426_8yvs7zwz_.arc thread=1 sequence=426
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_2_179_8yvs7zw9_.arc thread=2 sequence=179
channel default: deleting archived log(s)
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_1_426_8yvs7zwz_.arc RECID=95 STAMP=821527552
archived log file name=/backup/thread_1_seq_427.364.821465293 thread=1 sequence=427
channel default: deleting archived log(s)
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_2_179_8yvs7zw9_.arc RECID=96 STAMP=821527552
archived log file name=/backup/thread_2_seq_180.368.821484023 thread=2 sequence=180
archived log file name=/backup/thread_1_seq_428.366.821473911 thread=1 sequence=428
archived log file name=/backup/thread_1_seq_429.361.821484021 thread=1 sequence=429
archived log file name=/backup/thread_1_seq_430.370.821491237 thread=1 sequence=430
archived log file name=/backup/thread_2_seq_181.369.821494839 thread=2 sequence=181
archived log file name=/backup/thread_1_seq_431.371.821502021 thread=1 sequence=431
unable to find archived log
archived log thread=2 sequence=182
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 07/23/2013 10:07:46
RMAN-06054: media recovery requesting unknown archived log for thread 2 with sequence 182 and starting SCN of 19195470
这里显示datafile 6没有,需要创建。
SQL> alter database create datafile 6 as '/prod/oracle/oradata/TEST/EBSDATA.ora';
SQL> alter database datafile 6 online;
RMAN> recover database; --此时会恢复数据文件6.
Starting recover at 23-JUL-13
using channel ORA_DISK_1
starting media recovery
archived log for thread 1 with sequence 427 is already on disk as file /backup/thread_1_seq_427.364.821465293
archived log for thread 1 with sequence 428 is already on disk as file /backup/thread_1_seq_428.366.821473911
archived log for thread 1 with sequence 429 is already on disk as file /backup/thread_1_seq_429.361.821484021
archived log for thread 1 with sequence 430 is already on disk as file /backup/thread_1_seq_430.370.821491237
archived log for thread 1 with sequence 431 is already on disk as file /backup/thread_1_seq_431.371.821502021
archived log for thread 1 with sequence 432 is already on disk as file /backup/thread_1_seq_432.373.821512819
archived log for thread 2 with sequence 180 is already on disk as file /backup/thread_2_seq_180.368.821484023
archived log for thread 2 with sequence 181 is already on disk as file /backup/thread_2_seq_181.369.821494839
channel ORA_DISK_1: starting archived log restore to default destination
channel ORA_DISK_1: restoring archived log
archived log thread=2 sequence=179
channel ORA_DISK_1: restoring archived log
archived log thread=1 sequence=426
channel ORA_DISK_1: reading from backup piece /backup/ARCH_PROD_20130722_20
channel ORA_DISK_1: piece handle=/backup/ARCH_PROD_20130722_20 tag=ARCH
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:07
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_1_426_8yvsh60n_.arc thread=1 sequence=426
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_2_179_8yvsh60j_.arc thread=2 sequence=179
channel default: deleting archived log(s)
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_1_426_8yvsh60n_.arc RECID=98 STAMP=821527782
archived log file name=/backup/thread_1_seq_427.364.821465293 thread=1 sequence=427
channel default: deleting archived log(s)
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_2_179_8yvsh60j_.arc RECID=99 STAMP=821527782
archived log file name=/backup/thread_2_seq_180.368.821484023 thread=2 sequence=180
archived log file name=/backup/thread_1_seq_428.366.821473911 thread=1 sequence=428
archived log file name=/backup/thread_1_seq_429.361.821484021 thread=1 sequence=429
archived log file name=/backup/thread_1_seq_430.370.821491237 thread=1 sequence=430
archived log file name=/backup/thread_2_seq_181.369.821494839 thread=2 sequence=181
archived log file name=/backup/thread_1_seq_431.371.821502021 thread=1 sequence=431
unable to find archived log
archived log thread=2 sequence=182
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 07/23/2013 10:09:45
RMAN-06054: media recovery requesting unknown archived log for thread 2 with sequence 182 and starting SCN of 19195470
RMAN> recover database; --最后一次恢复,会提示需要在线日志thread 2 sequence 182。
RMAN恢复会到最后一个归档日志应用完毕,接下来在SLQPLUS中恢复应用在线日志。
SQLPLUS恢复在线日志,下面的恢复正常完成。
SQL> recover database using backup controlfile;
ORA-00279: change 19195470 generated at 07/23/2013 01:00:39 needed for thread 2
ORA-00289: suggestion :
/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_2_182_%u_.arc
ORA-00280: change 19195470 for thread 2 is in sequence #182
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/backup/group_6.263.817172163
ORA-00279: change 19195470 generated at 07/23/2013 00:00:36 needed for thread 1
ORA-00289: suggestion : /backup/thread_1_seq_431.371.821502021
ORA-00280: change 19195470 for thread 1 is in sequence #431
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/backup/thread_1_seq_431.371.821502021
ORA-00279: change 19242558 generated at 07/23/2013 03:00:21 needed for thread 1
ORA-00289: suggestion : /backup/thread_1_seq_432.373.821512819
ORA-00280: change 19242558 for thread 1 is in sequence #432
ORA-00278: log file '/backup/thread_1_seq_431.371.821502021' no longer needed
for this recovery
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/backup/thread_1_seq_432.373.821512819
ORA-00279: change 19312913 generated at 07/23/2013 06:00:17 needed for thread 1
ORA-00289: suggestion :
/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_23/o1_mf_1_433_%u_.arc
ORA-00280: change 19312913 for thread 1 is in sequence #433
ORA-00278: log file '/backup/thread_1_seq_432.373.821512819' no longer needed
for this recovery
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/backup/group_2.259.817172151
Log applied.
Media recovery complete.
SQL> alter database open;
SQL> alter database open resetlogs;
Database altered.
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/prod/oracle/oradata/TEST/TEMP.ora' size 16M autoextend on;
SQL> select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
UNDOTBS2
EBSDATA
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/prod/oracle/oradata/TEST/undotbs2.256.817172295
/prod/oracle/oradata/TEST/users.257.817171937
/prod/oracle/oradata/TEST/undotbs1.258.817171901
/prod/oracle/oradata/TEST/sysaux.260.817171845
/prod/oracle/oradata/TEST/system.259.817171877
/prod/oracle/oradata/TEST/EBSDATA.ora
SQL> conn jeron_peng/amaxgs
ID NAME
---------- ------------------------------------------------------------
1 11.1.0.7.0
2 11.2.0.3.0
6 2013-07-15 23:42:00
4 11.2.0.3.0Jul152013
5 CompleteBackup
3 11.2.0.3.0CPUApr2013
7 2013-07-22 16:43:00
最后产生的数据已经恢复出来。
注意一点:这里其实数据库结构已经发生了变化,最新的控制文件已经创建了数据文件6,而恢复的控制文件是没有的,恢复时会提示数据文件OFFLINE,我们只需在后面创建并ONLINE。
SQL> alter database create datafile 6 as '/prod/oracle/oradata/TEST/EBSDATA.ora';
SQL> alter datafile 6 online;
#################################### 3 RMAN DUPLICATE恢复不同DBNAME,不同DBID数据库 #######################################
# DUPLICATE恢复到不同名数据库。
Duplicate prod to TEST from backupset without target and catelog.
创建新库需要的audit目录,数据文件目录,trace文件目录,闪回恢复目录等。
创建密码文件,保持和源库完全一样。orapwd file=orapwTEST password=amaxgs
创建pfile,initTEST.ora,启动数据库,并创建spfile,重启数据库从spfile启动。
利用下面的Duplicate,注意BACKUP LOCATION路径组后有“/”,必须为‘/u01/’,否则‘/u01’会报错,找不到SPFILE或者CONTROLFILE等。
run{
SET NEWNAME FOR DATABASE TO '/prod/oracle/oradata/TEST/%b';
SET NEWNAME FOR TEMPFILE 1 TO '/prod/oracle/oradata/TEST/%b';
DUPLICATE DATABASE TO 'TEST' BACKUP LOCATION '/u01/';
}
[oratest@q1ebsdb ~]$ rman auxiliary /
Recovery Manager: Release 11.2.0.3.0 - Production on Thu Jul 18 22:27:00 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to auxiliary database: TEST (not mounted)
RMAN> exit
Recovery Manager complete.
[oratest@q1ebsdb ~]$ rman auxiliary /
Recovery Manager: Release 11.2.0.3.0 - Production on Thu Jul 18 22:28:33 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to auxiliary database: TEST (not mounted)
RMAN> run{
SET NEWNAME FOR DATABASE TO '/prod/oracle/oradata/TEST/%b';
2> 3> SET NEWNAME FOR TEMPFILE 1 TO '/prod/oracle/oradata/TEST/%b';
DUPLICATE DATABASE TO 'TEST' BACKUP LOCATION '/u01/';
}4> 5>
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting Duplicate Db at 18-JUL-13
contents of Memory Script:
{
sql clone "alter system set db_name =
''PROD'' comment=
''Modified by RMAN duplicate'' scope=spfile";
sql clone "alter system set db_unique_name =
''TEST'' comment=
''Modified by RMAN duplicate'' scope=spfile";
shutdown clone immediate;
startup clone force nomount
restore clone primary controlfile from '/u01/CTRL_PROD_20130715_18';
alter clone database mount;
}
executing Memory Script
sql statement: alter system set db_name = ''PROD'' comment= ''Modified by RMAN duplicate'' scope=spfile
sql statement: alter system set db_unique_name = ''TEST'' comment= ''Modified by RMAN duplicate'' scope=spfile
Oracle instance shut down
Oracle instance started
Total System Global Area 839282688 bytes
Fixed Size 2233000 bytes
Variable Size 494931288 bytes
Database Buffers 335544320 bytes
Redo Buffers 6574080 bytes
Starting restore at 18-JUL-13
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=133 device type=DISK
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
output file name=/prod/oracle/oradata/TEST/control01.ctl
Finished restore at 18-JUL-13
database mounted
released channel: ORA_AUX_DISK_1
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=133 device type=DISK
contents of Memory Script:
{
set until scn 14784494;
set newname for datafile 1 to
"/prod/oracle/oradata/TEST/system.259.817171877";
set newname for datafile 2 to
"/prod/oracle/oradata/TEST/sysaux.260.817171845";
set newname for datafile 3 to
"/prod/oracle/oradata/TEST/undotbs1.258.817171901";
set newname for datafile 4 to
"/prod/oracle/oradata/TEST/users.257.817171937";
set newname for datafile 5 to
"/prod/oracle/oradata/TEST/undotbs2.256.817172295";
restore
clone database
;
}
executing Memory Script
executing command: SET until clause
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting restore at 18-JUL-13
using channel ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /prod/oracle/oradata/TEST/system.259.817171877
channel ORA_AUX_DISK_1: restoring datafile 00002 to /prod/oracle/oradata/TEST/sysaux.260.817171845
channel ORA_AUX_DISK_1: restoring datafile 00003 to /prod/oracle/oradata/TEST/undotbs1.258.817171901
channel ORA_AUX_DISK_1: restoring datafile 00004 to /prod/oracle/oradata/TEST/users.257.817171937
channel ORA_AUX_DISK_1: restoring datafile 00005 to /prod/oracle/oradata/TEST/undotbs2.256.817172295
channel ORA_AUX_DISK_1: reading from backup piece /u01/FULL_PROD_20130715_15
channel ORA_AUX_DISK_1: piece handle=/u01/FULL_PROD_20130715_15 tag=FULL
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45
Finished restore at 18-JUL-13
contents of Memory Script:
{
switch clone datafile all;
}
executing Memory Script
datafile 1 switched to datafile copy
input datafile copy RECID=6 STAMP=821140212 file name=/prod/oracle/oradata/TEST/system.259.817171877
datafile 2 switched to datafile copy
input datafile copy RECID=7 STAMP=821140212 file name=/prod/oracle/oradata/TEST/sysaux.260.817171845
datafile 3 switched to datafile copy
input datafile copy RECID=8 STAMP=821140212 file name=/prod/oracle/oradata/TEST/undotbs1.258.817171901
datafile 4 switched to datafile copy
input datafile copy RECID=9 STAMP=821140212 file name=/prod/oracle/oradata/TEST/users.257.817171937
datafile 5 switched to datafile copy
input datafile copy RECID=10 STAMP=821140212 file name=/prod/oracle/oradata/TEST/undotbs2.256.817172295
contents of Memory Script:
{
set until scn 14784494;
recover
clone database
delete archivelog
;
}
executing Memory Script
executing command: SET until clause
Starting recover at 18-JUL-13
using channel ORA_AUX_DISK_1
starting media recovery
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=369
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=2 sequence=149
channel ORA_AUX_DISK_1: reading from backup piece /u01/ARCH_PROD_20130715_17
channel ORA_AUX_DISK_1: piece handle=/u01/ARCH_PROD_20130715_17 tag=ARCH
channel ORA_AUX_DISK_1: restored backup piece 1
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:15
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_18/o1_mf_1_369_8yhz017z_.arc thread=1 sequence=369
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_18/o1_mf_2_149_8yhz01vo_.arc thread=2 sequence=149
channel clone_default: deleting archived log(s)
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_18/o1_mf_1_369_8yhz017z_.arc RECID=2 STAMP=821140226
channel clone_default: deleting archived log(s)
archived log file name=/prod/oracle/fast_recovery_area/TEST/archivelog/2013_07_18/o1_mf_2_149_8yhz01vo_.arc RECID=1 STAMP=821140226
media recovery complete, elapsed time: 00:00:02
Finished recover at 18-JUL-13
Oracle instance started
Total System Global Area 839282688 bytes
Fixed Size 2233000 bytes
Variable Size 494931288 bytes
Database Buffers 335544320 bytes
Redo Buffers 6574080 bytes
contents of Memory Script:
{
sql clone "alter system set db_name =
''TEST'' comment=
''Reset to original value by RMAN'' scope=spfile";
sql clone "alter system reset db_unique_name scope=spfile";
shutdown clone immediate;
startup clone nomount;
}
executing Memory Script
sql statement: alter system set db_name = ''TEST'' comment= ''Reset to original value by RMAN'' scope=spfile
sql statement: alter system reset db_unique_name scope=spfile
Oracle instance shut down
connected to auxiliary database (not started)
Oracle instance started
Total System Global Area 839282688 bytes
Fixed Size 2233000 bytes
Variable Size 494931288 bytes
Database Buffers 335544320 bytes
Redo Buffers 6574080 bytes
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "TEST" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 SIZE 50 M ,
GROUP 2 SIZE 50 M ,
GROUP 3 SIZE 50 M ,
GROUP 4 SIZE 50 M
DATAFILE
'/prod/oracle/oradata/TEST/system.259.817171877'
CHARACTER SET AL32UTF8
sql statement: ALTER DATABASE ADD LOGFILE
INSTANCE 'i2'
GROUP 5 SIZE 50 M ,
GROUP 6 SIZE 50 M ,
GROUP 7 SIZE 50 M ,
GROUP 8 SIZE 50 M
contents of Memory Script:
{
set newname for tempfile 1 to
"/prod/oracle/oradata/TEST/temp.272.817172253";
switch clone tempfile all;
catalog clone datafilecopy "/prod/oracle/oradata/TEST/sysaux.260.817171845",
"/prod/oracle/oradata/TEST/undotbs1.258.817171901",
"/prod/oracle/oradata/TEST/users.257.817171937",
"/prod/oracle/oradata/TEST/undotbs2.256.817172295";
switch clone datafile all;
}
executing Memory Script
executing command: SET NEWNAME
renamed tempfile 1 to /prod/oracle/oradata/TEST/temp.272.817172253 in control file
cataloged datafile copy
datafile copy file name=/prod/oracle/oradata/TEST/sysaux.260.817171845 RECID=1 STAMP=821140247
cataloged datafile copy
datafile copy file name=/prod/oracle/oradata/TEST/undotbs1.258.817171901 RECID=2 STAMP=821140247
cataloged datafile copy
datafile copy file name=/prod/oracle/oradata/TEST/users.257.817171937 RECID=3 STAMP=821140247
cataloged datafile copy
datafile copy file name=/prod/oracle/oradata/TEST/undotbs2.256.817172295 RECID=4 STAMP=821140247
datafile 2 switched to datafile copy
input datafile copy RECID=1 STAMP=821140247 file name=/prod/oracle/oradata/TEST/sysaux.260.817171845
datafile 3 switched to datafile copy
input datafile copy RECID=2 STAMP=821140247 file name=/prod/oracle/oradata/TEST/undotbs1.258.817171901
datafile 4 switched to datafile copy
input datafile copy RECID=3 STAMP=821140247 file name=/prod/oracle/oradata/TEST/users.257.817171937
datafile 5 switched to datafile copy
input datafile copy RECID=4 STAMP=821140247 file name=/prod/oracle/oradata/TEST/undotbs2.256.817172295
contents of Memory Script:
{
Alter clone database open resetlogs;
}
executing Memory Script
database opened
Finished Duplicate Db at 18-JUL-13
################################# 注意事项 #################################
1,catalog start with '/u01/'; 目录必须为/u01/这种格式,/u01会出错。
2,创建控制文件RESET->SET,NORESETLOGS->RESETLOGS
3,DUPLICATE DATABASE TO 'TEST' BACKUP LOCATION '/u01/'; 目录必须为/u01/这种格式,/u01会出错。
相关文章推荐
- Oracle RMAN Migrate from Single none-ASM to Single ASM
- How To Upgrade ASM from 10.2 to 11.1 (single Instance configuration -Non-RAC)
- How To Upgrade ASM from 10.2 to 11.1 (single Instance configuration -Non-RAC)
- How To Upgrade ASM from 10.2 to 11.1 (single Instance configuration -Non-RAC)
- How To Upgrade ASM from 10.2 to 11.1 (single Instance configuration -Non-RAC)
- Oracle RMAN Migrate Database to RAC from Netbackup Tape by LAN-FREE
- How To Upgrade ASM from 10.2 to 11.1 (single Instance configuration -Non-RAC)
- How To Upgrade ASM from 10.2 to 11.1 (single Instance configuration -Non-RAC)
- Oracle DB Upgrade & Migrate from Single 11.1.0.7 to Oracle 11.2.0.3 RAC by rconfig
- How To Upgrade ASM from 10.2 to 11.1 (single Instance configuration -Non-RAC)
- How To Upgrade ASM from 10.2 to 11.1 (single Instance configuration -Non-RAC)
- How To Upgrade ASM from 10.2 to 11.1 (single Instance configuration -Non-RAC)
- Migrate database from single instance to Oracle RAC
- Steps To Migrate-Move a Database From Non-ASM to ASM And Vice-Versa
- Steps To Migrate-Move a Database From Non-ASM to ASM And Vice-Versa
- Steps To Migrate-Move a Database From Non-ASM to ASM And Vice-Versa
- RMAN Duplicate Database From RAC ASM To RAC ASM [ID 461479.1]
- Steps To Migrate-Move a Database From Non-ASM to ASM And Vice-Versa
- Steps To Migrate-Move a Database From Non-ASM to ASM And Vice-Versa
- Steps To Migrate-Move a Database From Non-ASM to ASM And Vice-Versa