oracle dg庫資料檔案空間不足

賀子_DBA時代發表於2024-02-07
dg庫磁碟空間不足,但是其他目錄還有空間處理辦法,如果該例項資料量不大,可以直接從新搭建即可,但是如果例項資料很大,儘量還是修復下;
方法1:
當還有可用空間的時候,此時dg庫還在正常運作,這個時候可以使用此方法:
1、把主庫所有可以擴充套件的資料檔案關閉自動擴充套件;
2、修改dg庫引數:
在dataguard的配置中,db_file_name_convert是比較常用的引數。
如果備庫中引數db_create_file_dest未設定,則資料檔案路徑轉換是由引數db_file_name_convert決定;
當引數db_file_name_convert和db_create_file_dest都設定時,則只有db_create_file_dest生效。db_create_file_dest的優先順序要高於db_file_name_convert。同樣在ADG搭建時,如果設定了db_create_file_dest,則db_file_name_convert同樣不生效。
同時,如果db_create_file_dest設定為+DATA1,那麼無法在其他磁碟組(如+DATA2)建立資料檔案,如:
alter tablespace TEST add datafile '+DATA2'size 31G;
則無法成功。
綜上:
1)你可以直接修改從庫的引數db_file_name_convert來改變以後新新增的資料檔案目錄,但是此時新檔案的名字就給主庫名字不一樣了!
SQL> alter system set  db_create_file_dest="/opt/app/oracle/archivelog/PSRACDBG/datafile/";
System altered.
2)不設定db_file_name_convert引數,單獨修改db_file_name_convert引數來改變新檔案在dg庫的目錄;注意最後的要帶'/';  注意此引數需要重啟資料庫!
alter system  set  db_file_name_convert  =  '+DATADG/psdb/datafile/', '/opt/app/oracle/archivelog/PSRACDBG/datafile/', '+DATADG/psdb/', '/opt/app/oracle/archivelog/PSRACDBG/datafile/';
方法2:(經測試軟連線的方式適用於oracle所有的資料檔案,包括system表空間)
可以透過做軟連線的方式把檔案先移動到別的目錄,當dg庫磁碟一點都沒有的時候,只能使用這個
1、關閉資料庫
shu immediate
2、把檔案cp到目標新目錄下
cp   /data/datafile/datafile.dbf    /data2/datafile/datafile.dbf
3、把原路徑的檔案重新命名
mv  /data/datafile/datafile.dbf  /data/datafile/datafile.dbf_bak
4、做軟連線(注意位置先源端後目標端)
ln -s /data2/datafile/datafile.dbf  /data/datafile/
5、啟動資料庫,如果可以正常啟動再把原來檔案刪除
startup
6、如果可以正常啟動,做幾次checkpoint沒問題,就可以刪除原來的檔案
rm   /data/datafile/datafile.dbf
總結:如果dg庫存放資料檔案的目錄空間吃緊,需要更換資料檔案目錄的時候,建議直接修改引數db_create_file_dest即可,最簡單便捷!


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/29654823/viewspace-3006533/,如需轉載,請註明出處,否則將追究法律責任。

相關文章