服务器重启后,发现报了ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
问题:Oracle主服务和监听器服务已经启动,使用SQL Plus能够正常连接,使用PL SQL Developer连接报次错误:ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
进到服务器查看oracle的服务,发现有两个服务,奇怪的是两个服务都启动了,但是在任务管理器的进程中只能看到其中一个正在运行,由于我们程序用的服务是ORCL,所以全部连接不上
进程里面只有一个
解决步骤:
第一步:查看注册表
- 按Win+R,输入regedit,
- 进入到注册表然后进入HKEY_LOCAL_MACHONE\SOFTWARE\ORACLE然后点击KEY_OraDb11g_home1,
- 如下 一看,呵呵,ORACLE_SID的数据值什么时候变成了lingjingHT(不再使用的那个实例名)了,电脑上的服务的列表中明明是当初安装时自己命名的oracle11g啊,(下图一)
- 然后把它改了回来。ORACLE_SID,设置为你database SID。(下图二)
修改后的SID如下图:
修改完注册表重启了oracle 数据库服务器,发现还是一样的问题
第二步:修改监听配置文件
- 结束 OracleOraDb11g_home2TNSListener 进程;
- 打开D:\DevInstall\Oracle11gR2\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN(不同机器目录可能不同)目录下的文件,添加框框部分;(添加错误的话无法启动OracleOraDb11g_home2TNSListener服务)
- 启动OracleOraDb11g_home2TNSListener服务后成功连接。
红色框框部分为新增
添加好服务之后重新启动服务,(有的人可能到这一步就可以正常连接了)
第三步:sqlplus 连接数据库,出现连接到空闲例程
此处的问题和我的数据库有两个服务有关,因为切换到了现在的服务上
ORA-00837: Specified value of MEMORY_TARGET greater than MEMORY_MAX_TARGET
解决方法:如下,我只执行了
【startup pfile='E:\app\Administrator\admin\orcl\pfile\.10192012163956';】
数据库就恢复正常了
SQL> startup;
ORA-00837: Specified value of MEMORY_TARGET greater than MEMORY_MAX_TARGET
SQL> startup pfile='E:\app\Administrator\admin\orcl\pfile\.10192012163956';
ORACLE 例程已经启动。
Total System Global Area 3423965184 bytes
Fixed Size 2180544 bytes
Variable Size 1862273600 bytes
Database Buffers 1543503872 bytes
Redo Buffers 16007168 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter sga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 3280M
sga_target big integer 0
SQL> show parameter memory
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 3280M
memory_target big integer 3280M
shared_memory_address integer 0
SQL> create spfile from pfile;
create spfile from pfile
*
第 1 行出现错误:
ORA-01078: 处理系统参数失败
LRM-00109: could not open parameter file
'E:\APP\Administrator\PRODUCT\11.2.0\DBHOME_1\DATABASE\'
SQL> create spfile from memory;
文件已创建。
SQL> shutdown abort
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 3423965184 bytes
Fixed Size 2180544 bytes
Variable Size 1879050816 bytes
Database Buffers 1526726656 bytes
Redo Buffers 16007168 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter sga;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 3280M
sga_target big integer 0
SQL> show parameter memory;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
memory_max_target big integer 3280M
memory_target big integer 3280M
shared_memory_address integer 0
SQL> select count(1) from v$session;
COUNT(1)
----------
31
SQL>