ORA-27101: shared memory realm does not exist

文档解释

ORA-27101: shared memory realm does not exist

Cause: Unable to locate shared memory realm

Action: Verify that the realm is accessible

ORA-27101: shared memory realm does not exist 是一种Oracle数据库错误,代表指定的共享内存域不存在。

官方解释

ORA-27101 对于shared memory realm不存在这一状况,官方解释如下:

Oracle 无法启动一个进程,因为指定的共享内存域并不存在。确保 /dev/shm 已经挂载并且具有足够的空间。

常见案例

1. 运行pmon进程时发生ORA-27101

2. 使用expdp备份数据字典时发生ORA-27101

3. 用httpd备份数据库时发生ORA-27101

4. 尝试启动数据库监听器发生ORA-27101

一般处理方法及步骤

要正确处理ORA-27101,首先进行检查:

1. 检查/dev/shm空间是否充足,其次根据情况查看是哪个权限不够导致ORS-27101,进行修改后重试。

2. 数据库实例没有启动,可以使用“lsnrctl stat”查看下数据库的监听是否正常启动,如果报如下错误:”TNS-12541 : TNS: no listener”,表明监听没有启动;

3. 在出现ORA-27101错误时,检查$ORACLE_HOME/network/admin/listener.ora配置文件中的内容是否正确,比如服务名称,服务端口号是否符合要求等;

4. 使用SQLPLUS登录数据库;备份数据字典时,运行expdp时应检查expdp帐号是否有正确的权限及空间;

5. 若备份httpd时出现ORA-27101,则需要检查http服务器所在机器上有无安装Oracle客户端且配置正确,如果有,检查tnsnames.ora文件是否有对应服务名;

6. 检查/dev/shm是否正确挂载,可以使用mount -t tmpfs和df -h命令检查,如果没有挂载,可以使用mount -t tmpfs -o rw,nosuid,nodev,noexec,relatime,size=4g tmpfs /dev/shm 挂载/dev/shm解决该问题;

7. 在出现ORA-27101错误时,如果没有检查表空间,可以运行sqlplus检查表空间是否足够;

8. 数据库在访问目录时可以检查出ORA-27101,有可能出现这种情况是因为目录的硬链接文件不存在,这时需要重建硬链接文件解决该问题;

正确处理ORA-27101之后,数据库连接正常,可以执行SQL语句,查询数据等操作,便可以正常运行sql语句和查询数据。

你可能感兴趣的