文档解释
ORA-02789: Maximum number of files reached
Cause: The maximum number of files that can be used for asynchronous I/O has been reached.
Action: Shut down the servers and re-initialize the package with a higher number.
。
官方解释
这是由于Oracle数据库在操作系统上打开文件已达到当前操作系统和Oracle数据库级别之和,以至于不能打开其他文件。此时,操作系统必须增加一个参数来增加可打开文件的数量,或者某些文件必须被关闭,以允许其他文件打开。
常见案例
1.当使用高级版本的Oracle数据库(例如12c,18c,19c)时,可以观察到此错误。
2.该错误可能会因为某些意外的文件关闭而出现,因为操作系统无法继续处理新请求,因为所有已打开文件的数量已达到当前操作系统和Oracle数据库限制。
正常处理方法及步骤
1.在操作系统中提升可分配的文件句柄数量。
2.检查当前文件数是否较大,如果是,可以使用 Oracle 命令SHUTDOWN IMMEDIATE关闭该文件,以达到释放文件数的目的。
3.确认操作系统中的 Ulimit 的限制,并适当调整 ulimit 的值,以避免该错误的发生。
4.调整参数MY_OPEN_FILES的值,符合具体环境需求。(默认为10)