DB2备份恢复读书笔记
1.DB2三种备份恢复机制
(1)紧急事故恢复:基本就是断电后重启,根据日志自动redo或者undo,恢复到数据一致状态。
(2)版本恢复:恢复整个DB2的备份。
(3)前滚恢复:在版本恢复的基础上,应用日志,恢复到某个点上。日志启动归档日志。
2.DB2日志
(1)预写式:在具体化到数据库之前,将更改写到日志中。
(2)数据库更改写到bufferpool,日志更改写到log buffer中
(3)日志buffer满了或者调用commit是,具体化到日志中。
(4)主日志文件:是在建立第一个数据库连接或者数据库活动时立即分配的。
(5)辅助日志文件:是在需要时动态分配的。
(6)日志的状态:
(6.1)活动日志:如果以下两个条件之一得到满足,则一个日志被认为是活动的(active):
 它包含关于尚未被提交或回滚的事务的信息。
 它包含关于已经被提交但是其更改还没有被写(具体化)到数据库磁盘的事务的信息。
(6.2)在线归档日志:包含被提交且具体化的事务的信息。这些日志与活动日志放在相同的目录中。
(6.3)离线归档日志:已经从活动日志目录转移到另一个目录或媒介上的归档日志。这种移动可以手动地

完成,也可以由DB2自动完成。
(7)日志记录类型:循环日志记录和归档日志记录。
3.DB2备份与恢复
(1)在线备份恢复:如果我们在执行一个在线操作(备份、恢复、前滚),那么其他用户也可以同时访问

我们正在操纵的数据库对象。
(2)如果我们在执行一个离线操作,那么就不允许任何其他用户同时访问我们正在操纵的数据库对象。
(3)数据库备份:是数据库的一个完整的副本。除了数据外,备份副本还包含关于表空间、容器、数据库

配置、日志控制文件和恢复历史文件的信息。注意,备份不会存储数据库管理器配置文件或注册表变量。只

有数据库配置文件才会得到备份。
(4)Backup命令:
BACKUP DATABASE database-alias [USER username [USING password]]
[TABLESPACE (tblspace-name [ {,tblspace-name} ... ])] [ONLINE]
[INCREMENTAL [DELTA]] [USE {TSM | XBSA} [OPEN num-sess SESSIONS]
[OPTIONS {options-string | options-filename}] | TO dir/dev
[ {,dir/dev} ... ] | LOAD lib-name [OPEN num-sess SESSIONS]
[OPTIONS {options-string | options-filename}]]
[WITH num-buff BUFFERS] [BUFFER buffer-size] [PARALLELISM n]
[COMPRESS [COMPRLIB lib-name [EXCLUDE]] [COMPROPTS options-string]]
[UTIL_IMPACT_PRIORITY [priority]] [{INCLUDE | EXCLUDE} LOGS] [WITHOUT PROMPTING]
(5)OFFLINE,是默认模式。
(6)表空间备份
如果一个数据库中只有一部分表空间有较多的变更,那么可以选择不备份整个数据库,而是只备份特定的表

空间。要执行表空间备份,可以使用以下语法:
 BACKUP DATABASE sample
 TABLESPACE ( syscatspace, userspace1, userspace2 )
 ONLINE
 TO /db2tbsp/backup1, /db2tbsp/backup2
