RMAN duplicate On Windows7
資料庫版本:Oracle Database 10g Enterprise Edition Release 10.2.0.3.0
作業系統:win7
ORACLE_BASE=D:ORACLE
ORACLE_HOME=D:oracleproduct10.2.0db10g
前提:Oracle 10g軟體已經安裝完畢,已經具備一個主庫;
1、設定環境變數
C:>set oracle_sid=dupdb
2、建立目錄
mkdir D:oracleadmindupdbadump
mkdir D:oracleadmindupdbcdump
mkdir D:oracleadmindupdbbdump
mkdir D:oracleadmindupdbudump
3、在windows 透過oradim建立Oracle例項
C:>oradim -new -sid dupdb
例項已建立。
[@more@]3、建立密碼檔案
C:>orapwd file=D:oracleproduct10.2.0db10gdatabasePWDdupdb.ora password=dupdb entries=5
4、透過文字編輯器在D:oracleproduct10.2.0db10gdatabase目錄下建立名為initdupdb.ora的初始化引數檔案,具體內容如下:
*.db_name='dupdb'
*.control_files='D:oracleoradatadupdbcontrol01.ctl','D:oracleoradatadupdbcontrol02.ctl','D:oracleoradatadupdbcontrol03.ctl'
*.user_dump_dest='D:oracleadmindupdbudump'
*.audit_file_dest='D:oracleadmindupdbadump'
*.background_dump_dest='D:oracleadmindupdbbdump'
*.core_dump_dest='D:oracleadmindupdbcdump'
*.pga_aggregate_target=149946368
*.sga_target=450887680
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
db_file_name_convert=('D:oracleoradatakuqlan','D:oracleoradatadupdb')
log_file_name_convert=('D:oracleoradatakuqlan','D:oracleoradatadupdb')
5、啟動例項到nomount到狀態,並形成spfile(CREATE SPFILE FROM PFILE=auxiliary_instance_pfile;)
C:>set oracle_sid=dupdb
C:>sqlplus / as sysdba
SQL> create spfile from pfile;
SQL> shutdown immediate;
SQL> startup nomount;
SQL>
6、網路配置,實現兩個例項的可達性
cd D:oracleproduct10.2.0db10gnetworkADMIN>
編輯listener.ora和tnsname.ora
listener.ora
# listener.ora Network Configuration File: D:oracleproduct10.2.0db10gNETWORKADMINlistener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:oracleproduct10.2.0db10g)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = kuqlan)
(ORACLE_HOME = D:oracleproduct10.2.0db10g)
(SID_NAME = kuqlan)
)
(SID_DESC =
(GLOBAL_DBNAME = dupdb)
(ORACLE_HOME = D:oracleproduct10.2.0db10g)
(SID_NAME = dupdb)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = XJNT-OSC-YSP)(PORT = 1521))
)
--tnsnames.ora檔案內容:
kuqlan =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = xjnt-osc-ysp)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = kuqlan)
)
)
dupdb =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xjnt-osc-ysp)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = dupdb)
)
)
驗證網路配置是否正確:
C:UsersAdministrator>lsnrctl stop
C:UsersAdministrator>lsnrctl start
C:UsersAdministrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.3.0 - Production on 星期二 5月 2
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
SQL> conn as sysdba;
已連線。
SQL> conn as sysdba;
已連線到空閒例程。
C:UsersAdministrator>rman target auxiliary
恢復管理器: Release 10.2.0.3.0 - Production on 星期二 5月 22 11:15:33 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已連線到目標資料庫 (未啟動)
已連線到輔助資料庫: DUPDB (未裝載)
RMAN>
7、將主庫(target database)改為archive log 模式
C:>set oracle_sid=kuqlan
C:>sqlplus / as sysdba
SQL> startup mount
SQL> alter database archivelog;
SQL>
8、備份主庫(target database)
C:UsersAdministrator>rman target /
RMAN> backup database
2> format 'F:rmanfulldb_%U'
3> plus archivelog format 'F:rmanarch_%d_%T_%s';
RMAN>
9. 備份和歸檔日誌的傳送,因在同一臺機子,因此不用傳送。
10. 透過RMAN對主庫進行dupdblicate
C:UsersAdministrator>rman target auxiliary
恢復管理器: Release 10.2.0.3.0 - Production on 星期二 5月 22 11:15:33 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已連線到目標資料庫 (未啟動)
已連線到輔助資料庫: DUPDB (未裝載)
RMAN>run
{
ALLOCATE AUXILIARY CHANNEL aux1 DEVICE TYPE DISK;
DUPLICATE TARGET DATABASE TO dupdb
LOGFILE GROUP 1 ('D:oracleoradatadupdbREDO1.log') SIZE 5M,
GROUP 2 ('D:oracleoradatadupdbREDO2.log') SIZE 5M,
GROUP 3 ('D:oracleoradatadupdbREDO3.log') SIZE 5M
NOFILENAMECHECK;
}
duplicate過程中出現的錯誤及參考命令:
錯誤1:
啟動 restore 於 23-5月 -12
通道 aux1: 正在開始恢復資料檔案備份集
通道 aux1: 正在指定從備份集恢復的資料檔案
正將資料檔案00001恢復到D:ORACLEORADATADUPDBSYSTEM01.DBF
正將資料檔案00002恢復到D:ORACLEORADATADUPDBUNDOTBS01.DBF
正將資料檔案00003恢復到D:ORACLEORADATADUPDBSYSAUX01.DBF
正將資料檔案00004恢復到D:ORACLEPRODUCT10.2.0DB10GRDBMSADMINUSERS01.DBF
通道 aux1: 正在讀取備份段 F:RMANFULLDB_0PNBMQV8_1_1
故障轉移到上一個備份
RMAN>
因主庫為手工建立的,在建立使用者表空間是不小心指錯位置,而這個位置跟初始化引數檔案的db_file_name_convert引數內容不一致導致的;
處理方法為刪除users表空間後重建到正確的目錄,然後對主庫重新進行全備份,然後再進行duplicate,users表空間重建過程如下:
SQL> conn as sysdba
已連線。
SQL> drop tablespace users including contents and datafiles;
表空間已刪除。
SQL> CREATE TABLESPACE users LOGGING
2 DATAFILE 'D:oracleoradatakuqlanusers01.dbf'
3 SIZE 25M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED
4 EXTENT MANAGEMENT LOCAL;
表空間已建立。
錯誤2:
釋放的通道: aux1
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: Duplicate Db 命令 (在 05/23/2012 12:18:43 上) 失敗
RMAN-06136: 來自輔助資料庫的 ORACLE 錯誤: ORA-01503: CREATE CONTROLFILE 失敗
ORA-01130: 資料庫檔案版本 10.2.0.3.0 與 ORACLE 版本 10.2.0.0.0 不相容
ORA-01110: 資料檔案 1: 'D:ORACLEORADATADUPDBSYSTEM01.DBF'
是因為被duplicate資料庫的初始化檔案裡的沒有*.compatible='10.2.0.3.0'引數,而主庫上有這個引數導致的。
錯誤3:
SQL> create spfile from pfile;
create spfile from pfile
*
第 1 行出現錯誤:
ORA-00600: internal error code, arguments: [kspsetpao1], [462], [415], [*],
[user_dump_dest], [27], [], []
檢視原因發現引數檔案的core_dump_dest='D:oracleadmindupdbcdump' 少了一個單引號
參考的命令:
刪除過期時效的備份片
crosscheck backup
list expired backup
delete expired backup;
刪除無效arc
crossecheck archivelog all
list expired archivelog all
delete expired archivelog all
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18841027/viewspace-1058322/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RMAN duplicate databaseDatabase
- 通過rman duplicate database!Database
- rman duplicate操作手冊
- RMAN duplicate database到新主機Database
- Oracle rman duplicate遷移測試Oracle
- RMAN DUPLICATE建立DataGuard物理備庫
- rman duplicate搭建第二個 dg
- 使用RMAN建立Duplicate資料庫資料庫
- rman duplicate clone庫的尷尬
- 【轉】RMAN建立duplicate資料庫資料庫
- 【RMAN】使用RMAN duplicate複製同機資料庫資料庫
- DG rman duplicate 複製庫錯誤
- Oracle 11g Rman Active database duplicateOracleDatabase
- RMAN duplicate 建立standby RAC資料庫資料庫
- RMAN學習筆記_ Duplicate建立DataGuard筆記
- RMAN學習筆記_ Duplicate重做DataGuard筆記
- RMAN DUPLICATE/RESTORE/RECOVER 混合平臺支援REST
- 【RMAN】使用duplicate本地複製資料庫資料庫
- duplicate rman複製資料庫技術資料庫
- Oracle11g RMAN Duplicate from Active DatabaseOracleDatabase
- Duplicating Database using RMAN duplicate commandDatabase
- oracle實驗記錄Rman duplicate database(1)OracleDatabase
- oracle實驗記錄Rman duplicate database 2OracleDatabase
- rman duplicate target database RMAN-03002 RMAN-03015 RMAN-06136Database
- RMAN duplicate from active database 複製資料庫Database資料庫
- RMAN 'Duplicate Database' Feature in 11G [ID 452868.1]Database
- RMAN duplicate必須指定DBID的場景
- Rman duplicate資料庫複製(單系統)資料庫
- 通過RMAN Duplicate建立Oracle物理standby備庫Oracle
- 使用rman的命令duplicate複製資料庫資料庫
- 【RMAN】使用RMAN duplicate複製同機資料庫遇到的問題資料庫
- 用RMAN執行DUPLICATE資料庫操作——RMAN使用者手冊資料庫
- Performing duplicate database with ASM/OMF/RMAN (Doc ID 340848.1)ORMDatabaseASM
- 通過 rman duplicate 配置Oracle 11g Active DataguardOracle
- RMAN Duplicate Database From RAC ASM To RAC ASM [ID 461479.1]DatabaseASM
- RAC 例項 遷移到 單例項 -- 使用RMAN Duplicate單例
- Duplicate Database from ASM to Non- ASM Database Using RMANDatabaseASM
- To use Rman to duplicate database be careful of db_file_name_convertDatabase