数据库open报错ORA-01555: snapshot too old
原文博客链接地址:数据库open报错ORA-01555: snapshot too old
今天正在东莞蜜月的时候。一个学生说他管理的測试库出问题了,无法open,我们先来看看是什么问题:
Recovery of Online Redo Log: Thread 1 Group 4 Seq 4 Reading mem 0 |
从上面的错误来看,该数据库之所以open失败,是因为Oracle在bootstrap阶段运行递归SQL时出现ora-01555错误,
这样bootstrap过程无法继续下去。也就导致数据库无法open。我们能够看到报错的SQL语句例如以下:
select ctime, mtime, stime from obj$ where obj# = :1
这是非常熟悉的一个SQL,通过10046 trace跟踪Oracle open的过程你会发现该SQL。
针对该错误。也许有人以为是回滚段的问题,实际上并非。这样的情况下推进下SCN 就能够非常顺利的把数据库open。
可是这里有个问题:该兄弟的数据库是Oracle 11.2.0.4。已经不支持传统的10015 event的方式了。
以下我们通过oradebug 来解决该问题:
SQL> conn /as sysdba |
这里简单解释一下。4 为长度,0x859AFA是16进制。我在原来的v$datafile_header.checkpoint_change#的基础之上
加上上1000000得到该值。
我们能够看到。顺利打开了数据库。
最后再出观察下alert log发现竟然有ora-00600 4194错误。
Thu Jun 19 14:48:43 2014 |
这是一个很常见的错误了,最简单的方式就是通过重建undo或处理回滚段来解决,这里我们用最简单的方式:
改动undo_management=manual |
重建undo之后,再停库,改动undo參数就可以顺利打开数据库,例如以下:
SQL> create spfile from pfile='/tmp/1.ora'; File created. SQL> startup mount |
处理完毕之后alert log不再抛出不论什么错误。
数据库open报错ORA-01555: snapshot too old的更多相关文章
- 11gR2数据库日志报错:Fatal NI connect error 12170、
11gR2数据库日志报错:Fatal NI connect error 12170.TNS-12535.TNS-00505 [问题点数:100分,结帖人MarkIII] 不显示 ...
- 4、Oracle 数据库 startup 报错:ORA-27102: out of memory
1.数据库启动报错: ORA-: out of memory SQL> startup pfile='/db/oracle/init.ora'; ORA-: out of memory Linu ...
- 导入MySQL测试数据库employee报错
导入MySQL测试数据库employee 报错 下载地址:https://launchpad.net/test-db/ 上传解压: [root@001 ~]# tar xf employees_db- ...
- 同时操作两个数据库:报错Illegal attempt to associate a collection with two open sessions
今天我在一个操作两个数据库的SSH里 同时插入1条数据 报错 Illegal attempt to associate a collection with two open sessions 在这里有 ...
- 无法删除MySql数据库,报错1010 error dropping
环境:MySQL.Navicat 8 操作:Drop database testDB 报错:1010 error dropping database 解决方法: ps -ef | g ...
- 修改oracle数据库内存报错
今天修改oracle数据库内存时, alter system set memory_max_target=10240M scope=spfile;语句正确修改:但重启时却报错 : SQL> al ...
- python+Django+test 测试数据库生成报错
前提: 使用Django自带的test进行单元测试. 问题描述: 运行:python manage.py test,报错,出现数据库乱码的现象,报错如下: Creating test database ...
- 导入数据库备份报错1067 – Invalid default value for ‘create_time’
通过navicat工具导入psc数据库备份文件,报错如下,mysql版本5.7 执行如下语句不通过 DROP TABLE IF EXISTS `guard_user`; CREATE TABLE `g ...
- 【redis数据库学习】用JAVA连接redis数据库各种报错
最近项目中,需要用到redis数据库,然后使用Jedis让JAVA连接redis. 首先,安装redis数据库,参考的是:http://www.runoob.com/redis/redis-insta ...
随机推荐
- intellij idea android错误: Missing styles. Is the correct theme chosen for this layout?
Missing styles. Is the correct theme chosen for this layout? Use the Theme combo box above the layou ...
- luogu P1056 排座椅
题目描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳.同学 ...
- 【MySQL笔记】Excel数据导入Mysql数据库的实现方法——Navicat
很多公司尤其有点年头的公司,财务业务部门的各种表单都是excel来做的表格,随着互联网的发展各种业务流程都电子化流程化了,再在茫茫多的文档中去查找某一个年份月份的报告是件相当枯燥的事,所以都在想办法将 ...
- .net 多文件上传
版权声明:本文为博主原创文章,未经博主允许不得转载. 1.页面 <head runat="server"> <title>上传文件</title> ...
- iOS:使用集成的支付宝SDK的支付流程
基本步骤: 1.先与支付宝签约,获得商户的ID(partner)和账号ID(seller),这一部分主要是又公司负责: 2.下载相应的公钥私钥文件,用来给签名进行加密: 3.下载支付宝集成的SDK,网 ...
- php之文件类型解析漏洞防御与攻击
php在处理文件上传时,经常可以用到下面几种方式来判断文件的类型 1.通过文件名后缀,不安全,非常容易欺骗2.通过mime判断,部分类型的文件通过修改文件后缀名,也可以欺骗服务器3.通过头字节判断文件 ...
- XSS-Proxy之技术总结
今天看了大风的文章,关于Cross Iframe Trick的思路.让我想到了曾经看到的关于XSS Proxy的一些文章. Advanced Cross-Site-Scripting with Rea ...
- Windows 2003 R2
微软发布Windows Server 2003 R2版的目的是希望透过它填补Windows Server 2003 SP1和Longhorn Server之间的产品发布时间间隔. 微软向产品测试人员表 ...
- 为甚么要将某个方法声明为final呢?
他可以防止其他人覆盖该方法.但更重要的一点或许是:这样做可以有效的"关闭"动态绑定,或者说, 告诉编译器不需要对其进行丰台绑定.这样,编译器就可以为final方法调用生成更有效的代 ...
- linux导入so文件
在linux系统中,有时候会遇到so文件丢失的问题. 此时一个常用的操作是将缺失的so文件拷贝到主机上.然后设置以下环境变量来进行导入 export LD_LIBRARY_PATH=/usr/lib/ ...