那天遇到一个数据库无法启动,看到alertlog中主要是ora 600和[2662]的报错:

SQL> startupORACLE instance started.Total System Global Area 1076850392 bytesFixed Size 736984 bytesVariable Size 536870912 bytesDatabase Buffers 536870912 bytesRedo Buffers 2371584 bytesDatabasemounted.ORA-01092: ORACLE instance terminated. Disconnection forced
SQL>

其中alertlog中报错:

Completed: ALTER DATABASE MOUNT
Thu Jan 22 13:05:08 2009
ALTER DATABASE OPEN
Thu Jan 22 13:05:09 2009
Beginning crash recovery of 1 threads
Thu Jan 22 13:05:09 2009
Started first pass scan
Thu Jan 22 13:05:09 2009
Completed first pass scan
0 redo blocks read, 0 data blocks need recovery
Thu Jan 22 13:05:09 2009
Started recovery at
Thread 1: logseq 2, block 3, scn 0.43536037
Recovery of Online Redo Log: Thread 1 Group 1 Seq 2 Reading mem 0
Mem# 0 errs 0: /oracle/oradata/ora9i/redo01.log
Thu Jan 22 13:05:09 2009
Ended recovery at
Thread 1: logseq 2, block 3, scn 0.43556038
0 data blocks read, 0 data blocks written, 0 redo blocks read
Crash recovery completed successfully
Thu Jan 22 13:05:10 2009
Thread 1 advanced to log sequence 3
Thread 1 opened at log sequence 3
Current log# 2 seq# 3 mem# 0: /oracle/oradata/ora9i/redo02.log
Successful open of redo thread 1.
Thu Jan 22 13:05:10 2009
SMON: enabling cache recovery
Thu Jan 22 13:05:10 2009
Errors in file /oracle/admin/ora9i/udump/ora9i_ora_12968.trc:
ORA-00600: internal error code, arguments: [2662], [0], [43556042], [261], [2396789971], [4194729], ,

遇到ora-600和2662的问题,我们一般有2种方法解决:

一种是在open的状态下:用alter session set events 'IMMEDIATE trace name adjust_scn level n';
一种是在mount状态下:用alter session set events '10015 trace name adjust_scn level n';

其中n的运算如下:
根据alertlog中的报错:
ORA-00600: internal error code, arguments: [2662], [0], [43556042], [261], [2396789971], [4194729], ,
这边,我们把2662后的参数[2662],[a],,[c],[d],[e]…
[a] Current SCN WRAP
Current SCN BASE
[c] dependent SCN WRAP
[d] dependent SCN BASE
[e] Where present this is the DBA where the dependent SCN came from.

其中scn可以用十六进制表示0Xffff.ffffffff。为了方便,oracle把前面的4个字节表示scn wrap,后面的8个字节表示scn base。scn最低值是0X0000.00000000,最高值是0Xffff.ffffffff。高位是scn wrap,低位是scn base。根据报错,我们需要把scn增进到dependent SCN WRAP为261。

而我们增进的level n,n是表示1g(即1024×1024×1024),也就是说,调整是以g为单位进行的。

而高位的scn wrap的一个1,即0X0001.00000000=0X000100000000(去掉便于分隔高低位的点)=100000000000000000000000000000000=2^32(即2乘以10的32次方)=4×2^30(4乘以2的30次方)=4×(1024×1024×1024)=4g。因此我们要增加到的scn,根据level n,n表示g,调整的level为4×261。即1044,再比这个数字大一些,我们可以设置成1045,1047都可以。

尝试用上述的方法去解决。由于是mount状态,因此只能用10015 trace name的adjust scn:
其中的隐含参数:

cat initora9i.ora
……
*.user_dump_dest='/oracle/admin/ora9i/udump'
*._allow_resetlogs_corruption=TRUE
"initora9i.ora" 47 lines, 1465 characters
SQL> startup nomount pfile='?/dbs/initora9i.ora'ORACLE instance started.Total System Global Area 1076850392 bytesFixed Size 736984 bytesVariable Size 536870912 bytesDatabaseBuffers 536870912 bytesRedo Buffers 2371584 bytesSQL> alter database mount;Database altered.SQL> alter session set events '10015 trace name ADJUST_SCN level 1045';Sessionaltered.SQL> alter database open;alter database open
*ERROR at line 1:ORA-01092: ORACLE instance terminated. Disconnection forced

alertlog中:

