崩溃恢复(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 ...
随机推荐
- markdown编辑器使用建议
markdown在线编辑器: https://stackedit.io/editorhttp://dillinger.io/ windows 下建议使用 MarkdownPad linux 下建议使用 ...
- 【转载】Pyqt 编写的俄罗斯方块
#!/usr/bin/env python # -*- coding: utf-8 -*- from __future__ import print_function from __future__ ...
- 【译】Visual Studio 15 预览版更新说明
序:恰逢Build2016大会召开,微软发布了VS2015的update2更新包和VS2016预览版.本人正在提升英文水平中,于是在这里对VS2016预览版的官方文档进行了部分翻译.因为VS有些功能使 ...
- [LeetCode] Letter Combinations of a Phone Number
Given a digit string, return all possible letter combinations that the number could represent. A map ...
- SQL常见错误及处理方法
1.情况:数据库引擎安装失败,报类似权限不足的错误 解决:可能由于计算机名和用户名相同导致,更改计算机名,卸载干净重装即可
- JSON数据解析(转)
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 本文将主要介绍在Android ...
- sql优化建议
背景: 在北京工作期间,我们做应用开发的和后台数据库的联系非常大,我们经常在一起讨论存储过程或者是sql性能优化的事情来降低应用运行时的时间,提高性能,经过和数据库方面的工程师的一些讨论 ...
- LoadRunner Pacing设置(转)
转载的,备读 在 LoadRunner 的运行场景中,有一个不大起眼的设置,可能经常会被很多人忽略,它就是Pacing .具体设置方式为: Run-Time settings à General à ...
- 为什么使用BeagleBoneBeagleBone的优点
为什么使用BeagleBone BeagleBone的优点 当前,一个典型的基于微控制器板的售价在120元左右,而BeagleBone Black的售价在330元左右.除了更强大的处理器之外,你额外的 ...
- 02 CSS/javaScript
CSS(Cascading Style Sheets)是层叠样式表用来设置网页的显示效果.可以解决html代码对样式定义的重复,提高了后期样式代码的可维护性,并增强了网页的显示效果功能.简单一句话:C ...