分享

db2日志说明

 昵称18376747 2014-06-30
db2日志记录

1. 日志意义

主要在于数据恢复Db2实施提前写日志存档模式,发出删除插入或更新数据库一数据SQL调用作出的数据变更首先要写到日志中去。发出一SQL提交确认命令DB2首先要把redo所需要的日志写入磁盘。如果断电的话,所有被提交的事务都会重新做一遍,而未提交的则会rollback

事务:为了保证数据的恢复性和一致性引入的概念。比如执行了两条sql语句,但是他们为了完成同一件事,因此他们会被当做一个整体。当发生意外情况时,如果已经commit,但是未写到磁盘,就要执行redo重新执行一遍。如果没有commit,就要全部回滚。

日志作用:比如昨天晚上进行了数据库备份,但是今天中午数据库出现了问题(如存储介质损坏)需要恢复,那么只能恢复到昨天晚上的状态,今天上午的数据都没法恢复,这如果数据库日志没有损坏,就可以通过日记把这段时间的操作重新执行一遍。

2. 日志分为循环日志和归档日志:

日志中只记录DML操作(insertupdatedelete操作)当我们前台执行了一条insertupdatedelete语句日志中就会相应的记录这条SQL语句的redo操作和undo操作

几种操作类型:

DDLData Definition Language 数据定义语言),用于操作对象和对象的属性(数据库表,视图等)具体表现CreateDropAlter操作上。不会对具体的数据进行操作,而是对对象进行操作。

像主键约束、唯一约束、非空约束、外键约束、核查约束和缺省约束这些操作都是使表具有某些特性,所以在这里我认为他们都是表的属性,也属于DDL操作。

DMLData Manipulation Language 数据操控语言)用于操作数据库对象中包含的数据,也就是说操作的单位是记录。主要表现在InsertDeleteUpdate等操作上。操作对象是记录。

DCLData Control Language 数据控制语句)的操作是数据库对象的权限,这些操作的确定使数据更加的安全。主要表现在GrantRevoke语句操作对象是用户。

2.1 循环日志

主日志和辅助日志,数目分别是由参数LOGPrimaryLOGSecond来控制。当主日志不够用时,分配辅助日志(如默认配置了4主日志文件,但是某个事务需要横跨5日志,这时DB2将会分配一个辅助日志文件)

为什么叫循环日志?如分配了4日志,标号1,2,3,4日志4用完后将使用日志1如果日志扔是活动的,则不能被重用(未活动的日志:只要这个日志包含已提交且已写到数据库上的操作可以被重用)。

主要作用:仅能恢复到曾经做过备份的点,备份点之后的操作都将丢失。因此适用于只提供查询的数据库。

2.2 归档日志

不会像循环日志那样重用,DB2不会覆盖已经成为归档日志的日志。

活动日志:特别重要,如果活动日志丢失,则数据库无法启动

满足1.包含尚未提交或回滚的事务信息;2.包含已经提交但是更改尚未写到磁盘上的事务信息。以上两个条件中任意一个都属于活动日志。

1) 在线归档日志:非活动日志,但是与活动日志放在相同的目录。

2) 离线归档日志:已经从活动日志的目录转移到其他地方(其他目录或媒介)。

参数LOGArchmenth1

1) OFF(默认,归档日志禁用,循环日志启用;

2) LOGRetain 日志文件保留在活动日志目录(在线归档);

3) USERExit 日志的归档和检索是由用户提供的用户出口程序自动执行的,且此出口程序必须由db2uext2调用。该程序将在线归档日志转移到与活动日志不同的目录或媒介上。该程序也可以将离线归档日志取出到活动日志目录。在Windows下,db2uext2必须存储在sqllib\bin目录下,在UNIX下,db2uext2必须存储在sqllib\adm目录中

4) DISK:directory_name 不调用用户出口程序,自动将日志文件归档到指定目录;

5) TSM:[management class name] 日志被归档到本地Tivoli Storage ManagerTSM服务器上。参数可选,为指定则使用默认管理类;

6) VENDOR:library_name 日志使用指定供应商的库来归档。

2.3 无限日志记录

一个日志被填满DB2立刻归档这个日志,而不是等到日志中所有事物都已经提交并且写到磁盘的时候归档日志。这样可以保证活动日志目录永远不被填满。

