list utilities监视数据库前滚操作
您可以使用 db2pd 或 LIST UTILITIES 命令来监视数据库前滚操作的进度。
过程
- 发出 LIST UTILITIES 命令并指定 SHOW DETAIL 参数
db2 LIST UTILITIES SHOW DETAIL - 发出 db2pd 命令并指定 -recovery 参数:
db2pd -d 数据库名 -reco
结果
对于前滚恢复,进度监视分为两个阶段:FORWARD 和 BACKWARD。FORWARD 阶段期间中,读取日志文件并将日志记录应用于数据库。对于前滚恢复,当此阶段开始时,将工作总量估计值指定为 UNKNOWN。按字节计的已处理工作量将随进程的继续而更新。
在 BACKWARD 阶段中,回滚 FORWARD 阶段期间中应用任何未落实的更改。提供了要处理的日志数据量的估计值(按字节计)。当进程继续运行时,会更新已处理的工作量(按字节计)。
示例
Recovery:
Recovery Status 0x00000401
Current Log S0000005.LOG
Current LSN 0000001F07BC
Current LSO 000002551BEA
Job Type ROLLFORWARD RECOVERY
Job ID 7
Job Start Time (1107380474) Wed Feb 2 16:41:14 2005
Job Description Database Rollforward Recovery
Invoker Type User
Total Phases 2
Current Phase 1
Progress:
Address PhaseNum Description StartTime CompletedWork TotalWork
0x0000000200667160 1 Forward Wed Feb 2 16:41:14 2005 2268098 bytes Unknown
0x0000000200667258 2 Backward NotStarted 0 bytes Unknown
ID = 7
Type = ROLLFORWARD RECOVERY
Database Name = TESTDB
Member Number = 0
Description = Database Rollforward Recovery
Start Time = 01/11/2012 16:56:53.770404
State = Executing
Invocation Type = User
Progress Monitoring:
Estimated Percentage Complete = 50
Phase Number = 1
Description = Forward
Total Work = 928236 bytes
Completed Work = 928236 bytes
Start Time = 01/11/2012 16:56:53.770492
Phase Number [Current] = 2
Description = Backward
Total Work = 928236 bytes
Completed Work = 0 bytes
Start Time = 01/11/2012 16:56:56.886036
ID = 17
Type = ROLLFORWARD RECOVERY
Database Name = TESTDB
Member Number = 0
Description = Offline Tablespace Rollforward Recovery: 3
Start Time = 01/11/2012 17:04:27.269171
State = Executing
Invocation Type = User
Progress Monitoring:
Estimated Percentage Complete = 63
Phase Number = 1
Description = Forward
Total Work = 142
Completed Work = 90
Start Time = 01/11/2012 17:04:27.269283
Phase Number [Current] = 2
Description = Backward
Total Work = 0
Completed Work = 0
Start Time = Not Started
关于crash recovery
如果DB2数据库遭受断电或者异常关闭,数据库没有干净的关闭,那么数据库在启动的时候将会
进行crash recovery. 但是如果数据库参数AUTORESTART设置为OFF的话,在启动数据库后DB2不会
进行CRASH RECOVERY。我们在连接到数据库的时候将会报SQL1015N 错误。
[yansp@db2server ~]$ db2 get db cfg for oracle | grep AUTORESTART
Auto restart enabled (AUTORESTART) = OFF
db2 => connect to oracle @
SQL1015N The database is in an inconsistent state. SQLSTATE=55025
这个时候需要我们手工进行CRASH RECOVERY。
db2 => restart database oracle @
DB20000I The RESTART DATABASE command completed successfully.
db2 => connect to oracle @
Database Connection Information
Database server = DB2/LINUX 9.7.0
SQL authorization ID = YANSP
Local database alias = ORACLE
通过日志文件我们看一下DB2 CRASH RECOVERY的过程。
2013-02-03-06.27.22.704092+480 I1529901G434 LEVEL: Warning
PID : 9899 TID : 2947541904 PROC : db2sysc 0
INSTANCE: yansp NODE : 000 DB : ORACLE
APPHDL : 0-15 APPID: *LOCAL.yansp.130202222719
AUTHID : YANSP
EDUID : 35 EDUNAME: db2agent (ORACLE) 0
FUNCTION: DB2 UDB, base sys utilities, sqledint, probe:30
MESSAGE : Crash Recovery is needed. <-- 需要进行crash recovery
2013-02-03-06.27.31.389376+480 I1530336G497 LEVEL: Warning
PID : 9899 TID : 2947541904 PROC : db2sysc 0
INSTANCE: yansp NODE : 000 DB : ORACLE
APPHDL : 0-15 APPID: *LOCAL.yansp.130202222719
AUTHID : YANSP
EDUID : 35 EDUNAME: db2agent (ORACLE) 0
FUNCTION: DB2 UDB, recovery manager, sqlpresr, probe:410
MESSAGE : Crash recovery started. LowtranLSN 00000000252E0010 MinbuffLSN <--启动 Crash recovery
00000000252E0010
2013-02-03-06.27.31.463994+480 E1530834G451 LEVEL: Warning
PID : 9899 TID : 2947541904 PROC : db2sysc 0
INSTANCE: yansp NODE : 000 DB : ORACLE
APPHDL : 0-15 APPID: *LOCAL.yansp.130202222719
AUTHID : YANSP
EDUID : 35 EDUNAME: db2agent (ORACLE) 0
FUNCTION: DB2 UDB, recovery manager, sqlpresr, probe:410
MESSAGE : ADM1530E Crash recovery has been initiated. <-初始化 Crash recovery
2013-02-03-06.27.31.643060+480 I1531286G492 LEVEL: Warning
PID : 9899 TID : 2947541904 PROC : db2sysc 0
INSTANCE: yansp NODE : 000 DB : ORACLE
APPHDL : 0-15 APPID: *LOCAL.yansp.130202222719
AUTHID : YANSP
EDUID : 35 EDUNAME: db2agent (ORACLE) 0
FUNCTION: DB2 UDB, recovery manager, sqlprecm, probe:2000
DATA #1 : <preformatted>
Using parallel recovery with 3 agents 8 QSets 24 queues and 16 chunks <- 启动并行进程来进行Crash recovery
2013-02-03-06.27.31.933175+480 I1531779G351 LEVEL: Warning
PID : 9899 TID : 2945444752 PROC : db2sysc 0
INSTANCE: yansp NODE : 000
EDUID : 40 EDUNAME: db2lfr (ORACLE) 0
FUNCTION: DB2 UDB, data protection services, sqlpgarl, probe:99
MESSAGE : INFO ONLY: Found an old page in the log file <-DB2发现日志文件中有OLD PAGE
2013-02-03-06.27.32.700437+480 I1532131G507 LEVEL: Warning
PID : 9899 TID : 2947541904 PROC : db2sysc 0
INSTANCE: yansp NODE : 000 DB : ORACLE
APPHDL : 0-15 APPID: *LOCAL.yansp.130202222719
AUTHID : YANSP
EDUID : 35 EDUNAME: db2agent (ORACLE) 0
FUNCTION: DB2 UDB, recovery manager, sqlprecm, probe:4000
MESSAGE : DIA2051W Forward phase of crash recovery has completed. Next LSN is <--前滚恢复完成
"00000000252E7400".
2013-02-03-06.27.33.293191+480 E1532639G460 LEVEL: Warning
PID : 9899 TID : 2947541904 PROC : db2sysc 0
INSTANCE: yansp NODE : 000 DB : ORACLE
APPHDL : 0-15 APPID: *LOCAL.yansp.130202222719
AUTHID : YANSP
EDUID : 35 EDUNAME: db2agent (ORACLE) 0
FUNCTION: DB2 UDB, recovery manager, sqlpresr, probe:3170
MESSAGE : ADM1531E Crash recovery has completed successfully. <--CRASH RECOVERY成功完成
2013-02-03-06.27.33.294698+480 I1533100G462 LEVEL: Warning
PID : 9899 TID : 2947541904 PROC : db2sysc 0
INSTANCE: yansp NODE : 000 DB : ORACLE
APPHDL : 0-15 APPID: *LOCAL.yansp.130202222719
AUTHID : YANSP
EDUID : 35 EDUNAME: db2agent (ORACLE) 0
FUNCTION: DB2 UDB, recovery manager, sqlpresr, probe:3170
MESSAGE : Crash recovery completed. Next LSN is 00000000252E7400
2013-02-03-06.27.34.627484+480 E1533563G464 LEVEL: Event
PID : 9899 TID : 2949639056 PROC : db2sysc 0
INSTANCE: yansp NODE : 000 DB : ORACLE
APPHDL : 0-16 APPID: *LOCAL.DB2.130202222734
AUTHID : YANSP
EDUID : 34 EDUNAME: db2stmm (ORACLE) 0
FUNCTION: DB2 UDB, Self tuning memory manager, stmmLog, probe:1008
DATA #1 : <preformatted>
Starting STMM log from file number 0
整个恢复过程都是有主控进程PID=9899 DB2SYSC进程来完成的。
[yansp@db2server ~]$ ps -ef | grep 9899
yansp 9899 9897 0 06:16 pts/0 00:00:06 db2sysc 0
root 9900 9899 0 06:16 pts/0 00:00:00 db2ckpwd 0
root 9901 9899 0 06:16 pts/0 00:00:00 db2ckpwd 0
root 9902 9899 0 06:16 pts/0 00:00:00 db2ckpwd 0
yansp 12571 11322 1 06:33 pts/2 00:00:00 grep 9899
list utilities监视数据库前滚操作的更多相关文章
- php模拟数据库常用操作效果
test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...
- Android-Sqlite数据库的操作
Sqlite数据库的简单操作: 设置增删改查的按钮,xml界面布局设置 <?xml version="1.0" encoding="utf-8"?> ...
- (四)SQL入门 数据库的操作与事务管理
数据库的操作,有三个最基本的语句,insert插入,update修改,delete删除. 不同的数据库厂商的实现可能不同,所以就不说具体的语法怎么写的了.说语法也没有意义,到处都可以复制粘贴,记得听某 ...
- Laravel框架数据库CURD操作、连贯操作使用方法
Laravel框架数据库CURD操作.连贯如何来操作了这个操作性是非常的方便简单了我们在这里来为各位介绍一篇相关的教程,具体的细节步骤如下文介绍. Laravel是一套简洁.优雅的PHP Web开 ...
- zabbix数据库mariadb从服务器迁移到云mysql数据库的操作
zabbix数据库mariadb从本机迁移到云mysql数据库的操作 1.将zabbix数据库导出,并导入到云数据库中 由于数据库较大,如果直接使用shell会话中断会导致数据库导出或者导入失败,使用 ...
- 使用my exclipse对数据库进行操作(4)
四.删除 public class class4 { public static void main(String[] args) { // TODO Auto-generated method st ...
- 从C#到Objective-C,循序渐进学习苹果开发(7)--使用FMDB对Sqlite数据库进行操作
本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本篇主要开始介绍基于XCod ...
- MYSQL数据库的操作
Mysql的连接方式: 1.原生函数:mysql_connect($server,$username,$password); //打开一个到Mysql服务器的连接 mysql_select_db( ...
- DBA必备:MySQL数据库常用操作和技巧
DBA必备:MySQL数据库常用操作和技巧 2011-02-25 15:31 kaduo it168 字号:T | T MySQL数据库可以说是DBA们最常见和常用的数据库之一,为了方便大家使用,老M ...
随机推荐
- RSA 非对称加密【转】
演示代码:https://pan.baidu.com/s/10rfSUUDEEHvCDEYH0oEVCw Base64工具类,可以让rsa编码的乱码变成一串字符序列 1 package com.uti ...
- [转] 对express中next函数的一些理解
最近公司在使用node做前后端分离,采用的web框架是express,所以对express框架进行了深入的了解,前段时间写了篇关于express路由的文章,但是在那篇文章中貌似少了一个很重要的内容,就 ...
- cuda by example【读书笔记2】
常量内存 用常量内存来替换全局内存可以有效的减少内存带宽 __constant__修饰符标识常量内存,从主机内存复制到GPU上的常量内存时,需要特殊版本的cudaMemcpy(): cudaMemcp ...
- Quartz.NET作业调度框架的简单应用
概述 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔(或天)来调度作业.它实现了 ...
- [SDOI2018]荣誉称号
题解: 并不需要什么算法 首先我们随便画一画就会发现 能画出一颗满二叉树 然后要满足每个点从上往下的路径和都相同(%m意义下) 一个点上可能对应了多个点 然后这样我们可以暴力dp $2^k*m^2+n ...
- PUTTY工具的使用
Putty工具包简单使用 一.Putty简介 Putty是一款远程登录工具,用它可以非常方便的登录到Linux服务器上进行各种操作(命令行方式).Putty完全免费,而且无需安 装(双击即可运行),支 ...
- Python学习(三十一)—— Django之路由系统
转载自:http://www.cnblogs.com/liwenzhou/p/8271147.html Django的路由系统 Django 1.11版本 URLConf官方文档 URL配置(URLc ...
- Python学习(二十) —— 前端之CSS
转载自http://www.cnblogs.com/liwenzhou/p/7999532.html 一.CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTM ...
- Codeforces 865C Gotta Go Fast 二分 + 期望dp (看题解)
第一次看到这种骚东西, 期望还能二分的啊??? 因为存在重置的操作, 所以我们再dp的过程中有环存在. 为了消除环的影响, 我们二分dp[ 0 ][ 0 ]的值, 与通过dp得出的dp[ 0 ][ 0 ...
- css3实现旋转表
如图所示: css部分: <style> #clock{width:100px; height:100px; border-radius:50%; border:4px solid bla ...