複製資料庫中需要注意的幾點事項
任務簡介:
此次複製的生產庫數檔案為9.18TB,實際分配的資料大小為5.16TB,使用RMAN壓縮備份後為1.1TB。
複製端資料庫採用單例項ASM儲存方式管理,資料庫版本為11.2.0.4. 資料檔案目錄為+DATA,14.5TB,歸檔日誌目錄為+ARCH,2TB。
生產庫資料檔案大小
SQL> select sum(bytes)/1024/1024/1024 GB from dba_segments;
GB
----------
5287.02454
生產庫實際分配的大小
SQL> select sum(bytes)/1024/1024/1024 GB from dba_data_files;
GB
----------
9402.70592
注意事項一: 避免set newname指令碼中出現同名檔案
在rman中使用set newname時候為了保持檔名和生產庫一致,可以採用手工命名的方式。例如:
set newname for datafile 1 to ‘+DATA/cmsdb/datafile/system01.dbf’;
這個方式出現了一個潛在的隱患,如果生產庫中存在相同名字的資料檔案存放在不同的目錄中,在編寫指令碼時候容易出現重名的情況,導致RMAN restore出錯。
select name from v$datafile where name like ‘%DATA_P008.dbf%’;
/sgpmdb/oradata/u01/DATA_P008.dbf
/sgpmdb/oradata/u06/DATA_P008.dbf
當我採用vi編輯命令將目錄/sgpmdb/oradata/u01 統一改成+DATA/sgpmdb/datafile 就會自己創造出重名的檔案。在好幾百行的指令碼中很難一眼看出這個問題。
:%s#/sgpmdb/oradata/u01/#+DATA/cmsdb/datafile/#g
run{
...
set newname for datafile 1 to '+DATA/cmsdb/datafile/DATA_P008.dbf';
...
set newname for datafile 2 to '+DATA/cmsdb/datafile/DATA_P008.dbf';
…
}
執行RMAN restore 錯誤資訊如下:
ORA-19504: failed to create file “+DATA/cmsdb/datafile/data_p008.dbf”
ORA-17502: ksfdcre:4 Failed to create file +DATA/cmsdb/datafile/data_p008.dbf
ORA-15005: name “cmsdb/datafile/data_p008.dbf” is already used by an existing alias
所以還是建議採用如下的方式讓oracle來定義alias,保持檔名唯一。
run{
set newname for datafile 1 to '+DATA';
set newname for datafile 2 to '+DATA';
set newname for datafile 3 to '+DATA';
…...
}
注意事項二: 後臺執行nohup的程式問題
vi編輯好RMAN指令碼後,建議使用nohup命令在後臺執行,避免執行過程中被以外干擾。
nohup ./rman_scripts.cmd &
rman在後臺執行時,螢幕沒有輸出,可以透過tail -f ./nohup.out的方式來監控rman輸出。
也可以透過ps -ef | grep 的方式來觀察程式是否在後臺執行。這裡需要注意的是 ps -ef | grep 後要輸入的是什麼?
容易犯的錯誤是 ps -ef | grep nohup
這個命令是沒有返回結果的。如果錯誤的認為剛剛輸入的命令沒有起作用,而再次執行 nohup. /rman_scripts.cmd的話,悲劇產生了。該指令碼被執行了2次!
如果是restore命令的話,並且採用了set newname for datafile 1 to '+DATA’;的寫法數,+DATA磁碟組中就會存在兩份資料檔案,最終將磁碟空間撐爆。
正確的用法是 ps -ef | grep rman_scripts.cmd
以上總結都是在此次專案中出現的問題。在漫長的資料庫恢復過程中,每一個錯誤都會耽誤大量的時間,一定要小心謹慎。
此次複製的生產庫數檔案為9.18TB,實際分配的資料大小為5.16TB,使用RMAN壓縮備份後為1.1TB。
複製端資料庫採用單例項ASM儲存方式管理,資料庫版本為11.2.0.4. 資料檔案目錄為+DATA,14.5TB,歸檔日誌目錄為+ARCH,2TB。
生產庫資料檔案大小
SQL> select sum(bytes)/1024/1024/1024 GB from dba_segments;
GB
----------
5287.02454
生產庫實際分配的大小
SQL> select sum(bytes)/1024/1024/1024 GB from dba_data_files;
GB
----------
9402.70592
注意事項一: 避免set newname指令碼中出現同名檔案
在rman中使用set newname時候為了保持檔名和生產庫一致,可以採用手工命名的方式。例如:
set newname for datafile 1 to ‘+DATA/cmsdb/datafile/system01.dbf’;
這個方式出現了一個潛在的隱患,如果生產庫中存在相同名字的資料檔案存放在不同的目錄中,在編寫指令碼時候容易出現重名的情況,導致RMAN restore出錯。
select name from v$datafile where name like ‘%DATA_P008.dbf%’;
/sgpmdb/oradata/u01/DATA_P008.dbf
/sgpmdb/oradata/u06/DATA_P008.dbf
當我採用vi編輯命令將目錄/sgpmdb/oradata/u01 統一改成+DATA/sgpmdb/datafile 就會自己創造出重名的檔案。在好幾百行的指令碼中很難一眼看出這個問題。
:%s#/sgpmdb/oradata/u01/#+DATA/cmsdb/datafile/#g
run{
...
set newname for datafile 1 to '+DATA/cmsdb/datafile/DATA_P008.dbf';
...
set newname for datafile 2 to '+DATA/cmsdb/datafile/DATA_P008.dbf';
…
}
執行RMAN restore 錯誤資訊如下:
ORA-19504: failed to create file “+DATA/cmsdb/datafile/data_p008.dbf”
ORA-17502: ksfdcre:4 Failed to create file +DATA/cmsdb/datafile/data_p008.dbf
ORA-15005: name “cmsdb/datafile/data_p008.dbf” is already used by an existing alias
所以還是建議採用如下的方式讓oracle來定義alias,保持檔名唯一。
run{
set newname for datafile 1 to '+DATA';
set newname for datafile 2 to '+DATA';
set newname for datafile 3 to '+DATA';
…...
}
注意事項二: 後臺執行nohup的程式問題
vi編輯好RMAN指令碼後,建議使用nohup命令在後臺執行,避免執行過程中被以外干擾。
nohup ./rman_scripts.cmd &
rman在後臺執行時,螢幕沒有輸出,可以透過tail -f ./nohup.out的方式來監控rman輸出。
也可以透過ps -ef | grep 的方式來觀察程式是否在後臺執行。這裡需要注意的是 ps -ef | grep 後要輸入的是什麼?
容易犯的錯誤是 ps -ef | grep nohup
這個命令是沒有返回結果的。如果錯誤的認為剛剛輸入的命令沒有起作用,而再次執行 nohup. /rman_scripts.cmd的話,悲劇產生了。該指令碼被執行了2次!
如果是restore命令的話,並且採用了set newname for datafile 1 to '+DATA’;的寫法數,+DATA磁碟組中就會存在兩份資料檔案,最終將磁碟空間撐爆。
正確的用法是 ps -ef | grep rman_scripts.cmd
以上總結都是在此次專案中出現的問題。在漫長的資料庫恢復過程中,每一個錯誤都會耽誤大量的時間,一定要小心謹慎。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29734436/viewspace-1312914/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python面試中需要注意的幾點事項!Python面試
- 12c 使用資料泵複製資料庫結構的注意事項資料庫
- 需要提醒你關於 golang 中 map 使用的幾點注意事項Golang
- 複製oracle home的注意事項Oracle
- Azure ARM模式下VNet配置中需要注意的幾點事項模式
- PG 資料庫 DTS 遷移需要注意的事項:資料庫
- Oracle資料庫中Create user的注意事項Oracle資料庫
- 資料所有權設定中需要注意的事項
- 把資料從MySQL遷到Oracle的幾點注意事項MySqlOracle
- 幾點需要注意選擇APP開發外包團隊的注意事項APP
- Oracle Expdp/Impdp 進行資料遷移的 幾點注意事項Oracle
- MySQL 資料庫-索引注意事項MySql資料庫索引
- 網站定製開發需要注意的事項網站
- 關於MongoDB的幾點注意事項UMMongoDB
- Python Enum 使用的幾點注意事項Python
- Spring事務需要注意的幾個點Spring
- Oracle 資料庫升級注意事項Oracle資料庫
- 資料庫程式設計注意事項資料庫程式設計
- 備份 master 資料庫時的注意事項AST資料庫
- MySQL 資料庫設計和注意事項MySql資料庫
- 資料視覺化的難點是什麼,需要注意的事項有哪些?視覺化
- Laravel 使用 PostgreSQL 資料庫需要注意的點LaravelSQL資料庫
- 寫技術類Blog需要注意的幾個事項
- Oracle資料庫表設計時的注意事項Oracle資料庫
- 資料補丁中需要注意的幾個問題
- 備份model 和msdb 資料庫時的注意事項資料庫
- AD資料複製需要的埠
- SqlServer同例項複製資料庫方法SQLServer資料庫
- 資料網格的注意事項 - Kineret
- MySQL主從複製的原理和注意事項都在這兒了!!MySql
- Oracle 資料匯出注意事項Oracle
- 大資料學習注意事項大資料
- 使用無程式碼開發平臺需要重點注意的事項
- duplicate複製資料庫(rac-單例項)資料庫單例
- 資料庫複製資料庫
- 複製資料庫資料庫
- SSL證書提交申請稽核後要注意的幾點事項
- XML PUBLISHER 輸出資料庫圖片需注意事項XML資料庫