Oracle 数据库中 DB_FILES 定义了数据库中数据文件的个数,如果创建数据库文件时超过DB_FILES 定义的值就会报 ORA-00059 这个错误。
DB_FILES参数值,默认200,所以在默认情况下,数据库的最大大小,大约是200*30G大小,此参数不做修改没关系。但当数据量大于此范围后,就需要做相应调整。以下操作是在11G环境中进行的。当然,在11g以上环境可在PDB级别操作。主备库的环境中,应具有相同的参数值。
此参数,重启数据库后生效。RAC实例需全部重启。
那么如何解决这个 ORA-00059 问题呢,请参考以下。
01 查看参数值
首先我们通过SQL查询出目前DB_FILES 参数值是多少。一般Oracle默认值是200,当然你可以修改的更大一点,
SQL> show parameter db_files;
NAME TYPE VALUE
------------------------------------ ------------ ------------------------------
db_files integer 200
02 修改参数值
修改 DB_FILES 的默认值 根据实际情况调整 DB_FILES 需要的值,这里举例设置成600,DB_FILES 生效需要重启数据库实例。
1 单机环境修改步骤
1 修改 DB_FILES 参数值
SQL> alter system set db_files=600 scope=spfile;
2 关闭数据库
SQL> shutdown immediate
关闭过程需要一段时间,等执行完成后,再执行第3步。
3 重启数据库
SQL> startup
等待命令执行成功,服务正式启动。
4 检查参数值
检查修改后的 DB_FILES 值
SQL> show parameter db_files;
单机Oracle环境修改 DB_FILES 值完成。
2 RAC 环境修改步骤
1 修改 DB_FILES 参数值
在第一个节点执行如下命令(第二个节点也可以)。
SQL> alter system set db_files=600 scope=spfile sid='*';
这里sid=’*’是指在所有实例上生效。
2 关闭数据库
这里,在第一个节点上关闭数据库。
SQL> shutdown immediate;
关闭过程需要一段时间,等执行完成后在执行第3步。
3 重启数据库
SQL> startup
等待命令执行成功,服务正式启动。
4 检查参数值
修改后的 DB_FILES 值
SQL> show parameter db_files;
RAC环境中该节点 DB_FILES 值完成。
注:rac环境中,停止监听的命令一般都是在 grid 帐号下执行。