汇总oracle的几个问题及解决方案


ora-12514的错误的原因有很多。但无外乎这几种:
1)、 ORA-12541: TNS: 没有监听器  
显而易见,服务器端的监听器没有启动,另外检查客户端IP地址或端口填写是否正确。启动监听器:  
$ lsnrctl start  
或  
C:lsnrctl start  
2)、 ORA-12154: TNS: 无法处理服务名  
检查输入的服务名与配置的服务名是否一致。另外注意生成的本地服务名文件(Windows下如D:oracleora92networkadmin tnsnames.ora,Linux/Unix下/network/admin/tnsnames.ora)里每项服务的首 行服务名称前不能有空格。  


3)、 ORA-12514: TNS: 监听进程不能解析在连接描述符中给出的SERVICE_NAME  


打开Net Manager,选中服务名称,检查服务标识栏里的服务名输入是否正确。该服务名必须与服务器端监听器配置的全局数据库名一致。同时检查sqlnet.ora,例如如果想要采用简便连接方式连接就需要在NAMES.DIRECTORY_PATH参数中添加EZCONNECT。
4)、Ora-12514:TNS:监听程序当前无法识别链接描述符中请求的服务  
该问题是由于缺少监听器的SID_LIST描述项引起的,采用netca进行配置的时候经常会遇到该问题,listener.ora示例如下


SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/oracle/product/9.2.0.4)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = SAMPLE.COM)
(ORACLE_HOME = /opt/oracle/product/9.2.0.4)
(SID_NAME = SAMPLE)
))


LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = tcy.com)(PORT = 1521))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)))


原文:http://blog.csdn.net/zhanghai412/article/details/7947460

ORA-01034: ORACLE not available


解决方法一:
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
进程 ID: 0
会话 ID: 0 序列号: 0
因为这个小小的错误,折腾了我好几个小时,特记录如下。
上网搜索了下解决方案,如下:
sqlplus "sys/password as sysdba"
连接成功,提示"已连接到空闲例程"
SQL> startup
ORACLE 例程已经启动。
Total System Global Area  535662592 bytes
Fixed Size                  1375792 bytes
Variable Size             293601744 bytes
Database Buffers          234881024 bytes
Redo Buffers                5804032 bytes
数据库装载完毕。
ORA-03113: 通信通道的文件结尾
进程 ID: 5412
会话 ID: 5 序列号: 5
出现一个新错误:ORA-03113: 通信通道的文件结尾;分析可能由于昨晚数据库强制关闭,导致文件状态可能不一致,因为正常关闭数据库会同步校验各文件,使得重新启动的时候文件时间点一致。
找到解决方案如下:
SQL> conn / as sysdba
已连接到空闲例程。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area  535662592 bytes
Fixed Size                  1375792 bytes
Variable Size             293601744 bytes
Database Buffers          234881024 bytes
Redo Buffers                5804032 bytes
数据库装载完毕。
SQL> select * from v$log;
    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC
---------- ---------- ---------- ---------- ---------- ---------- ---
STATUS           FIRST_CHANGE# FIRST_TIME     NEXT_CHANGE# NEXT_TIME
---------------- ------------- -------------- ------------ -------------
         1          1        340   52428800        512          1 NO
INACTIVE               8474486 02-4月 -11          8522856 02-4月 -11
         3          1        342   52428800        512          1 NO
INACTIVE               8555222 06-4月 -11          8565162 11-4月 -11
         2          1        343   52428800        512          1 NO
CURRENT                8565162 11-4月 -11       2.8147E+14
SQL> alter database open resetlogs
  2  ;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效
SQL> recover database until time '2011-04-11 12:12:12'
完成介质恢复。
SQL> alter database open resetlogs;
数据库已更改。
SQL> shutdown
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area  535662592 bytes
Fixed Size                  1375792 bytes
Variable Size             293601744 bytes
Database Buffers          234881024 bytes
Redo Buffers                5804032 bytes
数据库装载完毕。
数据库已经打开。








解决方法:二




在试图登录pl/sql时,输入用户名(system/pwd)后,Oracle报告下列错误:
ERROR:
ORA-27101 Shared memory realm does not exist
ORA-01034 ORACLE not available &<60;




查阅了相关
ORA-27101 Shared memory realm does not exist
ORA-01034 ORACLE not available &<60;
的说明,解释为ORACLE_HOME或者ORACLE_SID设置不正确。
但检查bash_profile以后没有发现错误;
錯誤點,沒有開啟oracle服務;
解決辦法,直接開啟oracle相關數據庫的服務;
或按照下面的步驟操作:
lsnrctl start
sqlplus '/as sysdba'
sql> startup
emctl start dbconsole
isqlplusctl start

你可能感兴趣的:(oracle,数据库)