Thu Jan 22 13:27:56 2009
SMON: enabling cache recovery
Thu Jan 22 13:27:56 2009
Errors in file /oracle/admin/ora9i/udump/ora9i_ora_13322.trc:
ORA-00600: internal error code, arguments: [2662], [0], [43576046], [261], [2396789971], [4194729], ,
Thu Jan 22 13:28:37 2009
Errors in file /oracle/admin/ora9i/udump/ora9i_ora_13322.trc:
ORA-00704: bootstrap process failure
ORA-00600: internal error code, arguments: [2662], [0], [43576046], [261], [2396789971], [4194729], ,
Thu Jan 22 13:28:37 2009
Error 704 happened during db open, shutting down database
USER: terminating instance due to error 704
Instance terminated by USER, pid = 13322
ORA-1092 signalled during: alter database open...

看到报错信息中的scn还是没有到达目标scn。版本是9i的,应该不会限制啊,根据在某些10g版本中需要另外一个隐含参数_allow_error_simulation,才能增进scn,继续修改初始化参数,尝试启动:

cat initora9i.ora
……
*.user_dump_dest='/oracle/admin/ora9i/udump'
*._allow_resetlogs_corruption=TRUE
*._allow_error_simulation=TRUE
"initora9i.ora" 47 lines, 1465 characters
SQL> startup mount pfile='?/dbs/initora9i.ora'ORACLE instance started.Total System Global Area 1076850392 bytesFixed Size 736984 bytesVariable Size 536870912 bytesDatabase Buffers536870912 bytesRedo Buffers 2371584 bytesDatabase mounted.SQL> alter session set events '10015 trace name ADJUST_SCN level 20000';Session altered.SQL> alter database open;

alertlog中报错依旧:

Ended recovery at
Thread 1: logseq 5, block 3, scn 0.43616049
0 data blocks read, 0 data blocks written, 1 redo blocks read
Crash recovery completed successfully
Thu Jan 22 13:41:49 2009
Thread 1 advanced to log sequence 6
Thread 1 opened at log sequence 6
Current log# 2 seq# 6 mem# 0: /oracle/oradata/ora9i/redo02.log
Successful open of redo thread 1.
Thu Jan 22 13:41:49 2009
SMON: enabling cache recovery
Thu Jan 22 13:41:49 2009
Errors in file /oracle/admin/ora9i/udump/ora9i_ora_13660.trc:
ORA-00600: internal error code, arguments: [2662], [0], [43616053], [261], [2396789971], [4194729], ,

看来是不能用上述的方法了,小熊这个时候再次提出了一个隐含参数:_minimum_giga_scn,把该参数设置成1047再尝试启动:

cat initora9i.ora
……
*.user_dump_dest='/oracle/admin/ora9i/udump'
#*._allow_resetlogs_corruption=TRUE
*._allow_error_simulation=TRUE
*._minimum_giga_scn=1047
"initora9i.ora" 47 lines, 1465 characters
SQL> startup mount pfile='?/dbs/initora9i.ora'ORACLE instance started.Total System Global Area 1076850392 bytesFixed Size 736984 bytesVariable Size 536870912 bytesDatabase Buffers536870912 bytesRedo Buffers 2371584 bytesDatabase mounted.SQL> alter database open;Database altered.SQL>

数据库终于起来了!

查询了一下orafaq,这个参数是表示Minimum SCN to start with in 2^30 units ,2乘以10的三十次方,也就是1024×1024×1024,也就是g了。这个参数是oracle723就开始有了,表示最小scn的起始值1g,我们这边的scn wrap有261,因此需要4×261,再比这个稍微大一些,就得出1047了。

总结:在一般情况下,遇到ora-600,2662的报错,可以通过10015的adjust scn起来,但是遇到Current SCN WRAP和dependent SCN WRAP相距比较远,通过上述方法起不来,我们可以通过隐含参数_minimum_giga_scn直接设置最小scn,启动数据库。

转载于:https://my.oschina.net/u/3635497/blog/3074402

