oracle dg庫資料檔案建立失敗ORA-01111
具體報錯如下
SQL> alter database open read only ;
alter database open read only
*
ERROR at line 1:
ORA-10458: standby database requires recovery
ORA-01157: cannot identify/lock data file 24 - see DBWR trace file
ORA-01111: name for data file 24 is unknown - rename to correct file
ORA-01110: data file 24:
'/data/u01/app/oracle/product/11.2.0/dbhome_1/dbs/UNNAMED00024'
剛剛在主庫新增了資料檔案:
SQL> alter tablespace MODEL_BH add datafile '/data2/oradata/datafile/bapp/MODEL_BH010.dbf' size 31g;
然後檢視下發現24號資料檔案就是剛才新增的那檔案:
SQL>set line 1000
SQL>set pagesize 1000
SQL>col name for a60
SQL> col status for a20
SQL> select FILE#,name from v$datafile where file#=24;
FILE# NAME
---------- ------------------------------------------------------------
24 /data2/oradata/datafile/bapp/MODEL_BH010.dbf
也就是說出庫的這個檔案,沒有同步到從庫,突然想到,今天這個檔案的目錄放到的一個新的掛載點上了/data2 (由於空間不足,新新增的掛在點)。壞了因為從庫的db_file_name_convert檔案沒有配置傳喚/data2/oradata/datafile/bapp/的路徑,具體如下:
SQL> show parameter convert
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string /data/app/oracle/oradata/dataf
ile/bapp/, /data/u01/app/dataf
ile/
然後我搭建的datagurd一般都是把備庫的引數配置 STANDBY_FILE_MANAGEMENT為auto,如下所示:
SQL> show parameter STANDBY_FILE_MANAGEMENT;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
standby_file_management string AUTO
1)STANDBY_FILE_MANAGEMENT=AUTO的情況下,如果從庫的 db_file_name_convert引數設定的正確了,那麼 主庫建立的資料檔案在備份端應用日誌時會自動建立,從庫會根據convert引數在備庫建立相對應的資料檔案;
2)STANDBY_FILE_MANAGEMENT=AUTO的情況下,但是如果主庫建立在其他路徑的資料檔案,也就是說如果從庫的 db_file_name_convert引數沒有正確設定(就像我前面的,主庫的/data2下的路徑沒有設定對應的轉換路徑,那麼這時候從庫就會 建立到$ORACLE_HOME/dbs下(注意只是控制檔案中有這個以 UNNAMED開頭命名的檔案資訊,但是不會真正的建立 ,同樣如果主庫是drop,備庫也會drop。
我的情況正是STANDBY_FILE_MANAGEMENT=AUTO,然後從庫的 db_file_name_convert引數沒有正確設定,
在 從庫 檢視檔案狀態為recover的,表示從庫沒有建立成功
SQL> select file#,name ,status from v$datafile where status='RECOVER';
FILE# NAME status
---------- -------------------------------------------------------------------------------------------------------
24 /data/u01/app/oracle/product/11.2.0/dbhome_1/dbs/UNNAMED00024 RECOVER
下面展示修復過程:
1.在從庫修改引數db_file_name_convert;
如下所示,新增上/data2/oradata/datafile/bapp/的轉換路徑
SQL> show parameter convert
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string /data/app/oracle/oradata/dataf
ile/bapp/, /data/u01/app/dataf
ile/, /data2/oradata/datafile/
bapp/, /data/u01/app/datafile/
2.重啟從庫
SQL> shu immediate
SQL> startup mount
3.修改從庫的引數standby_file_management=manual
SQL> alter system set standby_file_management='manual';
System altered.
註釋:standby_file_management為manual,那麼當主庫新增了檔案,從庫需要手工建立上,並且如果standby_file_management=auto,備庫是不允許手工建立檔案的!!
4. 在備庫建立上那個檔案,如下所示!!!
SQL>alter database create datafile '/data/u01/app/oracle/product/11.2.0/dbhome_1/dbs/UNNAMED00024' as '/data/u01/app/datafile/MODEL_BH010.dbf';
此時再檢視這個24號檔案,發現名字已經變回來了
SQL> select name ,file# from v$datafile where file#=24;
NAME
--------------------------------------------------------------------------------
FILE#
----------
/data/u01/app/datafile/MODEL_BH010.dbf
24
但是此時候檢視依舊是recover的狀態:
SQL> select file#,name ,status from v$datafile where status='RECOVER';
FILE# NAME status
---------- -------------------------------------------------------------------------------------------------------
24 /data/u01/app/oracle/product/11.2.0/dbhome_1/dbs/UNNAMED00024 RECOVER
需要開啟mrp程式,應用日誌,恢復下備庫!注意不要先read only open!
alter database recover managed standby database using current logfile disconnect from session;
再次檢視這個這個檔案,發現已經不在是recover狀態了,為online的了,這時候才是真的恢復成功了!
SQL> select name ,status from v$datafile where file#=24;
NAME STATUS
--------------------------------------------------------------------------------
/data/u01/app/datafile/MODEL_BH010.dbf ONLINE
7.以read only方式開啟資料庫
需要先關閉mrp程式,然後才能以read only方式開啟資料,否則報錯!
SQL> alter database open read only;
alter database open read only
*
ERROR at line 1:
ORA-10456: cannot open standby database; media recovery session may be in
progress
關閉mrp程式:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
Database altered.
然後開啟資料庫
SQL> alter database open read only;
Database altered.
再次開啟mrp程式
alter database recover managed standby database using current logfile disconnect from session;
8.修改從庫的引數standby_file_management=auto
SQL> alter system set standby_file_management='auto';
經驗證資料同步正常
9.最後最好重啟下備庫!!!!然後別忘記啟動mrp程式!
小結:
oracle dg資料庫,如果主庫更換了資料檔案的目錄,需要從新配置從庫的db_file_name_convert引數,否則,備庫會無法建立相應的資料檔案的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29654823/viewspace-2217740/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DataGuard ORA-01111檔案建立失敗問題解決
- Oracle dg歸檔同步失敗Oracle
- oracle dg庫資料檔案空間不足Oracle
- Oracle 19c standby 建立資料檔案報錯ORA-01111Oracle
- Oracle DG備庫手動管理新增資料檔案Oracle
- [20190410]dg建立臨時表檔案資料檔案.txt
- Oracle DG同步失敗故障處理(二)Oracle
- [20180718]拷貝資料檔案從dg庫.txt
- DG備庫手動管理 新增資料檔案
- Oracle DG管理資料庫屬性Oracle資料庫
- dg主庫建立檔案備庫未同步解決方法
- Oracle DG資料庫狀態轉換Oracle資料庫
- oracle資料庫的配置檔案Oracle資料庫
- Oracle RAC+ADG新增資料檔案失敗處理(db_create_file_dest)Oracle
- Kettle8.2連線Oracle資料庫失敗解決方法Oracle資料庫
- dg和ogg的區別--oracle資料庫Oracle資料庫
- oracle uncatalog資料庫備份檔案Oracle資料庫
- Django 遷徙資料庫 失敗Django資料庫
- 引入js檔案失敗JS
- Linux中建立檔案失敗的原因是什麼?Linux
- MongoDB資料庫報錯,資料庫檔案丟失資料恢復案例MongoDB資料庫資料恢復
- Oracle DG建立Physical Standby DatabaseOracleDatabase
- Oracle DG建立Logical Standby DatabaseOracleDatabase
- 資料庫遠端連線失敗資料庫
- rz檔案傳輸失敗
- 網頁提示連線資料庫失敗是怎麼回事(網站資料庫連線失敗)網頁資料庫網站
- Oracle 11g Data Guard 增加資料檔案報錯:ORA-01111、ORA-01110、ORA-01157Oracle
- DG修復:異常關庫導致的資料庫啟動失敗ORA-01110及GAP修復資料庫
- 分析Oracle資料庫日誌檔案(三)EPOracle資料庫
- 分析Oracle資料庫日誌檔案(二)DOOracle資料庫
- 分析Oracle資料庫日誌檔案(一)HBOracle資料庫
- Oracle+Ogg 歸檔丟失 重新導資料建立ogg同步步驟Oracle
- Oracle案例11——Oracle表空間資料庫檔案收縮Oracle資料庫
- Oracle 資料檔案回收Oracle
- oracle資料庫建立資料庫例項-九五小龐Oracle資料庫
- 達夢資料庫關於[-70028]:建立SOCKET連線失敗的錯誤原因資料庫
- 1.7.2. 使用ORAPWD建立資料庫密碼檔案資料庫密碼
- Sql Server資料庫檔案丟失的恢復方法SQLServer資料庫