Oracle 數(shù)據(jù)庫中 DB_FILES 定義了數(shù)據(jù)庫中數(shù)據(jù)文件的個數(shù) 如果創(chuàng)建數(shù)據(jù)庫文件時超過DB_FILES 定義的值就回報 ORA-00059 這個錯誤采转。
那么如何解決這個 ORA-00059 問題呢,請參考以下教程饿凛。
01、首先我們通過SQL查詢出目前DB_FILES 定義值是多少。
? 通過 SSH 登錄數(shù)據(jù)庫服務(wù)器,如果是Oracle RAC 環(huán)境鳍烁,登錄任意一個節(jié)點都可以。
通常使用的是 oracle 帳號繁扎,命令如下:
ssh oracle@xxx.xxx.xxx.xxx
登錄成功后幔荒,執(zhí)行如下命令
sqlplus / as sysdba
SQL> show parameter db_files;
輸出如下:
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_files integer 200
一般Oracle默認(rèn)值是200,當(dāng)然你可以修改的更大一點梳玫,
02爹梁、修改 DB_FILES 的默認(rèn)值
? 根據(jù)實際情況調(diào)整 DB_FILES 需要的值,這里舉例設(shè)置成400提澎,DB_FILES 生效需要重啟數(shù)據(jù)庫實例姚垃。
單機(jī) Oracle 修改 DB_FILES 步驟如下:
1、通過如下命令進(jìn)行修改 DB_FILES 值
SQL> alter system set db_files=350 scope=spfile;
2盼忌、關(guān)閉數(shù)據(jù)庫
SQL> shutdown immediate
? 關(guān)閉過程需要一段時間积糯,等執(zhí)行完成后在執(zhí)行第3步。
3谦纱、重啟數(shù)據(jù)庫
SQL> startup
? 等待命令執(zhí)行成功看成,服務(wù)正式啟動。
4服协、檢查修改后的 DB_FILES 值
SQL> show parameter db_files;
? 輸出結(jié)果如下:
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_files integer 400
至此單機(jī)Oracle環(huán)境修改 DB_FILES 值完成绍昂。
RAC 環(huán)境下修改 DB_FILES 值步驟如下:
1、登錄任意一個節(jié)點執(zhí)行如下命令
SQL> alter system set db_files=350 scope=spfile sid='*';
? 這里sid=’*’是指在所有實例上生效偿荷。
2窘游、在第一個節(jié)點上關(guān)閉數(shù)據(jù)庫
SQL> shutdown immediate
? 關(guān)閉過程需要一段時間,等執(zhí)行完成后在執(zhí)行第3步跳纳。
3忍饰、在第一個節(jié)點上重啟數(shù)據(jù)庫
SQL> startup
? 等待命令執(zhí)行成功,服務(wù)正式啟動寺庄。
4艾蓝、檢查修改后的 DB_FILES 值
SQL> show parameter db_files;
? 輸出結(jié)果如下:
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_files integer 400
至此RAC環(huán)境中該節(jié)點 DB_FILES 值完成力崇。
PS:其他節(jié)點逐次按照該步驟進(jìn)行,需要注意的時不要在一個節(jié)點數(shù)據(jù)庫實例沒有啟動完成就去做第二個節(jié)點赢织,否則會出錯亮靴。
寫在最后
? 至此如果在 Oracle 中修改 DB_FILES 介紹完了,當(dāng)然這里在重啟數(shù)據(jù)庫 shutdown immediate 命令執(zhí)行之前并沒有做停止監(jiān)聽的操作于置,根據(jù)需要可先執(zhí)行停止監(jiān)聽的操作茧吊,需要注意的是rac環(huán)境中,停止監(jiān)聽的命令一般都是在 grid 帳號下執(zhí)行八毯。
如果你有不同看法或更好的建議請留言搓侄。