关于这个参数设置的影响,在生产系统中经历过两次:

       第一次是有套不太重要的系统安装在虚拟机,这套系统所有应用(DB2 WAS IHS)都配置到/etc/rc.local中,每次启动机器会自动拉起应用,然后有次虚拟机宕机,重启后检查了各个应用进程都正常启动,但是前台页面访问异常无法访问,然后到后台手动连接数据库报:

SQL1015N  The database is in an inconsistent state.  SQLSTATE=55025

根据SQL1015N提示:需要执行RESTART DATABASE DBNAME命令,执行后然后数据库可以正常连接

第二次是一套HA服务器的主机电源故障发生系统切换,切换到备机后,检查应用都正常被拉起,但是前台无法访问,和第一次是相同的问题,AUTORESTART参数被设置了OFF

这个参数解释如下:

       如果DB2数据库遭受断电或者异常关闭,数据库没有干净的关闭,那么数据库在启动的时候将会进行crash recovery. 但是如果数据库参数AUTORESTART设置为OFF的话,在启动数据库后DB2不会进行CRASH RECOVERY。关于crash recovery,在db2diag.log日志会有相关体现

下面重现这一场景:

/* 1   设置AUTORESTART为OFF   */
[db2inst1@limt ~]$ db2 UPDATE DATABASE CONFIGURATION for limtdb USING AUTORESTART OFF IMMEDIATE
DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.
[db2inst1@limt ~]$ db2 get db cfg for limtdb|grep -i AUTORESTART
Auto restart enabled (AUTORESTART) = OFF [db2inst1@limt yunwei]$ db2 connect to limtdb Database Connection Information Database server = DB2/LINUXX8664 10.1.0
SQL authorization ID = DB2INST1
Local database alias = LIMTDB /* 2 插入一条数据但不提交,为了数据库处于不一致性 */
[db2inst1@limt yunwei]$ db2 +c "insert into A values(15485,'asdas','asdas')"
DB20000I The SQL command completed successfully.
[db2inst1@limt yunwei]$
/* 3 kill数据库,模拟异常宕机情况 */
[db2inst1@limt yunwei]$ ps -ef|grep db2sys
db2inst1 5287 5285 1 08:07 pts/1 00:00:04 db2sysc 0
db2inst1 5827 3612 0 08:12 pts/1 00:00:00 grep db2sys
[db2inst1@limt yunwei]$ kill -9 5287
/* 4 启动数据库,此时数据库没有进行崩溃恢复,因为AUTORESTART为OFF */
[db2inst1@limt yunwei]$
[db2inst1@limt yunwei]$ db2start
12/19/2014 08:13:04 0 0 SQL1063N DB2START processing was successful.
SQL1063N DB2START processing was successful.
[db2inst1@limt yunwei]$
[db2inst1@limt yunwei]$
/* 5 此处报错是因为刚才的db2bp进程没有terminate */
[db2inst1@limt yunwei]$ db2 connect to limtdb
SQL0752N Connecting to a database is not permitted within a logical unit of
work when the CONNECT type 1 setting is in use. SQLSTATE=0A001
[db2inst1@limt yunwei]$ db2 terminate
DB20000I The TERMINATE command completed successfully.
/* 6 再次启动时候报数据库不一致 */
[db2inst1@limt yunwei]$ db2 connect to limtdb
SQL1015N The database is in an inconsistent state. SQLSTATE=55025
/* 7 db2 ? SQL1015N 有一条建议: using the RESTART DATABASE command*/
[db2inst1@limt yunwei]$ db2 restart database limtdb
DB20000I The RESTART DATABASE command completed successfully.
/* 8 数据库可以正常连接*/
[db2inst1@limt yunwei]$ db2 connect to limtdb Database Connection Information Database server = DB2/LINUXX8664 10.1.0
SQL authorization ID = DB2INST1
Local database alias = LIMTDB /* 9 以下是设置AUTORESTART为ON情况下,数据库宕机重启(不需要执行RESTART DATABASE) */
[db2inst1@limt yunwei]$
[db2inst1@limt yunwei]$ db2 UPDATE DATABASE CONFIGURATION for limtdb USING AUTORESTART ON IMMEDIATE
DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.
[db2inst1@limt yunwei]$
[db2inst1@limt yunwei]$ db2 get db cfg for limtdb|grep -i AUTORESTART
Auto restart enabled (AUTORESTART) = ON
[db2inst1@limt yunwei]$
[db2inst1@limt yunwei]$
[db2inst1@limt yunwei]$ db2 +c "insert into A values(15485,'asdas','asdas')"
DB20000I The SQL command completed successfully.
[db2inst1@limt yunwei]$ ps -ef|grep db2sys
db2inst1 5870 5868 1 08:13 pts/1 00:00:03 db2sysc 0
db2inst1 6122 3612 0 08:16 pts/1 00:00:00 grep db2sys
[db2inst1@limt yunwei]$ kill -9 5870
[db2inst1@limt yunwei]$ db2start
12/19/2014 08:16:35 0 0 SQL1063N DB2START processing was successful.
SQL1063N DB2START processing was successful.
[db2inst1@limt yunwei]$ db2 connect to limtdb
SQL0752N Connecting to a database is not permitted within a logical unit of
work when the CONNECT type 1 setting is in use.
[db2inst1@limt yunwei]$ db2 terminate
DB20000I The TERMINATE command completed successfully.
[db2inst1@limt yunwei]$ db2 connect to limtdb Database Connection Information Database server = DB2/LINUXX8664 10.1.0
SQL authorization ID = DB2INST1
Local database alias = LIMTDB

