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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 8.0 Reference Manual(讀書筆記56節--Optimizing Database Structure)MySql筆記DatabaseStruct
- .NET Core學習筆記(8)——Entity Framework Core之Database First筆記FrameworkDatabase
- Laravel 佇列 --- database 驅動(今天剛學習了佇列,記錄下筆記)Laravel佇列Database筆記
- Oracle OCP(39):Database 記憶體結構OracleDatabase記憶體
- The database owner SID recorded in the master database differs from the database owner SID recorded in database 'DB_NAME'DatabaseAST
- Oracle Database Cloud - Database as a Service Quick StartOracleDatabaseCloudUI
- Error querying database. XXXXXXXXXXXXX, No database selected。ErrorDatabase
- Convert a Physical Standby Database into a Snapshot Standby DatabaseDatabase
- 印象筆記 --- 方法分享筆記筆記
- Database TimeoutDatabase
- Database OverallDatabase
- database no shardingDatabase
- 筆記筆記
- Oracle 12.2 使用Database Link優化Standby Database WorkloadOracleDatabase優化
- ORACLE database vaultOracleDatabase
- Relationship Database DesignDatabase
- 3.4 Quiescing a DatabaseUIDatabase
- idea--DatabaseIdeaDatabase
- Oracle clone databaseOracleDatabase
- database的connectDatabase
- Password is required when adding a database to AG group if the database has a master keyUIDatabaseAST
- ORA-16649: possible failover to another database prevents this database from beiAIDatabase
- docker 筆記Docker筆記
- hybrid筆記筆記
- Meteor筆記筆記
- String筆記筆記
- html 筆記HTML筆記
- kafka 筆記Kafka筆記
- 路由筆記路由筆記
- 筆記1筆記
- 筆記-FMDB筆記
- ES筆記筆記
- 筆記:Docker筆記Docker
- Liunx筆記筆記
- webSocket筆記Web筆記
- Shadowsocks 筆記筆記
- AbstractQueuedSynchronizer筆記筆記
- 筆記:Spring筆記Spring
- jQuery筆記jQuery筆記