Oracle系列问题解决

        前几天,突然报了数据库的错误,原先也有过是因为Oracle数据的服务没起,这次看来一下相关的服务都是起着的,所以就用PL/SQL连接一下,结果报出个这样的错误“ORA-01033: ORACLE initialization or shutdown in progress Process ID:0 Session ID:0 Serialnumber:0”。

       当然出现这种错误先查一下原因是什么,网上说的原因比较多结合自己的情况最可能的是两种:1、断电,就是Oracle运行过程中没有关闭Oracle就电脑前关闭了。2、Oracle启动需要装载一些配置信息相关的文件可能出错了。这个问题的解决办法网上的相关文章很多看了几篇下来大概都是一样的流程,主要就是恢复一下出错的文件。于是就开始在自己的本上操作了,所有的都是在dos窗口下进行的,在之前几次问题的锻炼下已经不惧怕这个黑窗口了。

        首先是以超级管理员的身份连接到数据,然后开始如下的操作:

<span style="font-size:24px;">   //首先停止数据库的服务
SQL>shutdown immediate   
   //上个命令执行完毕后,重写启动,等待结果主要是看过程中那个文件会报错
SQL>startup</span>

按照正常的流程这个命令执行完毕后会有一行如下的提示:“ORA-01157: 无法标识/锁定数据文件 N –请参与DBWR跟踪文件”,这里的N就是出问题的文件标识,如果有如上的提醒继续执行如下的命令

<span style="font-size:24px;">   //首先再次停止服务
SQL> shutdown immediate
   //恢复上面提示的出错文件
SQL>startup mount</span>
<pre name="code" class="plain"><span style="font-size: 24px;">  </span><span style="font-size:24px;">//这里的N就是上面提示的标识</span>
SQL>recover datafile N

 

        再次停止,然后重启,不出现ORA-01157的错误提示就是没有问题了。如果问题就这样解决了很简单,但是自己的没有出现ORA-01157的错误提示,所有没有办法找到有错误的文件进行恢复,自己的出现了如下的错误提示“ORA-600 kcratr_nab_less_than_odr”,只能先解决这个问题才能继续,于是开始踏上了解决ORA-600的征程。

        首先了解一下这是个什么错误,网上说这个错误不是自己oracle的问题,而是oracle软件本身的一个bug,因为使用的版本不稳定,呵呵稳定的我也用不起啊。自己查到的解决办法是重新建立控制文件,过程如下:

<span style="font-size:24px;">   //这个命令执行完后会在相应的D盘下生成1.txt文件,
SQL> ALTERDATABASE BACKUP CONTROLFILE TO TRACE AS 'D:/1.TXT';
   //关闭数据库
SQL> SHUTDOWNIMMEDIATE;
   //重新启动
SQL> STARTUPNOMOUNT;
   //开始重新建立,
SQL> CREATE CONTROLFILE REUSE DATABASE"ORCL" NORESETLOGS NOARCHIVELOG
 2      MAXLOGFILES 16
 3      MAXLOGMEMBERS 3
 4      MAXDATAFILES 100
 5      MAXINSTANCES 8
 6      MAXLOGHISTORY 18688
 7  LOGFILE
 8    GROUP 1 'D:\ ORCL\LOG\REDO01.LOG'  SIZE 50M BLOCKSIZE 512,
 9    GROUP 2 'D:\ ORCL\LOG\REDO02.LOG'  SIZE 50M BLOCKSIZE 512,
 10   GROUP 3 'D:\ ORCL \LOG\REDO03.LOG' SIZE 50M BLOCKSIZE 512
 11 DATAFILE
 12   'D:\ ORCL \DATA\SYSTEM01.DBF',
 13   'D:\ ORCL \DATA\SYSAUX01.DBF',
 14   'D:\DBDMS\DATA\SYSTEM02.DBF'
 15 CHARACTER SET ZHS16GBK
 16  ;
 
SQL> RECOVER DATABASE ;
SQL> ALTER DATABASE OPEN;</span>

        以上命令执行时注意两点:1、CREATECONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  NOARCHIVELOG,命令中引号内为自己在安装oracle时的名字,可通过查看服务确定。2、7行到15行之间的内容应该和在D盘生产1.txt文件对应部分相同。


        完毕后使用PL/SQL登录连接,呵呵又出现了新的问题“ORA-01589: 要打开数据库则必须使用 RESETLOGS 或NORESETLOGS”,这个问题相对容易解决,过程如下:

<span style="font-size:24px;">SQL> alter database open resetlogs;
SQL> recover database using backupcontrolfile;
   //提示完成介质恢复。
SQL> alter database open resetlogs;
   //提示数据库已更改。</span>

         再次使用PL/SQL连接,终于OK了!

小结

         这次出现的问题最终是没有确定下来原因,不过对oracle的一些命令和一些原理有了进一步的了解,以后再遇到问题应该能够淡定的对待!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值