Oracle主目录不兼容的解决方法(oracle主目录不兼容)

Oracle,有时候因为命令行版本的问题,会出现主目录不兼容的问题,直接导致Oracle停止服务,出现“ORA-12505 TNS: 没有找到指定的监听程序”,或者报错 “无法找到元数据 Repository”。这种情况下,可以通过改变主目录的方式,实现兼容性。

首先,我们先看看Oracle有哪些主目录:

1、ORACLE_BASE:最外层环境变量,Oracle全新环境中必不可少的默认目录,它是以“db_1”为命名的单一目录。

2、ORACLE_HOME:由ORACLE_BASE的成员组成的最重要的默认目录,它是以ORACLE_HOME_NAME作为命名的多级目录。

3、ORACLE_SID:ORACLE_HOME的子集,是一个名称,而不是一个实际的目录,它指向了实例所在的目录,如“db_1\WINDOWS\Sysdba”、“db_1\WINDOWS\oradata”等。

当我们遇到Oracle主目录不兼容的问题时,首先要做的就是检查当前的目录设置与实际的Oracle安装路径是否相同,如果目录实际情况和设置的不一致,就要通过修改系统环境变量ORACLE_BASE、 ORACLE_HOME和ORACLE_SID的方式,来改变主目录。

比如:假设要将ORACLE_BASE更改为新的路径D:\ora_db,不管实际文件存在与否都没有关系,要做的就是把这三个环境变量定义改成如下:

SET ORACLE_BASE= D:\ora_db

SET ORACLE_HOME = %ORACLE_BASE%\product\10.2.0

SET ORACLE_HOME_NAME=OraDb_10

接下来,我们可以运行一些sqlplus脚本,来检查oracle系统信息:

SQL>select name, value from V$Parameter where name = ‘db_name’

SQL>select name, value from V$Parameter where name = ‘db_name’

如果执行以上命令,没有出现ORA-12505错误,就说明设置已经成功。此时,数据库已经可以正常使用了。

当然,如果出现Oracle主目录不兼容的问题,也可以通过更改TNS文件的方式来解决,比如把TNS的文件地址改成刚才设置的新地址,就可以解决问题了。

总之,Oracle主目录不兼容的问题可以通过更改系统环境变量或者更改TNS文件的方式进行解决。


数据运维技术 » Oracle主目录不兼容的解决方法(oracle主目录不兼容)