Duplicating a Database 筆記
用途:
1 測試備份與恢復的過程
2 如果誤刪除一個表,可以複製一個庫,然後在複製庫上做恢復,恢復後的正確資料匯入到生產庫上。
[@more@]經過多次失敗,最後完成。結果記錄如下:
系統結構描述
目標庫:
主機 host1 aix5.3
IP: 10.10.10.72
SID: millet
net: trgt
引數檔案 initmillet.ora spfilemillet.ora
資料檔案主目錄 /netapp/oradata/millet/
跟蹤檔案目錄 /opt/oracle/admin/millet/bdump cdump udump
RMAN備份檔案目錄 /ww
複製庫:
主機 host2 aix5.3
IP: 10.10.10.34
db_name: dupdb
net: aux
引數檔案initaux2.ora spfileaux2.ora
資料檔案主目錄 /u01/oradata/dupdb
跟蹤檔案目錄 /u01/admin/dupdb/bdump cdump udump
備份RMAN檔案目錄 /ww (新建了一個目錄,與目標庫保持一致,並將目標庫的RMAN備份檔案FTP過來)
大致操作過程
1 構建複製庫的環境
1.1 建立目錄
在複製庫上建立必需的目錄,如
mkdir /u01/oradata/dupdb
mkdir -p /u01/admin/dupdb/bdump
mkdir -p /u01/admin/dupdb/cdump
mkdir -p /u01/admin/dupdb/udump
1.2 建立口令檔案
在複製庫上建dupdb 的口令檔案 如
orapwd file=/u01/product/9.2.0/dbs/orapwaux2 password=oracle
1.3 建立init.ora
可以從trgt庫上覆制過來,然後加上以下內容,並修改所有涉及到目錄變動的地方;
DB_NAME=dupdb
CONTROL_FILES=/u01/oradata/dupdb/control01.ctl
DB_FILE_NAME_CONVERT=('/netapp/oradata/millet/','/u01/oradata/dupdb/')
LOG_FILE_NAME_CONVERT=('/netapp/oradata/millet/','/u01/oradata/dupdb/')
這兩個convert加上也沒有用,還是需要set newname !
修改以_dest為字尾的引數值到新的路徑
修改instance_name=dupdb
兩個引數檔案比較,只顯示不一樣的地方
trgt原來的引數檔案
*.background_dump_dest='/opt/oracle/admin/millet/bdump'
*.control_files='/netapp/oradata/millet/control01.ctl','/netapp/oradata/millet/control02.ctl','/netapp/oradata/millet/control03.ctl'
*.core_dump_dest='/opt/oracle/admin/millet/cdump'
*.db_name='millet'
*.instance_name='millet'
*.user_dump_dest='/opt/oracle/admin/millet/udump'
新建的複製庫上的引數檔案
db_name=dupdb
control_files=/u01/oradata/dupdb/control01.ctl
db_file_name_convert=('/netapp/oradata/millet/','/u01/oradata/dupdb/')
log_file_name_convert=('/netapp/oradata/millet/','/u01/oradata/dupdb/')
*.background_dump_dest='/u01/admin/dupdb/bdump'
*.core_dump_dest='/u01/admin/dupdb/cdump'
*.instance_name='dupdb'
*.user_dump_dest='/u01/admin/dupdb/udump'
1.4 修改listener.ora and tnsnames.ora
我打算在主機1(TRGT)將資料庫複製到主機2上,因此,需要在主機1上連線AUX2服務;
在主機2上(AUX2),修改listener.ora檔案,新增aux2,以便在主機1上能夠訪問。
(SID_DESC =
(GLOBAL_DBNAME = aux2)
(ORACLE_HOME = /u01/product/9.2.0)
(SID_NAME = aux2)
)
在主機1上(TRGT),修改tnsnames.ora檔案,新增對複製庫的訪問,名稱aux,
用在rman TARGET SYS/oracle@trgt AUXILIARY SYS/oracle@aux這個地方
在主機2上(AUX2),同樣修改tnsnames.ora,內容如下
trgt =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.72)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = millet)
)
)
aux =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.34)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = aux2)
)
)
1.4 啟動複製庫到nomount
在哪個機器上都可以啟,過程略
2 TRGT庫的準備工作
2.1 檢查TRGT庫是否有完整的RMAN備份集
如果沒有,全備一把,過程略
但必需讓AUX庫的主機,也能訪問這個備份集
我是FTP過去,在AUX庫上建了個相同目錄,放進去,等候RMAN使用。
2.2 生成set newname語句
select 'set newname for datafile '||file#||' to '''||name|| ''' ;' from v$datafile;
3 連線trgt和aux庫,準備複製資料庫
在目標庫上啟動RMAN(在複製庫上應該一樣,沒試)
run {
set newname for datafile 1 to '/u01/oradata/dupdb/system01.dbf' ;
set newname for datafile 2 to '/u01/oradata/dupdb/undotbs01.dbf' ;
set newname for datafile 3 to '/u01/oradata/dupdb/drsys01.dbf' ;
set newname for datafile 4 to '/u01/oradata/dupdb/example01.dbf' ;
set newname for datafile 5 to '/u01/oradata/dupdb/indx01.dbf' ;
set newname for datafile 6 to '/u01/oradata/dupdb/tools01.dbf' ;
set newname for datafile 7 to '/u01/oradata/dupdb/users01.dbf' ;
set newname for datafile 8 to '/u01/oradata/dupdb/fpgl_data01.dbf' ;
set newname for datafile 9 to '/u01/oradata/dupdb/fpgl_ind01.dbf' ;
set newname for datafile 10 to '/u01/oradata/dupdb/gs12366_data01.dbf' ;
set newname for datafile 11 to '/u01/oradata/dupdb/hlwsb_data01.dbf' ;
set newname for datafile 12 to '/u01/oradata/dupdb/ncp_data01.dbf' ;
set newname for datafile 13 to '/u01/oradata/dupdb/ncp_ind01.dbf' ;
set newname for datafile 14 to '/u01/oradata/dupdb/tbs_dat_par_0101.dbf' ;
set newname for datafile 15 to '/u01/oradata/dupdb/tbs_dat_par_0201.dbf' ;
set newname for datafile 16 to '/u01/oradata/dupdb/tbs_dat_par_0301.dbf' ;
set newname for datafile 17 to '/u01/oradata/dupdb/tbs_dat_par_0401.dbf' ;
set newname for datafile 18 to '/u01/oradata/dupdb/xtjg_data01.dbf' ;
set newname for datafile 19 to '/u01/oradata/dupdb/qxgl01.dbf' ;
set newname for datafile 20 to '/u01/oradata/dupdb/xz_ztry_hist01.dbf' ;
DUPLICATE TARGET DATABASE TO dupdb nofilenamecheck
LOGFILE group 1 ('/u01/oradata/dupdb/redo01.log') size 200k,
GROUP 2 ('/u01/oradata/dupdb/redo02.log') SIZE 200K,
GROUP 3 ('/u01/oradata/dupdb/redo03.log') SIZE 200K;
}
到此為止,已經在2號機上,複製了一個新資料庫,資料庫名稱為 dupdb 並且更改了資料檔案路徑.
小結:看文件有點暈,因為文件上沒有畫出結構圖,看別人的總結更暈,還是自己動手做上十來次,遇到十幾個錯誤之後,才明白這個過程的來龍去脈。心裡才算踏實。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/271063/viewspace-1016344/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Duplicating an Active DatabaseDatabase
- Duplicating Database using RMAN duplicate commandDatabase
- Duplicating a Database Without Recovery Catalog or Target ConnectionDatabase
- Oracle 12c RMAN Duplicating a Subset of the Source Database TablespacesOracleDatabase
- Secrets of the Oracle Database筆記OracleDatabase筆記
- rman 建 Standby Database 筆記Database筆記
- 12C Duplicating a Database to a Remote Host by Using Backup-based DuplicationDatabaseREM
- CONCEPT筆記(一、Introduction to the Oracle Database)筆記OracleDatabase
- Jive筆記6 --Database Package下面的暗黑世界 (轉)筆記DatabasePackage
- .NET Core學習筆記(8)——Entity Framework Core之Database First筆記FrameworkDatabase
- 讀書筆記 Improving Database Performance With AIX Concurrent I/O筆記DatabaseORMAI
- Laravel 佇列 --- database 驅動(今天剛學習了佇列,記錄下筆記)Laravel佇列Database筆記
- [RAC]ORACLE Database 10g RAC for Administrators學習筆記(五)OracleDatabase筆記
- [RAC]ORACLE Database 10g RAC for Administrators學習筆記(一)OracleDatabase筆記
- [RAC]ORACLE Database 10g RAC for Administrators學習筆記(二)OracleDatabase筆記
- [RAC]ORACLE Database 10g RAC for Administrators學習筆記(三)OracleDatabase筆記
- [RAC]ORACLE Database 10g RAC for Administrators學習筆記(四)OracleDatabase筆記
- Oracle 12c RMAN Duplicating the Whole CDBOracle
- Oracle 12C RMAN Duplicating Tablespaces Within a PDBOracle
- Oracle 12C RMAN Duplicating the PDB to remote CDBOracleREM
- Oracle Database 9i/10g/11g程式設計藝術 筆記OracleDatabase程式設計筆記
- 播布客視訊-Performance Tuning筆記(三)Database Configuration and IO IssuesORM筆記Database
- 印象筆記 --- 方法分享筆記筆記
- Oracle 12C RMAN Duplicating the Whole RAC CDB to local RAC CDBOracle
- 筆記筆記
- Oracle OCP(39):Database 記憶體結構OracleDatabase記憶體
- oracle實驗記錄 手工 duplicate database(1)OracleDatabase
- oracle實驗記錄Rman duplicate database(1)OracleDatabase
- oracle實驗記錄Rman duplicate database 2OracleDatabase
- CUUG筆記 ORACLE索引學習筆記筆記Oracle索引
- 主動筆記與被動筆記筆記
- 記一次 ORA-01206: file is not part of this database - wrong database idDatabase
- 淘寶記錄筆記筆記
- 心情筆記筆記
- 命令筆記筆記
- 筆記:Docker筆記Docker
- Meteor筆記筆記
- ES筆記筆記