DB服务器重启之后再连接报错如下:

原因是重启之后listener.ora被还原成初始文件,sid被清空。

解决步骤:

1、查看监听服务和数据库服务:

由此找到listener.ora文件的路径:D:\oracle\product\10.2.0\db_2\network\ADMIN

修改如下(红色标记是添加部分):

# listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_2\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oracle\product\10.2.0\db_2)
      (PROGRAM = extproc)
    )
         (SID_DESC =
                (GLOBAL_DBNAME = datastg)
                (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
                (SID_NAME = datastg)
    )
 )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = inspur-73507df8)(PORT = 1521))
    )
  )

重启服务,用plsql连接发现报错ORA-01034和ORA-27101
2、报这个错误是因为,虽然DB服务开启,但是没有启动实例,解决办法:打开cmd输入

set ORACLE_SID=datastg

设置要连接的sid。再输入

sqlplus  /nolog

conn / as sysdba;

连接数据库,然后输入startup启动数据库的实例,之后就可以用plsql正常连接。