物理Standby資料庫的檔案路徑轉換(1)
Dataguard 是項常見並且實用的技術,常規方式的配置非常簡單,基本上沒有太多技術問題,大部時間可能都會花在複製資料檔案的 IO 操作上,不過如果條件特殊,比如 Primary 資料檔案路徑與 Standby 路徑不一致,配置時還是有一些需要引起注意的地方。
下面通過示例,演示當物理 Standby 資料庫與 Primary 資料庫路徑不同時的可能出現的問題。
設定環境如下:
- Primary 資料庫: JSSWEB ,檔案路徑在 F:\oracle\oradata\jssbook 目錄下
- 物理 Standby : JSSPDG ,通過 Primary 備份建立,檔案路徑在 L:\oradata\jsspdg 目錄下
- 物理 Standby : JSSLDG ,通過 JSSPDG 建立,檔案路徑在 L:\oradata\jss l dg 目錄下
1、 *_FILE_NAME_CONVERT 引數什麼時候生效的呢
如果要建立的 Standby 資料庫與 Primary 資料庫的路徑無法保持一致, ORACLE 中的實現方式都是藉助引數,自動轉換資料檔案路徑。需要設定設定的引數有兩個: db_file_name_convert 和 log_file_name_convert ,分別用來轉換資料檔案路徑和重做日誌檔案路徑 ( 含聯機重做日誌檔案和 Standby 重做日誌檔案 ) 。不過設定初始化引數的方式在任何場合都好使嗎,答案是否定的,下面的演示能詳細說明這一點。
物理 Standby JSSPDG ,檢視當前的路徑轉換引數設定:
JSSPDG> show parameter convert;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string F:\oracle\oradata\jssbook, L:\
oradata\jsspdg, L:\oradata\jss
pdg, F:\oracle\oradata\jssbook
log_file_name_convert string F:\oracle\oradata\jssbook, L:\
oradata\jsspdg, L:\oradata\jss
pdg, F:\oracle\oradata\jssbook檢視當前資料檔案路徑:
JSSPDG> select name from v$datafile;
NAME
-------------------------------------------------------
L:\ORADATA\JSSPDG\SYSTEM01.DBF
L:\ORADATA\JSSPDG\UNDOTBS01.DBF
L:\ORADATA\JSSPDG\SYSAUX01.DBF
L:\ORADATA\JSSPDG\USERS01.DBF
L:\ORADATA\JSSPDG\SCOTT01.DBF
JSSPDG> select member from v$Logfile;
MEMBER
-------------------------------------------------------
L:\ORADATA\JSSPDG\REDO01.LOG
L:\ORADATA\JSSPDG\REDO02.LOG
L:\ORADATA\JSSPDG\REDO03.LOG
L:\ORADATA\JSSPDG\STDREDO01.LOG
L:\ORADATA\JSSPDG\STDREDO02.LOG
L:\ORADATA\JSSPDG\STDREDO03.LOG
6 rows selected.運氣不錯,看起來路徑轉換正常。不過你有沒有想過,當前顯示的資料檔案、日誌檔案的路徑是否就是控制檔案中所儲存的路徑呢?
答案是否定的,例如,嘗試修改檔案轉換引數:
JSSPDG > alter system set db _file_name_convert='' scope=spfile;
System altered.重新啟動資料庫:
JSSPDG > shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
JSSPDG > startup mount;
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1248720 bytes
Variable Size 96469552 bytes
Database Buffers 209715200 bytes
Redo Buffers 7139328 bytes
Database mounted.再次檢視日誌檔案的路徑:
JSSPDG > select name from v$ datafile ;
NAME
----------------------------------------------------------------------------------------------------
F:\ORACLE\ORADATA\JSSBOOK\SYSTEM01.DBF
F:\ORACLE\ORADATA\JSSBOOK\UNDOTBS01.DBF
F:\ORACLE\ORADATA\JSSBOOK\SYSAUX01.DBF
F:\ORACLE\ORADATA\JSSBOOK\USERS01.DBF
L:\ORADATA\JSSPDG\SCOTT01.DBF除了 scott01.dbf 外,其它檔案仍然顯示的是原路徑。 Scott01.dbf 為什麼能顯示正確的路徑後面再說。其它資料檔案顯示的路徑和當前 db_file_name_convert 引數的設定,結合來看至少能夠得出結論:物理 Standby 控制檔案中儲存的檔案路徑並不一定就是實際路徑,同時而 *_file_name_convert 引數也不是任何情況下均有效。下面我們就接著探討另一個話題,什麼情況下控制檔案中儲存的檔案路徑等於實際顯示的路徑呢?
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-600553/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 遷移資料庫的檔案到不同路徑(轉)資料庫
- 更改資料檔案路徑的方法
- CentOS修改Mariadb資料庫檔案儲存路徑CentOS資料庫
- [重慶思莊每日技術分享]-ORACLE DG物理備庫使用別名資料檔案改變路徑到OMF路徑Oracle
- Python科研武器庫 - 檔案/路徑操作 - 判斷檔案或資料夾Python
- gcc g++ 新增標頭檔案路徑和庫檔案路徑的方法GC
- Java中的獲取檔案的物理絕對路徑,和讀取檔案Java
- oracle 資料庫lsnrctl監聽的日誌路徑和trace檔案Oracle資料庫
- 修改Oracle資料檔名及資料檔案存放路徑Oracle
- 【Oracle】如何修改資料檔案和日誌檔案的路徑Oracle
- DataGuard---->物理StandBy的角色切換之switchover
- 歸檔路徑更改後,如何對資料庫進行恢復(轉)資料庫
- dedecms資料庫配置檔案所在路徑為:/data/common.inc.php資料庫PHP
- oracle11g修改資料檔案路徑Oracle
- oracle 修改資料檔案位置(路徑)(移動)Oracle
- oracle 修改資料檔案路徑(四種方式)Oracle
- 用Aspose-Java免費實現 PDF、Word、Excel、Word互相轉換並將轉換過得檔案上傳OSS,返回轉換後的檔案路徑JavaExcel
- Python科研武器庫 - 檔案/路徑操作 - 判斷路徑是否存在Python
- 資料庫轉換工具,不同資料庫之前任意轉換資料庫
- Python內建庫:pathlib(檔案路徑操作)Python
- 【轉載】Linux查詢檔案安裝路徑Linux
- Linux檔案的路徑定位-相對路徑和絕對路徑Linux
- nodejs遞迴資料夾獲取所有檔案路徑NodeJS遞迴
- 1.3. 資料庫路徑整合資料庫
- 桌面檔案在c盤哪個資料夾 c盤桌面檔案路徑
- Sqlserver資料庫儲存路徑的修改SQLServer資料庫
- NodeJs 的幾種檔案路徑NodeJS
- 【物理】回首路徑積分
- oracle升級後資料檔案路徑變為大寫Oracle
- css檔案與資源路徑相關CSS
- python如何將相對路徑轉換為絕對路徑?Python
- 將DBF檔案(dBase, FoxPro等)中的資料轉換到SQLiteSQLite
- CMake連結庫,會檢索庫引用標頭檔案路徑
- Unity 編輯器中獲取選中的資料夾、檔案路徑Unity
- 回顧Node檔案路徑
- 查詢檔案位置路徑
- 017-html檔案路徑HTML
- 檔案路徑是否正確
- 【Python】配置檔案配置路徑Python