图 3. DB2 UDB 数据库结构
驱动器/目录 —— 在 CREATE DATABASE 命令中指定的驱动器或目录。
DB2 实例名称 —— DB2 实例所有者的名称。
NODE0000 —— 数据库的分区数。0 表示非分区的数据库。
SQL00001 —— 从 1 开始的数据库 ID。
SQLOGDIR —— 数据库的默认日志目录。
SQLT0000.0 —— 目录表空间 SYSCATSPACE。
SQLT0001.0 —— 临时表空间 TEMPSPACE1。
SQLT0002.0 —— 用户表空间 USERSPACE1
12.1 冷备(脱机)
清单 1. 命令行 backup 语法
|
BACKUP DATABASE database-alias [USER username [USING password]] [TABLESPACE (tblspace-name [ {,tblspace-name} … ])] [ONLINE] [INCREMENTAL [DELTA]] [USE {TSM | XBSA} [OPEN num-sess SESSIONS]] | TO dir/dev [ {,dir/dev} … ] | LOAD lib-name [OPEN num-sess SESSIONS]] [WITH num-buff BUFFERS] [BUFFER buffer-size] [PARALLELISM n] [WITHOUT PROMPTING]
|
单 1. 命令行 backup 语法
|
|
要在脱机模式下执行备份,只需发出以下 DB2 命令即可:
|
|
或者您可以有更多的选项,比如:
|
|
当发出 backup 命令时,将创建备份映像。注意,对于 UNIX 和 Windows,备份文件名称有点不同。对于 Windows,路径和文件名将具有以下格式:
UNIX 备份文件看起来将像这样:
恢复命令:
RESTORE DATABASE source-database-alias
{ restore-options | CONTINUE | ABORT }
restore-options:
[USER username [USING password]] [{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]
[WITH num-buff BUFFERS] [BUFFER buffer-size]
[DLREPORT file-name] [REPLACE EXISTING] [REDIRECT] [PARALLELISM n]
[WITHOUT ROLLING FORWARD] [WITHOUT DATALINK] [WITHOUT PROMPTING]
如:
db2 restore database sample from e:\tmp taken at 2004061710 replace existing
db2 set tablespace containers for 0 using (path ‘E:\tmp\0’)
(note if it’s a DMS tablespace, you will need a set tablespace containers for 0
using (file ‘e:\tmp\0.dms’ <SIZE>)
db2 restore database sample continue
12.2 热备 (联机)
DB2 UDB 执行时间点恢复的机制类似于 Oracle。要了解 DB2 UDB 联机备份和恢复,就需要了解归档日志记录。有三种我们需要熟悉的日志定义:
活动日志 —— 该日志包含没有提交或回滚的事务,或者已提交但尚未刷新到磁盘的事务。
联机归档日志 —— 该日志包含已提交并且被记录到硬盘的事务的信息,和活动日志位于同一目录。
脱机归档日志 —— 如果将联机归档日志从活动日志所在目录移动到其他目录或磁带中,就成为了脱机归档日志。
有许多与日志记录有关的配置参数:
LOGFILSIZ —— 每个日志文件的大小,默认值是 250,单位为 4KB。
LOGPRIMARY —— 主日志文件的个数(默认值是 3)。
LOGSECOND —— 主日志文件占用满时,可以分配的二级日志文件的个数。当把这个参数设为 -1 时(版本 8),可以使用无限数量的活动日志。
NEWLOGPATH —— 用来更改日志文件的存储位置。要想使该参数生效,需要重新激活数据库。
MIRRORLOGPATH —— 日志文件的镜像路径,以避免单点故障。
OVERFLOWLOGPATH —— 指定前滚期间可以在哪些目录搜索需要的日志,以允许前滚操作能访问多个目录中的日志。
USEREXIT——用于启动用户出口功能,进行日志的自动归档。
BLK_LOG_DSK_FUL——当 DB2 无法在活动日志路径中创建新日志文件时,防止生成磁盘已满错误。
为了使用联机备份,必须打开归档日志记录。通过将 LOGRETAIN 设为 ON,可以打开归档日志记录。
归档日志记录是一种不同于循环日志记录的日志记录机制,因为循环日志记录重写了提交的日志,而归档日志记录归档了提交的日志。
在归档日志记录中,不能重用已经变成归档日志的日志。要移动那些联机归档日志,您需要手动移动它们或者使用用户出口程序(user exit)来移动它们。
图 27举例说明了归档日志记录机制:
图中的 LOG (n+1)是活动日志,log (n) 和 log (n-i)(其中 i<=n)都是联机归档日志。这些归档日志既可以位于存储活动日志的路径中,也可以使用用户出口程序来指定将保存它们的目录或媒介。
默认情况下,活动和联机归档日志保存在 SQLOGDIR 目录中。NEWLOGPATH 数据库配置参数确定了将在哪里存储未来的活动归档日志。要想使 NEWLOGPATH 参数生效,需要停用数据库(目的是关闭所有活动日志文件)。然后,重新激活数据库将导致在新路径中创建新日志文件,原来的归档日志将留在原来的路径中。
当进行联机备份时,将记录所有的数据库事务。在完成联机备份之后,DB2 将强行关闭当前活动日志,并对其进行归档,如
图 28 所示:
以下文章点击率最高
Loading…