(7)增量备份:DB2备份自上一次完整数据库备份以来发生变化的所有数据。
(8)Delta备份:DB2只备份自上一次成功执行的完整备份、增量备份或 delta 备份以来发生变化的数据。
(9)Restore命令格式:
RESTORE DATABASE source-database-alias { restore-options | CONTINUE | ABORT }
restore-options:
[USER username [USING password]]
[REBUILD WITH [ALL TABLESPACES IN DATABASE | ALL TABLESPACES IN IMAGE]
   [EXCEPT rebuild-tablespace-clause] [rebuild-tablespace-clause]
[{TABLESPACE [ONLINE] | TABLESPACE (tblspace-name [ {,tblspace-name} .. ]) [ONLINE] |
HISTORY FILE [ONLINE]}] [INCREMENTAL [AUTOMATIC | ABORT]]
[{USE {TSM | XBSA} [OPEN num-sess SESSIONS] |
FROM dir/dev [ {,dir/dev} ... ] | LOAD shared-lib
[OPEN num-sess SESSIONS]}] [TAKEN AT date-time] [TO target-directory]
[INTO target-database-alias] [NEWLOGPATH directory] [LOGS FROM directory]
   [LOGTARGET directory]
[WITH num-buff BUFFERS] [BUFFER buffer-size]
[DLREPORT file-name] [REPLACE EXISTING] [REDIRECT] [PARALLELISM n]
[WITHOUT ROLLING FORWARD] [WITHOUT DATALINK] [WITHOUT PROMPTING]
Rebuild-tablespace-clause:
[TABLESPACE (tblspace-name [ {,tblspace-name} ... ])
(10)数据库恢复只能使用OFFLINE模式。
(11)也可以通过使用 LOGS 关键字只恢复日志文件,而不恢复数据库:
RESTORE DATABASE sample
LOGS FROM C:\DBBACKUP
LOGTARGET C:\DB2\NODE0000\SQL00001\SQLOGDIR
(12)表空间恢复
可以使用完整数据库备份或表空间备份来恢复表空间。对于表空间恢复,要小心地做好计划,因为一不小心

就会使数据处于不一致状态。
下面是表空间 RESTORE 命令的一个例子:
 RESTORE DATABASE sample
 TABLESPACE ( mytblspace1 )
 ONLINE
 FROM /db2tbsp/backup1, /db2tbsp/backup2
(13)Rollforward命令:
ROLLFORWARD 命令的语法如下:
ROLLFORWARD DATABASE database-alias [USER username [USING password]]
[TO {isotime [ON ALL DBPARTITIONNUMS] [USING LOCAL TIME | USING UTC TIME] |
END OF LOGS [On-DbPartitionNum-Clause]}] [AND {COMPLETE | STOP}] |
{COMPLETE | STOP | CANCEL | QUERY STATUS [USING LOCAL TIME | USING UTC TIME]}
[On-DbPartitionNum-Clause] [TABLESPACE ONLINE | TABLESPACE (tblspace-name
[ {,tblspace-name} ... ]) [ONLINE]] [OVERFLOW LOG PATH (log-directory
[{,log-directory ON DBPARTITIONNUM db-partition-number} ... ])] [NORETRIEVE]
[RECOVER DROPPED TABLE dropped-table-id TO export-directory]

On-DbPartitionNum-Clause:
  ON {{DBPARTITIONNUM | DBPARTITIONNUMS} (db-partition-number
  [TO  db-partition-number] , ... ) | ALL DBPARTITIONNUMS [EXCEPT
  {DBPARTITIONNUM | DBPARTITIONNUMS} (db-partition-number
  [TO db-partition-number] , ...)]}
(14)数据库前滚只能是OFFLINE模式,表空间前滚可以是ONLINE模式。
总结:
这就介绍完了高可用性备份和恢复。在这个教程中,您了解到:
    恢复概念和拥有恢复计划的重要性。
    事务(工作单元)是什么,使用事务如何保证数据的完整性。
    三种类型的恢复:紧急事故恢复、版本恢复和前滚恢复。
现在您应该熟悉 DB2 事务日志概念:
    日志缓冲区
    主日志和辅助日志
    活动日志、在线归档日志和离线归档日志
    数据库配置参数:LOGPRIMARY、LOGSECOND 和 LOGFILSIZ 等
    两种类型的日志记录:循环日志记录和归档日志记录(为此必须启用 LOGARCHMETH1 数据库配置参

数)
    无限日志记录
    可恢复数据库与不可恢复数据库
您了解到数据库备份和表空间备份的概念:
    如何使用备份实用程序
    增量备份和 delta 备份
    如何从 Control Center 中调用 BACKUP 实用程序
    备份文件的命名惯例
您了解到数据库恢复和表空间恢复的概念:
    如何使用 RESTORE 实用程序
    最小时间点
    如何从 Control Center 中调用 RESTORE 实用程序
    QUIESCE 实用程序可以做些什么
    历史文件中包含了什么东西
    如何执行重定向恢复
您了解到数据库前滚和表空间前滚的概念:
    如何使用 ROLLFORWARD 实用程序
    如何使用 ROLLFORWARD 实用程序恢复到一个时间点
    如何从 Control Center 中调用 ROLLFORWARD 实用程序
    如何使用 RECOVER 实用程序
    如何使用 RESTORE 实用程序重建数据库
    索引重建和 INDEXREC 配置参数