系统装Oracle已经有一段时间了,今天打开Oracle在进行登录时出现了登录错误,如下:

     C:\Documents and Settings\Administrator>sqlplus

     Enter user-name:system

     Enter password:oracle

     error: ORA-01034: Oracle not available

    ORA-27101: shared memory realm does not exist

     这个错误百度一下,已经有好几个版本解答,但是大致都是一个错误,就是数据库实例没有启动。于是,我按照网上的解答进行了修改:

     C:\Documents and Settings\Administrator>sqlplus /nolog

     SQL>conn system/oracle as sysdba

     SQL>startup nomount

     SQL>alter database mount;

     SQL>alter database open;

     此后,用SQL plus或CMD命令以system登录,成功。

    总结:初步掌握了数据库登录报错的方法,原因有三。

     一、看Windows任务管理器里的进程一栏,找Oracle.exe的内存使用,如果您的内存使用仅为几十M,那么就说明数据库没有启动。启动后的数据库应为几百M;  

     二、看sqlnet.ora文件里的SQLNET.AUTHENTICATION_SERVICES和NAMES.DIRECTORY_PATH两行命令。命令分为如下:

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, HOSTNAME)
 

     三、看tnsnames.ora文件里是否有你的数据库实例。若没有,则添加上。如:

                 ORCL =
        (DESCRIPTION =
            (ADDRESS_LIST =
                   (ADDRESS = (PROTOCOL = TCP)(HOST = CHINA-8B0CE1E1C)(PORT = 1521))
             )
         (CONNECT_DATA =
               (SERVICE_NAME = orcl)
         )

    最后,不要忘记去服务里把OracleOraDb10g_home1TNSListener重新启动一下,才能生效。