共计 3341 个字符,预计需要花费 9 分钟才能阅读完成。
这篇文章主要介绍了 db2 中日志模式和备份归档、恢复的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让丸趣 TV 小编带着大家一起了解一下。
一、日志循环
这是默认方式,也就是非归档模式,这种模式只支持(backup offline)脱机备份,在备份过程中需要 DB2 停止服务。
在 DB2 中查看数据库设置,如发现如下信息
$db2 get db cfg for db_name |grep -i log
结果如下:
Log retain for recovery enabled (
LOGRETAIN) = OFF
User exit for logging enabled (USEREXIT) = OFF
HADR log write synchronization mode (HADR_SYNCMODE) = NEARSYNC
First log archive method
(LOGARCHMETH1) = OFF
则说明为非归档模式,默认情况下为循环日志
在这种模式下进行脱机备份需要注意:
1、停止应用对 DB2 的访问。可以通过 db2 list applications 命令查看现有的连接,然后通过 db2 force application 命令来结束连接。另外通过 db2 deactivate database 命令来确保数据库未处于活动状态。
2、通过 db2 backup db 数据库名 命令来对数据库进行备份。
二、归档日志
归档日志不是默认的,需要配置后才会生效,这种模式下的数据库是可恢复的数据库,支持在线备份、前滚恢复和崩溃恢复。
配置 DB2 归档日志模式主要是要修改 Log retain for recovery enabled 和 First log archive method 这两个参数。
修改参数(update 更新参数)后,查看数据库是如下设置
$db2 get db cfg for db_name |grep -i log
Log retain for recovery enabled (LOGRETAIN) = RECOVERY
User exit for logging enabled (USEREXIT) = OFF
HADR log write synchronization mode (HADR_SYNCMODE) = NEARSYNC
First log archive method (LOGARCHMETH1) = LOGRETAIN
注意这里 First log archive method 的参数 LOGRETAIN 只表明你开启了归档,还需进一步设置才能正常备份
下面需要进一步指定归档目录的路径
更改归档目录:
$db2 update db cfg for db_name using LOGARCHMETH1 disk:/archive/db_name_db_log
使用归档日志, 当日志文件满时,会自动对它进行归档,归档的目的地就是 Logarchmeth2 设置的位置。归档日志文件之后,必须人工将无用的归档日志删除,以便新的日志文件可以复用磁盘空间。每当日志文件已满,DB2 就开始将记录写至另一个日志文件,并且不断创建新日志文件。
如果在归档日志文件时发生错误,归档将暂挂一段时间,此时间由“Log archive retry Delay (secs)” ARCHRETRYDELAY 数据库配置参数指定,还可以使用“Number of log archive retries on error”NUMARCHRETRY 数据库配置参数来指定 DB2 尝试将日志文件归档到主要或辅助归档目录的次数,然后它再尝试将日志文件归档到故障转移目录(由“Failover log archive path”FAILARCHPATH 数据库配置参数指定)。
还有就是容易遇见数据库事务日志已满导致备份出错的问题,这是可以查看这三个参数
Log file size (4KB) (LOGFILSIZ) = 8192
Number of primary log files (LOGPRIMARY) = 10
Number of secondary log files (LOGSECOND) = 4
并适当调整日志文件大小和主辅日志的文件个数。
最后就是要注意这两个参数的设置
Options for logarchmeth2 (LOGARCHOPT1) =
Second log archive method (LOGARCHMETH2) =
有以下几种情况:
1、Logarchmeth2 设置为 LOGRETAIN,Logarchmeth3 设置为 OFF
这时归档日志位置就是 DB2 数据库日志的位置,需要人工干预归档日志的转移和空间维护工作
2、Logarchmeth2 设置为 USEREXIT,Logarchmeth3 设置为 OFF
这时归档日志的管理交由 USEREXIT 来处理,通过设置编译 USEREXIT 可以实现相对复杂一些的归档管理方式
3、Logarchmeth2 设置为指定目录 Directory,Logarchmeth3 设置为 OFF
归档日志的工作将会自动进行,需要归档日志将会被自动归档到 Directory 指定的位置,由于归档是自动进行,DB2 的日志目录中只有正常 logprimary+logsecond 个数的数据库日志。
4、Logarchmeth2 设置为 Directory1,Logarchmeth3 设置为 Directory2
归档日志的工作将会自动进行,需要归档日志将会被自动归档到 Directory1 和 Directory2 指定的位置,也就是会产生两份归档日志。由于归档是自动进行,DB2 的日志目录中只有正常 logprimary+logsecond 个数的数据库日志。对性能有一定的影响。
Directory1 或者 Directory2 都可以设置为 TSM。一般推荐 Directory1 为文件系统,Directory2 设置为 TSM,这样既可以归档到 TSM 离线保存,又可以在线使用文件系统中的归档日志,比较方便。
注意:设置 Logarchmeth2 和 Logarchmeth3 后,数据库会进入 backup pending 状态,必须进行一次脱机备份,数据才会进入 recovery 模式并且正常工作。
三、备份与恢复
1、简单的冷备与恢复
$ db2 backup db [dbname] to 路径
$ db2 restore db [dbname] from 路径 taken at 时间戳
2、在线热备与恢复
$ db2 backup db dbname online to 路径 include logs
$ db2 restore db dbname from 路径 taken at 时间戳
$ db2 rollforward db dbname to 2013-02-31-20.00.00.000000 using local time and complete overflow log path (/backup/logs) 前滚日志恢复至指定时间点
3、查看备份记录
$ db2 list history backup all for dbname 可以看到备份的纪录
附:DB2 数据库备份恢复的概念和知识点
备份类型:脱机备份(也称冷备份或离线备份)、联机备份(也称热备份或在线备份)、完全备份、增量备份(也称累积备份)、差异备份
数据库备份文件结构
恢复类型:崩溃恢复、版本恢复、前滚恢复(任意时间点恢复,恢复到最近时间点)
恢复情形:完全恢复、不完全恢复
手动恢复数据库的顺序
日志类型:循环日志(默认)、归档日志(活动日志、在线归档日志、离线归档日志)
日志类型与恢复类型:循环日志只支持崩溃恢复和版本恢复,归档日志支持所有类型的恢复
凡是联机备份产生的备份集在恢复时都需要使用归档日志,归档日志方式是是允许用户执行前滚(rollforward)恢复的唯一方法。
前滚的时间要在最小恢复时间点之后,最后的事务提交时间点之前。
感谢你能够认真阅读完这篇文章,希望丸趣 TV 小编分享的“db2 中日志模式和备份归档、恢复的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持丸趣 TV,关注丸趣 TV 行业资讯频道,更多相关知识等着你来学习!