崩溃恢复(crash recovery)与 AUTORESTART参数的更多相关文章

  1. insert buffer/change buffer double write buffer,双写 adaptive hash index(AHI) innodb的crash recovery innodb重要参数 innodb监控

    https://yq.aliyun.com/articles/41000 http://blog.itpub.net/22664653/viewspace-1163838/ http://www.cn ...

  2. Android运行时Crash自动恢复框架-Recovery

    转自:http://zhengxiaoyong.me/2016/09/05/Android%E8%BF%90%E8%A1%8C%E6%97%B6Crash%E8%87%AA%E5%8A%A8%E6%8 ...

  3. Oracle实例的恢复、介质恢复( crash recovery)( Media recovery)

    实例的恢复( crash recovery) 什么时候发生Oracle实例恢复? shutdown abort; 数据库异常down掉(机器死机,掉电...) 实例恢复的原因是数据有丢掉,使用redo ...

  4. MySQL · 引擎特性 · InnoDB 崩溃恢复过程

    MySQL · 引擎特性 · InnoDB 崩溃恢复过程 在前面两期月报中,我们详细介绍了 InnoDB redo log 和 undo log 的相关知识,本文将介绍 InnoDB 在崩溃恢复时的主 ...

  5. MySQL · 引擎特性 · InnoDB崩溃恢复

    前言 数据库系统与文件系统最大的区别在于数据库能保证操作的原子性,一个操作要么不做要么都做,即使在数据库宕机的情况下,也不会出现操作一半的情况,这个就需要数据库的日志和一套完善的崩溃恢复机制来保证.本 ...

  6. 关于centos启动报错:Failed to start Crash recovery kernel arming的解决方案

    在VMware中安装了centos,重启时报错:Failed to start Crash recovery kernel arming 本质是kdump服务启动失败 先来说一下,什么是kdump K ...

  7. MySQL InnoDB Update和Crash Recovery流程

    MySQL InnoDB Update和Crash Recovery流程 概要信息 首先介绍了Redo,Undo,Log Sequence Number (LSN),Checkpoint,Rollba ...

  8. 转:InnoDB Crash Recovery 流程源码实现分析

    此文章转载给登博的文章,给大家分享 InnoDB Crash Recovery 流程源码实现分析 Crash Recovery问题 本文主要分析了InnoDB整个crash recovery的源码处理 ...

  9. 数据库的Instance/Crash Recovery

    crash recovery是指单实例数据库发生了failure.或者rac数据库中的所有实例都发生了failure后进行的recovery.rac数据库crash后,rac中第一个重启启动的inst ...

随机推荐

  1. 【PHP Cookie&&Session】

    大部分的人都知道Cookie,但是可能不了解Session,现在对这两者进行解释. 问题的提出: 有些网站会提示用户在一定的时间之内免登陆,这是用的什么技术?答案是Cookie技术. 有些购物网站会提 ...

  2. 解决MYSQL错误:ERROR 1040 (08004): Too many connections

    方法一: show processlist; show variables like 'max_connections'; show global status like 'max_used_conn ...

  3. visual studio2010复制粘贴源代码到Word时乱码问题 分类: C# 2014-11-28 09:25 687人阅读 评论(0) 收藏

    问题描述: visual studio2010 拷贝源代码的时候,在windows自带的写字板和word2010上,粘贴的时候中文字符都会变成乱码. 如: "该用户已经被成功添加" ...

  4. UDP通讯程序设计

    UDP通讯程序设计 一.函数化 1.1服务器使用的函数 创建socket----->socket 绑定地址-------->bind 接受数据-------->recvfrom 发送 ...

  5. android开源项目和框架(转)

    特效: http://www.androidviews.net/ http://www.theultimateandroidlibrary.com/ 常用效果: 1. https://github.c ...

  6. C语言判断文件是否存在(转)

    int   access(const   char   *filename,   int   amode); amode参数为0时表示检查文件的存在性,如果文件存在,返回0,不存在,返回-1. 这个函 ...

  7. javascript 的基础笔记

    新手入門: alert的使用:   在alert中\xB0可以输出温度(centigrade)的符号,\xNN可以输入一些不能输入的特殊字符,NN是两个十六进制数,表示字符在latin-1 字符集中的 ...

  8. SQL连接查询、变量、运算符、分支、循环语句

    连接查询:通过连接运算符可以实现多个表查询.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 常用的两个链接运算符: 1.join   on 2.union 在关系数据库 ...

  9. php代码效率测试

    对于一个被加载的页面,而遇到会卡的原因 ,代码量大,为了减少一句话分析,就采用分段式判断. 从php手册了解到,使用microtime函数,具体方法可参见php手册对这函数的用法 定义get_exec ...

  10. 【转】CDH5.x升级

    http://www.cloudera.com/content/www/zh-CN/documentation/enterprise/5-3-x/topics/cm_ag_upgrade_cm5.ht ...