一般不建议使用无限日志记录,因为可能延迟紧急事故恢复时间因为它需要从归档站点检索活动日志。

启用无限日志记录:

1) LOGSecond参数设置为-1

2) 启用归档日志记录

循环日志记录只支持崩溃恢复和版本恢复,归档日志记录则支持所有类型的恢复:崩溃恢复、版本恢复和前滚恢复。

3. 日志相关配置参数

DB2日志存档进程涉及到一些参数,用户需要改变这些参数必须先停止该实例db2stop然后再重新启动db2start以便使得配置生效。

LOGPRIMARY 表明要分配的主日志文件数量

LOGSECOND 表面可有分配的辅助日志文件的最多数量;

LOGFILESIZ 用于指定一个日志文件的大小(4KB页的个数)

LOGBUFSZ 日志缓冲区大小该参数决定分配多少内存空间来做缓冲区把日志记录写到磁盘之前暂时他们保留日志缓冲区样是4KB的个数。

NEWLOGPATH 日志文件默认的子目录定义在数据库目录子目录SQLLOGDIR。出于恢复目的的考虑最好把日志文件存放到与数据库文件不同的物理磁盘。这一参数标识日志文件存放的新路径。

SOFTMAX 检查点是个百分数,例如50表示日志文件写满50%,数据库执行checkpoint操作内存中的已经提交的数据(脏页写到磁盘上。

MINCOMMIT 提交数默认是1,表示每次提交都写日志假设设置为5,表示累计5次提交才写一次日志文件如果没有累计5那么每隔1秒写一次日志文件。

MIRRORLOGPATH 镜像日志路径;

TRACKMOD 启用增量备份;

4. DB2诊断日志db2diag.log

日志文件的位置

Db2diag.log用来记录DB2数据库运行中的信息的文件。可以通过此文件查看DB2数据库详细的错误信息。此文件不断增大的,需要定期进行清理。

可以通过查看实例的配置参数DIAGPATH确定db2diag.log存放目录:db2 get dbm cfg

DIAGPATH=/home/db2inst1/sqllib/db2dump,此文件是放在/home/db2inst1/sqllib/db2dump目录下的。

文件系统/home使用率达到80%-90%左右,应及时删除db2diag.log文件

步骤如下:

1) 确认应用、DB2已经停止;

2) 将原db2diag.log文件备份到其他目录

3) 删除db2diag.log文件,传出后,DB2自动创建一个新的文件。

也可以通过DB2提供的自动归档命令:db2diag –a自动归档,自动归档的文件会以日期时间命名。

日志中关键字的含义:

1) Timestamp 时间戳

2) Instance 数据库实例

3) Partition number 分区

4) Process and database 进程和数据库

5) Thread Id 线程ID

6) Application ID  应用程序ID

7) Component 组件

8) Function 函数

9) Internal error point 内部错误指针

10) Database 数据库

了解这些基本含义有助于分析和诊断DB2相关问题。

筛选日志中的相关信息:

db2diag time 2014-01-02-11.00.907665-360 显示时间戳“2014-01-02-11.00.907665-360”之后的所有信息;

db2diag –rc FFFFBEE 可以了解十六进制提示的信息;

db2 “? Sql1042” 获得关于这个错误的具体解释;

db2diag –gi “level=severe” 显示db2diag.log所记录的严重错误;

如果实例中有若干数据库,并且只希望显示与数据库“SAMPLE”有关的消息,那么可以-g过滤 db2diag 日志文件:

db2diag -g db=SAMPLE

将仅显示包含“DB: SAMPLE” db2diag 日志文件记录

显示进程标识(PID)为 2200,并且在分区 01或分区 上运行的进程生成的所有严重错误消息:

db2diag -g level=Severe,pid=2200 -n 0,1,2,3

可写成 db2diag -l severe -pid 2200 -n 0,1,2,3

-g 选项指定区分大小写的搜索,所以此处“Severe”会起作用,但如果使用了“severe”则会失败。

合并两个诊断日志文件并按时间戳记对记录进行排序,执行以下命令:

db2diag -merge db2diag.0.log db2diag.1.log -fmt %{ts} -level error

时间戳计被合并,并且按时间顺序排序

要输出 db2diag 日志文件列表中所有文件的记录,运行以下命令:

db2diag -global

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多