Oracle 報錯 ORA-00059:maximum number of DB_FILES exceed



報這個錯誤的原因是因為數據文件數量已經達到db_files這個參數的值,如果想增加數據文件的數量,必須修改db_files參數值,然后重啟數據庫。
而修改db_files參數值,還必須明確另一個參數的值,那就是存在於控制文件中的 maxdatafiles。

1. 查看系統限制db_files數,默認為200
show parameter db_files

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_files integer 200

--查看系統現有多少個文件數
select count(1) from dba_data_files;

2. 直接修改控制文件參數
sqlplus / as sysdba
alter system set db_files=1000 scope=spfile;
shutdown immediate;
startup;

注:rac下最好兩台主機都執行下

3. 再次查看 db_files參數,變為1000即可


##############################################################
以下是查看控制文件參數的方法:
查看控制文件中的maxdatafiles值可以通過創建控制文件的追蹤文件來查看

--備份控制文件到trace
alter database backup controlfile to trace;
在udump目錄下,找到最新的追蹤文件,即為新生成的控制文件的追蹤文件。
在10g之前還有,bdump、cdump、udump,
在11g里統一放在了 oracle/diag/rdbms/orcl/orcl 里了

--查看日志文件位置
show parameter dump_dest

查看 cat xxx.trc | grep MAXDATAFILES
10G是 200, 11G默認為啥是100,但db_filse是200, 搞不懂


-----------------------------------------------------
--查看控制文件位置
show parameter spfile

--備份一份控制文件
create pfile='/home/oracle/db.ora' from spfile;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM