
恢復(fù)db_recovery_file_dest_size參數(shù)為默認(rèn)值0得方法是怎樣的,相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

為館陶等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及館陶網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計、成都網(wǎng)站制作、館陶網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
oracle默認(rèn)安裝之後,如果沒有手動設(shè)置歸檔路徑(alter
system set log_archive_dest_1="LOCATION=/oracle/oracle/archive" scope =spfile;)的話,默認(rèn)是在db_revovery路徑之下。 如果db_recovery_file_dest空間不足,將導(dǎo)致歸檔失敗,若果重啟db,將啟動失敗。
db_recovery_file_dest_size參數(shù)的作用是限制閃回恢復(fù)區(qū)可存放文件總大小。一旦將參數(shù)db_recovery_file_dest_size設(shè)置為非零值后“很難”恢復(fù)為默認(rèn)值“0”。這里我給出兩種可以將此參數(shù)恢復(fù)為默認(rèn)值“0”的方法,一種是“迂回策略”,一種是reset方法。
1.查看默認(rèn)情況下db_recovery_file_dest_size參數(shù)值
db_recovery_file_dest_size參數(shù)的默認(rèn)值是“0”。
SYS@PROD> show parameter db_recovery_file_dest_size
NAME TYPE VALUE
------------------------------------ ----------- -------------
db_recovery_file_dest_size big integer 0
SYS@PROD> col name for a20
SYS@PROD> select * from v$recovery_file_dest;
NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
----- ----------- ---------- ----------------- ---------------
0 0 0 0
2.將db_recovery_file_dest_size參數(shù)調(diào)整為非零值
SYS@PROD> alter system set db_recovery_file_dest_size=4g;
System altered.
SYS@PROD> show parameter db_recovery_file_dest_size
NAME TYPE VALUE
------------------------------------ ----------- ------------
db_recovery_file_dest_size big integer 4G
SYS@PROD> select * from v$recovery_file_dest;
NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
----- ----------- ---------- ----------------- ---------------
4294967296 0 0 0
3.嘗試將db_recovery_file_dest_size參數(shù)修改為“0”
SYS@PROD> alter system set db_recovery_file_dest_size=0;
alter system set db_recovery_file_dest_size=0
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-19803: Parameter DB_RECOVERY_FILE_DEST_SIZE is out of range (1 -
18446744073709551614)
報錯信息非常顯然,db_recovery_file_dest_size參數(shù)大小必須介于1~18446744073709551614之間,也就是說不可以調(diào)整為其默認(rèn)值“0”。
有朋友說,是不是可以嘗試使用scope=spfile方式調(diào)整此參數(shù)。注意,也是不可以的。驗(yàn)證如下。
SYS@PROD> alter system set db_recovery_file_dest_size=0 scope=spfile;
System altered.
此處貌似修改成功,但是這樣調(diào)整后數(shù)據(jù)庫將無法重新啟動,報錯信息如下。
SYS@PROD> startup;
ORA-19803: Parameter DB_RECOVERY_FILE_DEST_SIZE is out of range (1 - 18446744073709551614)
一樣的報錯原因,db_recovery_file_dest_size參數(shù)大小必須介于1~18446744073709551614之間。
4.迂回處理方法
既然使用常規(guī)方法無法達(dá)到我們將db_recovery_file_dest_size參數(shù)調(diào)整為“0”的目的,那我們應(yīng)該如何應(yīng)對這個需求呢。
經(jīng)過嘗試,可以通過pfile迂回的達(dá)到恢復(fù)的目的。
1)使用當(dāng)前的spfile生成pfile
SYS@PROD> create pfile from spfile;
File created.
2)使用vi命令將pfile中的db_recovery_file_dest_size參數(shù)信息刪除掉
[oracle@secdb1 ~]$ vi $ORACLE_HOME/dbs/initPROD.ora
……
*.db_recovery_file_dest_size=4294967296
……
注:如果經(jīng)過上面scope=spfile方法調(diào)整過的話,pfile中的信息如下:
*.db_recovery_file_dest_size=0
方法是一樣的,將整行信息刪除掉。
3)停止數(shù)據(jù)庫并生成spfile,并用spfile啟動數(shù)據(jù)庫
SYS@PROD> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance
shut down.
SYS@PROD> create spfile from pfile;
File created.
SYS@PROD> startup;
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219184 bytes
Variable Size 109053328 bytes
Database Buffers 201326592 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
4)查看修改成果
SYS@PROD> show parameter db_recovery_file_dest_size
NAME TYPE VALUE
------------------------------------ ----------- -----------
db_recovery_file_dest_size big integer 0
SYS@PROD> col name for a20
SYS@PROD> select * from v$recovery_file_dest;
NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
------ ----------- ---------- ----------------- ---------------
0 0 0 0
目的達(dá)到。
5.使用直截了當(dāng)?shù)膔eset方法
恢復(fù)參數(shù)為默認(rèn)值的另外一種便捷方法是使用reset方法,可以避免上面的“迂回策略”,調(diào)整過程展示如下,供各位朋友參考。
SYS@PROD> show parameter db_recovery_file_dest_size
NAME TYPE VALUE
------------------------------------ ----------- --------
db_recovery_file_dest_size big integer 4G
SYS@PROD> alter system reset db_recovery_file_dest_size scope=spfile sid='*';
System altered.
SYS@PROD> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@PROD> startup;
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219184 bytes
Variable Size 109053328 bytes
Database Buffers 201326592 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
SYS@PROD> show parameter db_recovery_file_dest_size
NAME TYPE VALUE
------------------------------------ ----------- ----------
db_recovery_file_dest_size big integer 0
通過實(shí)驗(yàn)的方式探索出了一種恢復(fù)數(shù)據(jù)庫參數(shù)為默認(rèn)值的方法。請朋友們從原理上去理解這個過程,參數(shù)文件的根本作用就是“覆蓋參數(shù)的默認(rèn)值”,以便刻畫出一個最適合自己應(yīng)用場景的環(huán)境。因此參數(shù)文件中記錄的都是與默認(rèn)參數(shù)值不一樣的內(nèi)容。因此通過刪除pfile參數(shù)文件中的的參數(shù),便可達(dá)到恢復(fù)參數(shù)為其默認(rèn)值的目的。BTW,使用reset方法更加快速便捷。
看完上述內(nèi)容,你們掌握恢復(fù)db_recovery_file_dest_size參數(shù)為默認(rèn)值0得方法是怎樣的的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!