物理Standby資料庫的檔案路徑轉換(3)
前文連結:
物理Standby資料庫的檔案路徑轉換(2)--STANDBY_FILE_MANAGEMENT 引數的值很重要
物理Standby資料庫的檔案路徑轉換(1)--*_FILE_NAME_CONVERT 引數什麼時候生效的呢
==========================================
3、 *_FILE_NAME_CONVERT 能決定一切嗎?
通過前面的示例,我們就知道*_file_name_convert並不一定有效,不過,是否除此之外其它情況下,*_file_name_convert引數就能主宰了呢?答案又是否定的。原因請看下列示例:
根據JSSPDG建立另一個物理Standby:JSSLDG,然後登陸並檢視相關資訊。
首先也是檢視路徑轉換引數的設定:
JSSLDG> show parameter db_file_
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_multiblock_read_count integer 16
db_file_name_convert string F:\oracle\oradata\jssbook, L:\
oradata\JSSLDG, L:\oradata\JSS
LDG, F:\oracle\oradata\jssbook
db_files integer 200
JSSLDG> select name from v$datafile;
NAME
------------------------------------------------------------------------------------
L:\ORADATA\JSSPDG\SYSTEM01.DBF
L:\ORADATA\JSSPDG\UNDOTBS01.DBF
L:\ORADATA\JSSLDG\SYSAUX01.DBF
L:\ORADATA\JSSPDG\USERS01.DBF
L:\ORADATA\JSSPDG\SCOTT01.DBF奇怪啊奇怪,後兩個檔案的路徑可以理解,經常第2例的測試,已知該路徑無法通過convert引數做轉換,但是前面兩個檔案並沒有顯式修改過路徑啊,為什麼convert引數對其也無效呢?仔細回憶JSSLDG的建立過程,由於JSSLDG是通過複製JSSPDG實現,複製時JSSPDG處於REDO應用狀態,難道是這個原因嗎?
停止jsspdg物理Standby的REDO應用再複製試試:
JSSPDG> alter database recover managed standby database cancel;
Database altered.Jssldg 的再建立就簡單多了,只複製資料檔案日誌檔案就好了,因為初始化引數、金鑰檔案等均不需要做改動,重新執行查詢:
JSSLDG> select name from v$datafile;
NAME
------------------------------------------------------------------------------------
L:\ORADATA\JSSPDG\SYSTEM01.DBF
L:\ORADATA\JSSPDG\UNDOTBS01.DBF
L:\ORADATA\JSSLDG\SYSAUX01.DBF
L:\ORADATA\JSSPDG\USERS01.DBF
L:\ORADATA\JSSPDG\SCOTT01.DBF路徑沒有變化,說明與複製時物理Standby是否處於應用模式無關。此時注意到一個細節問題,由於jsspdg也是剛剛建立並啟動redo應用,而從資料檔案的修改日誌來看,恰恰是修改了system01.dbf和undotbs01.dbf兩個檔案,難道是由於這兩個檔案修改過,Standby 端中的控制檔案路徑就自動做了轉換?測試一下。
正常情況下,物理Standby資料庫的控制檔案應該是通過Primary建立,前面為了省事,建立jssldg時也是直接複製的jsspdg的控制檔案,這裡我們嘗試直接通過Primary建立standby控制檔案:
JSSPRE> alter database create standby controlfile as 'l:\oradata\jssldg\jssldg01.ctl' reuse;
Database altered.啟動jssldg後重新執行查詢:
JSSLDG> select name from v$datafile;
NAME
------------------------------------------------------------------------------------
L:\ORADATA\JSSLDG\SYSTEM01.DBF
L:\ORADATA\JSSLDG\UNDOTBS01.DBF
L:\ORADATA\JSSLDG\SYSAUX01.DBF
L:\ORADATA\JSSLDG\USERS01.DBF
L:\ORADATA\JSSLDG\SCOTT01.DBFOK ,路徑已經正常顯示。接下來我們再建立一個新的物理Standby環境,以便測試當物理Standby有修改時,是否就會自動轉換自己控制檔案中的檔案路徑。
假設新建立的物理Standby叫JSSLDG2(建立步驟省略),切換回jssldg資料庫,啟動REDO應用,從作業系統中監控一個jssldg資料庫的資料檔案是否有修改,當發現system01.dbf和undotbs01.dbf檔案有修改操作(這兩個檔案太有意思了,要改一塊改。不過想想也正確,應該是巧合,當system表空間資料檔案要操作時,用到了undo表空間,因此才會導致兩個表空間的資料檔案都被修改),馬上覆制jssldg資料庫的控制檔案到jssldg2資料庫,然後重新啟動jssldg2資料庫,並檢視檔案路徑:
JSSLDG 2> select name from v$datafile;
NAME
------------------------------------------------------------------------------------
L:\ORADATA\JSSLDG\SYSTEM01.DBF
L:\ORADATA\JSSLDG\UNDOTBS01.DBF
L:\ORADATA\JSSLDG2\SYSAUX01.DBF
L:\ORADATA\JSSLDG2\USERS01.DBF
L:\ORADATA\JSSLDG2\SCOTT01.DBF可以看到,修改過的資料檔案的路徑,沒有被convert引數轉換。
基於上例,我們又可以得出一個結論,如果物理Standby在執行過程中,修改過檔案(含資料檔案和日誌檔案),那麼這部分檔案在Standby端控制檔案中的路徑,也會被自動修改成應用*_file_name_convert後的路徑。
最後,如果你發現在建立Dataguard環境時,由於Primary資料庫和物理Standby資料庫資料檔案路徑無法保持一致,雖然設定了初始化引數,並且確認引數設定無問題,但Standby端的檔案路徑仍然不對,那不妨對照前面幾個例子,看看是否符合了某些初始化引數無法控制的條件。因為Standby資料庫的路徑轉換是否好使,並不僅僅取決於convert引數是正確配置。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-604199/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 物理Standby資料庫的檔案路徑轉換(1)資料庫
- 物理Standby資料庫的檔案路徑轉換(2)資料庫
- 物理Standby資料庫及邏輯Standby資料庫(Physical Standby & Logical Standby)資料庫
- Dataguard物理Standby Switchover 角色轉換
- cp資料檔案方式搭建 11g 物理standby
- ORACLE DUPLICATE建立物理standby資料庫Oracle資料庫
- 使用RMAN建立物理Standby資料庫資料庫
- MySQL資料庫資料檔案路徑遷移步驟MySql資料庫
- 修改資料檔案路徑
- standby庫歸檔日誌路徑小節
- postgresql資料庫安裝以及修改資料檔案路徑SQL資料庫
- 更改資料檔案路徑的方法
- 改變資料檔案的路徑
- 遷移資料庫的檔案到不同路徑(轉)資料庫
- dataguard之物理standby庫failover 切換AI
- [重慶思莊每日技術分享]-ORACLE DG物理備庫使用別名資料檔案改變路徑到OMF路徑Oracle
- CentOS修改Mariadb資料庫檔案儲存路徑CentOS資料庫
- 使用RMAN複製活動資料庫(檔案路徑相同)資料庫
- 使用RMAN複製活動資料庫(檔案路徑不同)資料庫
- 在單機上建立物理的Oracle9i standby資料庫(轉)Oracle資料庫
- oracle資料庫更改歸檔路徑Oracle資料庫
- 修改資料庫檔名字和路徑資料庫
- 【DATAGUARD】 將11g物理備庫轉換為Snapshot Standby
- gcc g++ 新增標頭檔案路徑和庫檔案路徑的方法GC
- Java中的獲取檔案的物理絕對路徑,和讀取檔案Java
- 【DATAGUARD 學習】使用duplicate 建立物理standby 資料庫資料庫
- 管理物理STANDBY資料庫——DATA GUARD概念和管理資料庫
- 建立物理STANDBY資料庫——DATA GUARD概念和管理資料庫
- Python科研武器庫 - 檔案/路徑操作 - 判斷檔案或資料夾Python
- 修改Oracle資料檔名及資料檔案存放路徑Oracle
- 非歸檔模式下的資料檔案路徑修改模式
- oracle 資料庫lsnrctl監聽的日誌路徑和trace檔案Oracle資料庫
- 【Oracle】如何修改資料檔案和日誌檔案的路徑Oracle
- 用重建控制檔案的方法修改oracle資料檔案路徑Oracle
- 移動資料庫物理檔案 Move Physical Files資料庫
- dataguard之物理備庫丟失資料檔案
- 將Standby資料庫臨時轉換為主資料庫用於測試資料庫
- DATA GUARD物理STANDBY的 SWITCHOVER切換