Oracle:用_minimum_giga_scn 解决无法启动的数据库相关推荐

  1. CPU值满resmgr:cpu quantum造成的Oracle等待事件解决办法

    cpu quantum造成的Oracle等待事件解决办法 不少接触数据库的朋友有一个困扰已久的问题--resmgr:cpu quantum.已经遇过不少次这种CPU突然全绿的情况,通过隐含参数屏蔽了一 ...

  2. 解决win10安装MySQL数据库出现服务无法启动的问题

    解决win10安装MySQL数据库出现服务无法启动的问题 参考文章: (1)解决win10安装MySQL数据库出现服务无法启动的问题 (2)https://www.cnblogs.com/jyjia/ ...

  3. oracle 打开 ctl,Oracle 19c 随系统systemctl启动数据库

    Oracle 19c 随系统systemctl启动数据库 一. 修改oratab文件 [root@adg19c ~]# grep woo /etc/oratab woo:/DBSoft/oracle/ ...

  4. oracle数据库异常---SP2-1503: 无法初始化 Oracle 调用界面 SP2-1503: 无法初始化 Oracle 问题的解决办法

    oracle数据库异常---SP2-1503: 无法初始化 Oracle 调用界面 SP2-1503: 无法初始化 Oracle 问题的解决办法 win7 下   cmd  运行   sqlplus  ...

  5. oracle dblink 20001,解决ORA-02021: 不允许对远程数据库进行 DDL 操作下面通过DBLINK调用远程过程来执行这样的操作。...

    一般情况下,当我们直接truncate一个远程的表的时候,通常会返回如下的错误信息: ORA-02021: DDL operations are not allowed on a remote dat ...

  6. 解决PHPStudy8.1.1 mySQL服务启动失败 数据库工具报错卡死

    项目场景: 最近在学PHP,学到mySQL的时候我掏出了我积满灰尘的PHPStudy,但是版本太低了,就去下了个新版: 问题描述: 然后就是mySQL服务无法启动,老倒霉蛋了,一点都不惊讶甚至觉得就该 ...

  7. 在Windows 7下安装Oracle 11g的解决方法

    在Windows 7下安装Oracle 11g的解决方法 前不久卸载掉了自己的Windows Vista系统,装上了Windows7 旗舰版,在装机过程中也遇到了很多问题,有些问题是自己不曾遇到过的, ...

  8. Oracle中文乱码解决办法总结

    AMERICAN_AMERICA.WE8ISO8859P1,这个字符编码是西欧字符编码,对应于.Net的就是iso-8859-1字符编码,所以只需要改到系统的默认字符编码就行了. 解决方法: (1) ...

  9. Linux x86主机运行天数是是24.8的倍数都有可能引发oracle bug及解决方法

    问题是因后台无法登录发现该BUG的,连PLSQL及服务器上的oracle DBA也无法登录oracle 查看系统相关资源: 负载高,系统层的CPU使用高, 解决方法: 重启服务器,问题解决 通过查找原 ...

最新文章

  1. Eureka 注册中心/服务发现框架
  2. python调用shell命令-在Python中执行shell命令的6种方法,你都知道吗?
  3. 拒绝干扰 解决Wi-Fi的最大问题《转》
  4. 【PAT乙级】1086 就不告诉你 (15 分)
  5. python数组随机分组_Python实用黑科技——以某个字段进行分组
  6. Shell中I/O重定向的用法笔记
  7. [渝粤教育] 西南科技大学 计算机网络应用基础 在线考试复习资料2021版(1)
  8. CPU使用率的查看以及性能分析(perf top/record/report)
  9. centos 7 mysql 源码安装_centos7 mysql5.7.17源码安装
  10. 苹果se2_搜狗输入法适配苹果se2,给用户带来新玩法。
  11. 【2(2N+1)魔方阵 】
  12. Java之IO,BIO,NIO,AIO知多少?【请按正文网址阅读】
  13. js注释过后依然起作用
  14. maven自动部署到tomcat9
  15. [RO]ZYZ角的旋转矩阵及角度计算 ZYZ Angle
  16. 鸿蒙HarmonyOS版抖音(含源码)
  17. Hibernate主键生成策略总结
  18. 防止被运营商DNS劫持 作者:zzc
  19. [渝粤教育] 西安交通大学 工程热力学 参考 资料
  20. Windows10系统下CUDA和cuDNN安装教程

热门文章

  1. 《TensorFlow语音识别实战》简介
  2. python电子相册制作代码_PR2018制作电子相册
  3. 知乎好问 | 数据分析到底需要哪些能力?
  4. vux 显示 html,基于 VUX 构建移动端项目
  5. 你瞧不起的ERP,还能这么改造
  6. 25部禁片你看过几部
  7. 被职场PUA了...
  8. 【转】ARM9 2410移植之ARM中断原理, 中断嵌套的误区,中断号的怎么来的
  9. 程序员,我心中永恒的痛……
  10. python用hist参数解读