Oracle常见错误总结

来源:互联网 发布:淘宝网店加盟电话 编辑:程序博客网 时间:2024/05/17 00:59
最近多次用到Oracle,主要就是导入dmp文件,然后将文件读出来并写进csv文件。在这过程中出现了一系列的问题,每次都几乎让我崩溃,一方面觉得Oracle用起来真麻烦,但是回过头想想,另一方面说明Oracle机制做的好,各种错误都能考虑到并给予相应的提示,而也正是提示让我找到了错误,并一次又一次的战胜错误,也学习到经验。
常见错误一:解决oracle数据库ORA-01081

SQL>startup

ORA-01081:cannot start already-running ORALCE - shut it down first

SQL>shutdown immediate

ORA-03135:connection lost contact

解决方法:

sqlplus "/ as sysdba"
sqlplus>shutdown abort;
sqlplus>startup;

常见问题二:ORA-03113数据库无法正常启动

连接数据库,启动数据库到mount状态

sqlplus / as sysdba

sql>startup mount

查看日志组状态

SQL> select * from v$log;

尝试归档日志

SQL> alter database open resetlogs 1;

使用不完全恢复数据库

SQL> alter database open resetlogs;

尝试失败之后,恢复数据库到指定时间点

SQL> recover database until time '2014-11-16'

关闭数据库

SQL> shutdown immediate

再次启动数据库,发现已经可以正常启动。

SQL> startup

常见问题三:ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist(参考文章:点击打开)

解决过程:

请输入用户名:  sys as sysdba
输入口令:
已连接到空闲例程。

SQL> show parameter;
ORA-01034: ORACLE not available
进程 ID: 0
会话 ID: 0 序列号: 0


SQL> select group#,sequence#,members,archived,status from v$log;
select group#,sequence#,members,archived,status from v$log
*
第 1 行出现错误:
ORA-01034: ORACLE not available
进程 ID: 0
会话 ID: 0 序列号: 0
-----

这个过程中我参考很多资料,无法解决

SQL> startup open hstestdb
ORACLE 例程已经启动。

Total System Global Area 6847938560 bytes
Fixed Size                  2188768 bytes
Variable Size            3422554656 bytes
Database Buffers         3405774848 bytes
Redo Buffers               17420288 bytes
数据库装载完毕。
ORA-03113: 通信通道的文件结尾
进程 ID: 2984
会话 ID: 5 序列号: 3

-----

还是报ORA-03113: 通信通道的文件结尾,究竟什么原因?

SQL> startup open hstestdb
ORACLE 例程已经启动。

Total System Global Area 6847938560 bytes
Fixed Size                  2188768 bytes
Variable Size            3422554656 bytes
Database Buffers         3405774848 bytes
Redo Buffers               17420288 bytes
数据库装载完毕。
ORA-03113: 通信通道的文件结尾
进程 ID: 2984
会话 ID: 5 序列号: 3


SQL> exit
从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断

C:\Documents and Settings\Administrator>set oracle_sid=hstestdb

C:\Documents and Settings\Administrator>sqlplus "/as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 3月 18 15:37:02 2013

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

ERROR:
ORA-01031: insufficient privileges


请输入用户名:  sys as  sysdba
输入口令:
已连接到空闲例程。

SQL> stop
SP2-0042: 未知命令 "stop" - 其余行忽略。
SQL> shutdown immediate;
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area 6847938560 bytes
Fixed Size                  2188768 bytes
Variable Size            3422554656 bytes
Database Buffers         3405774848 bytes
Redo Buffers               17420288 bytes
数据库装载完毕。
SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC
---------- ---------- ---------- ---------- ---------- ---------- ---
STATUS           FIRST_CHANGE# FIRST_TIME     NEXT_CHANGE# NEXT_TIME
---------------- ------------- -------------- ------------ --------------
         1          1       3823   52428800        512          1 NO
