Oracle常见错误总结

最近多次用到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
数据库装载完毕。
数据库已经打开。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UnknownBody

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值