崩溃恢复(crash recovery)与 AUTORESTART参数
关于这个参数设置的影响,在生产系统中经历过两次:
第一次是有套不太重要的系统安装在虚拟机,这套系统所有应用(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参数的更多相关文章
- 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 ...
- 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 ...
- Oracle实例的恢复、介质恢复( crash recovery)( Media recovery)
实例的恢复( crash recovery) 什么时候发生Oracle实例恢复? shutdown abort; 数据库异常down掉(机器死机,掉电...) 实例恢复的原因是数据有丢掉,使用redo ...
- MySQL · 引擎特性 · InnoDB 崩溃恢复过程
MySQL · 引擎特性 · InnoDB 崩溃恢复过程 在前面两期月报中,我们详细介绍了 InnoDB redo log 和 undo log 的相关知识,本文将介绍 InnoDB 在崩溃恢复时的主 ...
- MySQL · 引擎特性 · InnoDB崩溃恢复
前言 数据库系统与文件系统最大的区别在于数据库能保证操作的原子性,一个操作要么不做要么都做,即使在数据库宕机的情况下,也不会出现操作一半的情况,这个就需要数据库的日志和一套完善的崩溃恢复机制来保证.本 ...
- 关于centos启动报错:Failed to start Crash recovery kernel arming的解决方案
在VMware中安装了centos,重启时报错:Failed to start Crash recovery kernel arming 本质是kdump服务启动失败 先来说一下,什么是kdump K ...
- MySQL InnoDB Update和Crash Recovery流程
MySQL InnoDB Update和Crash Recovery流程 概要信息 首先介绍了Redo,Undo,Log Sequence Number (LSN),Checkpoint,Rollba ...
- 转:InnoDB Crash Recovery 流程源码实现分析
此文章转载给登博的文章,给大家分享 InnoDB Crash Recovery 流程源码实现分析 Crash Recovery问题 本文主要分析了InnoDB整个crash recovery的源码处理 ...
- 数据库的Instance/Crash Recovery
crash recovery是指单实例数据库发生了failure.或者rac数据库中的所有实例都发生了failure后进行的recovery.rac数据库crash后,rac中第一个重启启动的inst ...
随机推荐
- 【JAVA多线程安全问题解析】
一.问题的提出 以买票系统为例: class Ticket implements Runnable { public int sum=10; public void run() { while(tru ...
- SQLAlchemy高级ORM之改查删除及GROUP,JOIN...
按书上案例来的. #coding=utf-8 from datetime import datetime from sqlalchemy import (MetaData, Table, Column ...
- WPF MVVM初体验
首先MVVM设计模式的结构, Views: 由Window/Page/UserControl等构成,通过DataBinding与ViewModels建立关联: ViewModels:由一组命令,可以绑 ...
- 使用html5的离线缓存技术
突然想用html5的离线缓存,但是一直没有成功,在各种群里问发现很多人都没什么经验,最终终于在各种论坛找到解决方案了.下面就简单记录一下相关情况. 一.离线缓存的优点 我们都知道离线缓存主要是用来减少 ...
- 把浏览器的私有模式添加到VS中
题记:在用VS进行Web开发的时候,常常希望VS的调试不会对浏览器造成固定的影响,那么使用浏览器的私有模式来启动就很有必要. 前几天SCOTT HANSELMAN分享了一个开发Web应用程序的小技巧, ...
- 使用VS把ASP.NET 5的应用发布到Linux的Docker上
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:我相信未来应用程序的部署模式首选一定会是Docker,所以.NET社区的朋友也不应该忽 ...
- zTree学习文档和DEOM
http://tool.oschina.net/apidocs/apidoc?api=ztree3.2%2Fapi%2FAPI_cn.html zTree的API http://www.ztree.m ...
- 去除字符串中的html标记及标记中的内容
去除字符串中的html标记及标记中的内容 --1.创建函数 create function [dbo].[clearhtml] (@maco varchar(8000)) returns varcha ...
- hdu 3037 Saving Beans Lucas定理
Saving Beans Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- js高级技巧之高级定时器
实际上,浏览器负责进行排序,指派某段代码在某个时间点运行的优先级. 可以吧js想象成在时间线上运行的. JavaScript中没有任何代码是立刻执行的,但一旦进程空闲则尽快执行. 1.重复的定时器: ...