CURRENT               34344047 12-3月 -13       2.8147E+14

         3          1       3822   52428800        512          1 NO
INACTIVE              34327500 12-3月 -13         34344047 12-3月 -13

         2          1       3821   52428800        512          1 NO
INACTIVE              34324562 12-3月 -13         34327500 12-3月 -13


SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-03113: 通信通道的文件结尾
进程 ID: 2592
会话 ID: 5 序列号: 7


SQL> alter database archivelog;
ERROR:
ORA-03114: 未连接到 ORACLE


SQL> select * from v$log;
ERROR:
ORA-03114: 未连接到 ORACLE


SQL> conn sys/sys as sysdba
已连接到空闲例程。
SQL> select * from v$log;
select * from v$log
*
第 1 行出现错误:
ORA-01034: ORACLE not available
进程 ID: 0
会话 ID: 0 序列号: 0


SQL> archive log list;
ORA-01012: not logged on
SQL> exit
已断开连接

C:\Documents and Settings\Administrator>lsnrctl status

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 18-3月 -2013 15:4
4:24

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hserptest)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Produ
ction
启动日期                  18-3月 -2013 15:30:27
正常运行时间              0 天 0 小时 14 分 0 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          D:\app\Administrator\product\11.2.0\dbhome_1\network\a
dmin\listener.ora
监听程序日志文件          d:\app\administrator\diag\tnslsnr\hserptest\listener\a
lert\log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hserptest)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
  实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 2 个处理程序...
服务 "hstestdb" 包含 1 个实例。
  实例 "hstestdb", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功

C:\Documents and Settings\Administrator>sqlplus "/as sysdba"

SQL*Plus: Release 11.2.0.1.0 Production on 星期一 3月 18 15:45:23 2013

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

ERROR:
ORA-01031: insufficient privileges


请输入用户名:  sys/sys as sysdba
已连接到空闲例程。

SQL> select *  from v$log;
select *  from v$log
*
第 1 行出现错误:
ORA-01034: ORACLE not available
进程 ID: 0
会话 ID: 0 序列号: 0


SQL> alter  database open resetlog;
alter  database open resetlog
*
第 1 行出现错误:
ORA-01034: ORACLE not available
进程 ID: 0
会话 ID: 0 序列号: 0


SQL> alter  database open resetlogs;
alter  database open resetlogs
*
第 1 行出现错误:
ORA-01034: ORACLE not available
进程 ID: 0
会话 ID: 0 序列号: 0


SQL> shutdown immedate;
SP2-0717: 非法的 SHUTDOWN 选项
SQL> shutdown immediate
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area 6847938560 bytes
Fixed Size                  2188768 bytes
Variable Size            3422554656 bytes
Database Buffers         3405774848 bytes
Redo Buffers               17420288 bytes
数据库装载完毕。

SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效


SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC
---------- ---------- ---------- ---------- ---------- ---------- ---
STATUS           FIRST_CHANGE# FIRST_TIME     NEXT_CHANGE# NEXT_TIME
---------------- ------------- -------------- ------------ --------------
         1          1       3823   52428800        512          1 NO
CURRENT               34344047 12-3月 -13       2.8147E+14

         3          1       3822   52428800        512          1 NO
INACTIVE              34327500 12-3月 -13         34344047 12-3月 -13

         2          1       3821   52428800        512          1 NO
INACTIVE              34324562 12-3月 -13         34327500 12-3月 -13


SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01139: RESETLOGS 选项仅在不完全数据库恢复后有效



SQL>
SQL> recover database until time '2013-03-01 12:12:12';
完成介质恢复。

---

我恢复3月1日的
SQL> alter database open resetlogs;

数据库已更改。

SQL> shutdown
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 6847938560 bytes
Fixed Size                  2188768 bytes
Variable Size            3422554656 bytes
Database Buffers         3405774848 bytes
Redo Buffers               17420288 bytes
数据库装载完毕。
数据库已经打开。


0 0
原创粉丝点击