...

IBM DB2 for Linux, UNIX and Windows 1 环境中的备份和恢复实践指南 第

by user

on
Category: Documents
25

views

Report

Comments

Transcript

IBM DB2 for Linux, UNIX and Windows 1 环境中的备份和恢复实践指南 第
IBM DB2 for Linux, UNIX and Windows 在 SAP
环境中的备份和恢复实践指南
第 1 部分 – 备份和恢复概述
版本 1.4
IBM SAP DB2
Center of Excellence
修订日期: 2009 年 8 月 20 日
作者:
Olaf Depper
Edgardo G. Koenig
Hans-Jürgen Moldowan
Thomas Rech
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
关于本文档
数据库是 SAP® 系统的基础。所有相关业务代码以及 SAP 应用服务器执行的应用程序代码都存储在
数据库中。为数据库备份和恢复的计划、实现和测试提供一个有效、可靠的战略是非常重要的。因此,
有必要详细了解 SAP 系统的数据库备份和恢复过程。
本文是系列文章的第 1 部分,其主题涵盖 IBM® DB2® for Linux®, UNIX® and Windows® (DB2 for
Linux, UNIX and Windows)与基于 SAP NetWeaver® 的 SAP Applications 相结合所提供的备份和恢复
功能。
为了在快速入门和高级主题之间找到平衡点,本系列文章重点描述以下主题:

备份和恢复概述(本文)

与供应商解决方案之间的备份集成



备份调优和优化
备份最佳实践
分区环境中的备份和恢复(DB2 数据库分区特性)
这些文档将按计相继发布。有关这些文档的更新和新版本,请查询适当的信息源,比如 IBM
developerWorks® 或者 SAP Developer Network。
本文将介绍 DB2 数据库的备份和恢复基本知识。它将阐述备份和恢复的体系结构、相关性最高的一些命
令,并讨论 DB2 日志文件管理。此外,本文还将讨论如何把 DB2 备份和恢复体系结构整合到 SAP
NetWeaverTM 中。
本文档旨在提供说明性指导。其目的是为快速开发和实现可靠的备份和恢复战略提供指导。
2
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
目录
1 备份和恢复 – 概述............................................................................................................................4
1.1
1.2
1.3
1.4
数据库对象 ...............................................................................................................................4
DB2 数据库的日志.....................................................................................................................5
备份体系结构.............................................................................................................................8
在 SAP 环境中集成 DB2 备份实用工具...............................................................................12
2 日志文件管理 – 详细信息.................................................................................................................13
2.1
2.2
2.3
基本日志文件管理概念............................................................................................................13
日志文件的存档.......................................................................................................................14
日志文件链..............................................................................................................................16
3 备份和恢复 – 详细信息.....................................................................................................................17
3.1
3.2
3.3
3.4
3.5
备份数据库..............................................................................................................................17
恢复数据库.............................................................................................................................20
重定向恢复..............................................................................................................................22
前滚数据库..............................................................................................................................23
恢复数据库.............................................................................................................................24
4 其他命令和实用工具............................................................................................................................25
4.1
4.2
4.3
4.4
4.5
4.6
4.7
DB2CFEXP / DB2CFIMP.....................................................................................................25
ARCHIVE LOG.....................................................................................................................25
LIST HISTORY.....................................................................................................................26
LIST UTILITIES........................................................................................................................27
GET SNAPSHOT..................................................................................................................28
db2pd......................................................................................................................................29
LIST APPLICATIONS / FORCE APPLICATION.................................................................31
5 DB2 和 SAP 集成
5.1
5.2
5.3
备份和日志的配置....................................................................................................................32
执行备份..................................................................................................................................33
监控备份历史...........................................................................................................................36
3
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
1 备份和恢复 – 概述
本章将重点讨论备份和恢复体系结构中的一些组件,阐述与备份相关的一些 DB2 对象以及各种不同的备
份方法,比如离线备份和在线备份。本章将讨论 DB2 备份体系结构和 DB2 日志。这些信息旨在帮助
您开发和实现 DB2 备份和恢复战略。
1.1 数据库对象
DB2 数据库是在数据库服务器的 DB2 实例上创建的。DB2 实例也称作“数据库管理器”,因为它提供
了一个能托管一个或多个数据库的环境。在一台物理服务器上可以创建多个 DB2 实例。在 SAP 环境中,
每个实例仅支持一个数据库。虽然数据库的名称或别名将由 SAP 系统 ID (<SAPSID>) 本身决定,但
DB2 实例将被称作 db2<dbsid>。
每个数据库都有多个表空间和一组专用的日志文件。您可以通过使用数据库来映射 DB2 在线日志文件。
每个表空间都由一个或多个容器组成。容器可以是目录、文件或裸设备。表空间容器存放表和索引等 数
据库对象。表空间是一种逻辑元素,其中的表空间容器是它在磁盘上的物理表示。在典型的 DB2 安装
中,大部分磁盘空间都将被表空间容器和日志文件占用。DB2 实例和数据库表示本身在各自的目录中主
要包含配置和管理文件。
例如,实例目录包含数据库管理器配置文件、系统 数据库目录、节点目录和实例注册表。其中还保存有
到已安装数据库软件以及一些仅针对该实例的可执行文件的链接。
数据库目录中包含数据库的重要配置文件。例如,这些文件定义了缓冲池、表空间和数据库的配置。数
据库目录还是存放日志文件头以及历史文件的位置。
除是实例和数据库配置之外,DB2 系统还有一个配置文件注册表。DB2 配置文件注册表中的设置可以
影响实例(例如,与通信相关的参数)或者数据库 (例如,与 SQL 优化器行为相关的参数)。在 SAP 环
境中,其中一个 DB2 注册表变量是 ‘DB2_工作负载’,本例将它设置为 ‘SAP’。大多数参数都是在
实例目录下的实例配置文件注册表中设置的。但是,一些条目是为服务器设置的。这些注册表是在
Linux、UNIX 环境的 ‘/var/db2/global.reg’ 文件中的全局注册表中设置的。在 Windows 环境中,DB2
配置文件注册表存储在 Windows 注册表中(其注册表键为:HKEY_LOCAL_MACHI
NE\SOFTWARE\IBM\DB2\GLOBAL_PROFI LE)。
图 1-1 显示了所讨论的各种不同对象之间的简明关系。
4
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
数据库 Manager
db2<dbsid>
数据库
<DBSID>
Instance 目录:
/db2/db2<dbsid>/sqllib
数据库目录:
/db2/<DBSID>/db2<dbsid>
在线日志文件
日志目录:
/db2/<DBSID>/log_dir
表空间
容器
存储路径:
/db2/<DBS I D>/sapdata<n>
图 1-1:数据库对象
除了已经提到的对象之外,DB2 数据库系统还提供了更高层次的逻辑对象或对象分组 —— 即数据库分
区和数据库分区分组。 数据库分区所使用的另一个较原始的术语是节点。这些逻辑对象与
Linux、UNIX 和 Windows 的数据库分区特性(DPF)有关。本文档不会讨论关于 DPF 的主题。分区
数据库环境中的备份和恢复主题将在本系列的后续文章中讨论。对于未 分区的环境,其默认分区(节
点)始终为 ‘0000’。
为何这些对象对于理解 DB2 备份实用工具的上下文如此重要?DB2 数据库备份将保存恢复数据库所需
的所有信息。但是,如前所述,数据库和表空间配置(DB2 9.5 以及更高版本的默认行为)和日志文件
不会被保存为在线数据库备份的一部分。但是,数据库管理器配置和注册表并未包含在该图中。虽然这
些配置文件并不是整个灾难恢复中的关键因素,但了解一下这方面的信息也是有益的。有关如何保存和
恢复这些配置文件的更多信息,请参见 4.1 小节 “DB2CFEXP / DB2CFIMP”。
1.2 DB2 数据库的日志
DB2 数据库系统使用写入优先的日志算法作为事务恢复方法来支持细粒度的日志和部分回滚。写入优先
的日志强制在相应数据页面写入到磁盘之前将日志记录写入到日志文件中进行更新。事务的所有日志记
录必须在 COMMIT 完成之后写入到日志文件中。数据库将与变更相关的信息存储在数据库日志目录下
的一组日志文件中。
DB2 日志文件在 SAP 环境中的默认位置是 ‘/db2/<DBSID>/log_dir’。DB2 数据库管理系统会将大量
数据库分区(位于 ‘node<nnnn>’)附加到日志路径以维持 DPF 环境的唯一性。此节点号还将附加在
非分区的环境中。例如,在未分区的 DB2/SAP 系统中,在线日志文件的路径是
‘/db2/<DBSID>/log_dir/node0000’。
DB2 数据库系统将区分主要和备用日志文件。主要和备用日志文件都位于数据库日志目录中。在启动时,
数据库会预先分配所有的主要日志文件,以应对它们不存在的情况。对于长时间运行的事务填满所有
5
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
主要日志文件的情况,数据库引擎会根据需要每次分配一个备用日志文件。主要及备用 日志文件的数量
以及日志文的件的大小是在数据库配置中定义的。
数据库日志文件对于数据恢复至关重要。DB2 系统能够识别三种数据恢复:
 崩溃恢复(或称作重新启动恢复)
崩溃恢复可以在系统意外关闭(比如电源故障)之后将数据库返回到一致且可用的状
态。

版本恢复。
使 用 备 份 映 像 返 回 到 之 前 版 本 的 数据库。

前滚恢复
数据库日志中记录的事务将在数据库恢复操作之后生效。这种方法可用于将数据库(或表空间)
恢复到特定的时间点。
每个 DB2 数据库都支持崩溃恢复版本恢复。是否支持前滚恢复将由数据库所使用的日志机制决定。
循环日志是最新 DB2 数据库的默认日志机制。这种日志方法仅支持离线数据库备份。DB2 数据库将以
循环的方式来处理日志文件:如果最后一个日志文件被填满,则数据库又会向第一个日志文件写入记
录。使用循环日志的数据库不允许在线备份或前滚恢复。SAP 环境中的生产数据库不支持循环日志。
建议在生产环境中使用存档日志。如果使用存档日志,则日志文件将在填满(即不能向日志文件再写入
任何日志记录)之后存档到某个存档位置。使用存档日志的数据库可以在线备份。要恢复到指定的时间
点,可以执行前滚恢复。因此,使用存档日志的数据库也称作“可恢复数据库”。
图 1-2 提供了循环和存档日志的概要信息:
图 1-2:DB2 数据库的日志方法
循环日志与存档日志

S0000000. LOG
S0000001 .LOG
S0000002. LOG
S0000003. LOG
S0000004. LOG
S0000005. LOG
S0000006. LOG
S0000007. LOG
S0000008. LOG
S0000009. LOG

S000001 0.LOG

















S0000000. LOG
S0000001. LOG
S0000002. LOG
S0000003. LOG
S0000004. LOG
.
. .
.
.
S0000098. LOG
S0000099. LOG
S0000100. LOG
您需要在数据库配置中明确激活存档日志。DB2 数据库使用存档或者循环日志都由日志存档方法数据
库配置参数定义(LOGARCHMETH1 和 LOGARCHMETH2)。如果 LOGARCHMETH1 和
LOGARCHMETH2 两个参数都设置为 OFF,则数据库将使用循环日志。启用存档日志的方法是
6
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
将 LOGARCHMETH1 或/和 LOGARCHMETH2 配置参数设置为 OFF 以外的其他值。
对于可恢复数据库,DB2 引擎将在日志文件填满或接收到明确指令后立即将其存档。但是,此日志文
件仍然可以包含崩溃恢复所需的信息。因此,崩溃恢复所需的 日志文件仍然将存储在日志目录中。从
DB2 数据库的角度来看,可以认为这些日志文件是“活动的”。
DB2 日志管理器成功存档日志文件之后,并且其中未包含任何开放事务(因此不再需要崩溃 恢复),可
以认为日志文件是“存档的”。存档的日志文件通常不会被数据库删除。取而代之的是,当需要新的
日志文件时,DB2 数据库会重新命名最早存档的日志文件并再次使用它。DB2 数据库将重新命名某个
日志文件,而不是分配新文件,以便于减少 I/O 操作。存档的日志在复制到存档中之后不会立即重新
命名。因此,不需要新的活动日志文件时,经常可以在日志目录中看到较早的日志文件。
注意:当数据库在线时,千万不要手动删除日志目录中的日志文件。DB2 系统会自动分配和删除日志文
件。如果删除了某个活动的日志文件,则 DB2 实例会关闭数据库。数据库将无法重新启动,并且需要
恢复。
下图提供了使用日志管理器 (db2logmgr) 作为核心数据库引擎组件的 DB2 日志机制的(不完全的)概
要信息。
图 1-3:DB2 日志管理器
DB2 引擎对数据库日志目录中的日志文件执行读取和写入操作。当某个日志文件填满时, DB2 日志管
理器进程 (db2logmgr) 会负责将日志文件存档到不同的位置。指定磁带驱动器作为存档目标位置时,
系统会生成一个额外的 DB2 进程,即 DB2 磁带管理器 (db2tapemgr)。DB2 日志管理器将与存档操作
相关的所有信息存储在数据库的历史文件中。可以定义一个故障转移存档位置来应对标准存档位置临时
不可用的情况。例如,在恢复过程中,如果数据库引擎需要访问某个存档的日志文件,则 DB2 日志管
理器将从存档位置检索日志文件。
有关如何配置 DB2 日志的更多详细信息,请阅读第 2 章“日志文件管理 —— 详细信息”。
7
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
1.3 备份体系结构
DB2 备份实用工具读取表空间的内容并将此数据写入到备份媒介中。该实用工具不会将整个表空间(或
者更确切的说法是,表空间容器文件)复制到备份媒介。取而代之的是,备份实用工具会保存表空间的
内容。除了表空间数据之外,DB2 备份还会自动保存数据库目录中的所有配置文件,它们将作为备份映
像的一部分。将数据库恢复到最早的一致状态所需的日志文件也可以包含在备份映像中。在 DB2 9.5 版
本之后,日志文件默认在包含在在线备份中。
DB2 BACKUP 命令,比如 ‘BACKUP DB WGN ONLINE USE TSM’,将读取表空间中的页面并将它们
发送到指定目标,在本例中为 IBM Tivoli® Storage Manager。命令还将保存恢复数据库所需的数据库配
置文件和日志文件。
除了 Tivoli Storage Manager 之外,DB2 数据库系统还支持备份到磁盘和磁带。另外,DB2 备份实用工
具提供了一些接口供 EMC NetWorker® 和 HP OpenView Storage Data Protector® 等供应商备份解决方案
使用。例如,DB2 命令 ‘BACK DB WGN LOAD <vendor library>’ 将读取表空间中的页面,并将它们随
同数据库配置文件一起发送给供应商库。由于本例使用的是离线备份,因此,备份映像中未包含任何日
志文件。
还有一种特殊的 DB2 BACKUP 命令使用了 ‘SNAPSHOT’ 关键字。在本例中,DB2 备份实用工具使
用存储功能在磁盘层面上创建了一个备份映像。快照备份的默认行为是对所有数据库路径执行离线数
据库备份,比如所有的表空间容器、数据库路径和日志路径。虽然它是一种离线备份,但本例中包含了
日志文件。与其他备份目标选项不同,离线备份不会读取表空间中的数据,而是创建磁盘映像。
由于快照备份在某些方面不同于“传统”的磁带备份、磁盘备份和未在本文中详述的另一种备份方法。
有关 SAP 环境中的快照备份的更多详细信息,请参阅 SAP Developer Network 上的白皮书“使用 IBM
N- Series Storage 建立和配置 DB2 快照备份”,地址如下:
http://sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/0019590b-658d-2b10-24bd-9c6882b2b009
关于本文所讨论的几种备份,还需要详细讨论一下备份的进程模型以及它的主要影响因素。可以在调用
BACKUP 命令时指定一些参数,比如缓冲的数量和大小、并行程度、打开的会话数量以及是否压缩备份
映像。这些参数将在第 3 章“备份和恢复 —— 详细信息”中描述。至于目前,我们将重点讨论有助于
理解备份概念的一些参数。
下图显示了执行 DB2 备份时的数据流和参与组件。
8
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
db2a gent
controls
db2pfchr
db2bm
db2me
d
db2b
db2me
db2me
db2me
db2pfchr
db2bm
图 1-4:DB2 备份组件
发 出 DB2 BACKUP 命 令 之 后 , 系 统 将 生 成 一 个 引 擎 调 度 单 元 (EDU) , 即 db2agent 代 理 。 此
db2agent 将控制备份会话。DB2 引擎将启动一些额外的 EDU,即 db2bm 缓冲操作器。缓冲操作器将
与预取进程 (db2pfchr) 协作将表空间中的数据检索到备份内存区中。内存是实用工具的一部分。堆是在
数据库配置中的定义的。虽然仅为表空间分配了一个缓冲操作器,但多个预取程序可以将数据读取到单
一表空间的内存中。随后,检索到的数据将从备份内存传输到媒体控制器进程 (db2med)。这些 EDU
负责将备份缓冲中的数据移动到目标媒介设备。
预取的数量取决于数据库配置并且将由 ‘NUM_IOSERVERS’ 参数决定。备份缓冲、DB2 缓冲操作
器以及媒介控制器的数量需要在 BACKUP 命令中通过以下关键字定义:

WITH <number> B U F F E R S
控制备份缓冲的数量

BUFFER <size>
确定备份缓冲的大小

PARALLELISM
设置备份实用工具可以并行读取的表空间数量(影响 db2bm EDU 的数量)

OPEN <number> SESSION 或 <number of target devices specified>
确定 DB2 Media Controllers (db2med) 的数量
目前为止提到的备份参数(并行、会话和缓冲)都是可选的。如果未手动指定,则 DB2 备份实用工具
会自动根据数据库中表空间的数量、可用内存和数据库服务器的 CPU 数量来调优这些参数。
DB2 提供了调节数据库实用工具的功能,比如 BACK 和 RUNSTATS。它们可以用于调节运行中的实
用工具对系统性能的影响。通过调节,我们可以更加轻松地在高工作负载下并行启动数据库备份。使用
备份调节功能,媒介控制器会放慢速度,从而减少读取 I/O 操作。其结果是,备份任务将花费更长的
时间。
9
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
要确保实现最佳的备份性能,还需要考虑一个重要的设计因素,这与所使用的 IT 基础设施或备份媒介
无关,即:数据库的表空间布局。
我 们 来 看 SAP 数 据 库 , 数 据 通 常 不 会 均 匀 分 布 在 各 表 空 间 中 。 例 如 , <SAPSID>#BTABD 和
<SAPSID>#BTABI 表空间保存了绝大多数数据。另一方面,<SAPSID>#USER1 D 等许多表空间只保
存了少量数据。下图列出了某 SAP 数据库中最大的一些表空间。在本例中,FCK#BTABD 表空间下一
个表空间大。
表空间大小
1000,00
900,00
800,00
700,00
600,00
500,00
400,00
300,00
200,00
100,00
0,00
Tablespace
图 1-5 表空间布局(未优化)
如前所述,DB2 BACKUP 命令的 PARALLELISM 参数将影响备份可并发读取的表空间的数量。在进
程或线程层面, PARALLELISM 参数定义备份所使用的 DB2 缓冲操作器 (db2bm) 的数量。每个
db2bm EDU 都将分配给一个特定的表空间。因此,为 PARALLELISM 参数提供大于所备份表空间
数量的值就不会增加备份吞吐量。
10
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
确保实现最优化的数据库备份并行机制是尽可能平均地将数据分布在各个表空间中。例如,可以使用专
用表空间来保存最大的表。下图显示了经过优化的布局:
表空间大小
250,00
200,00
150,00
100,00
50,00
0,00
Tablespace
图 1-6 表空间大小(经过优化)
图 1-6 所示的表空间数据分布更加均匀:与图 1-5 中 80% 的数据都保存在一个表空间中不同,现在
数据主要分布在 7 个大小接近的表空间中。这种设置可以实现最理想的备份并行机制。
除了采用这种设计之外,将较大的表移动到它们的专用表空间中也是适用于大型 SAP 数据的一种常用
的 最 佳 实 践 。 DB2 for Linux, UNIX and Windows 可 以 使 用 一 些 SAP 工 具 , 比 如 在 线 表 移 动 或
DB6CONV 工具。借助这些工具,您可以将某个表在线移动到新的表空间,而不会显著影响生产数据库。
11
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
DB2 备份实用工具还涉及到称为表空间高水位线(high-water mark,HWM)的概念。高水位线用于描
述表空间中包含数据的最高页面。并非所有达到此高水位线的页面都填充了数据。通常,由于表的删除 、
重新组织或实现行压缩,HWM 可以比表空间中所使用的页面数量高很多。如图 1-7 所示。
图 1-7:表空间高水位线
在上图中,两个表空间都包含相同数量的页面。但是,左侧表空间的 HWM 更高。如前所述,DB2 备份
实用工具不会创建表空间容器文件的副本,而是会保存表空间的内容。备份实用工具将读取表空间内部
HWM 以下的所有页面。因此,备份处理 HWM 较高的表空间要比处理 HWM 较低的表空间花费更多的
时间。
1.4 在 SAP 环境中集成 DB2 备份实用工具
自动化特性可以帮助系统管理员自动化常规维护任务。将 DB2 管理任务整合到 SAP 系统中也遵循相同
的 原则 。 SAP 提供了一个图形用户界面,即 DBA COCKPIT ,用于管理 DB2 数据库备份。 DBA
Cockpit 提供了大量功能,包括备份调度(它是 DBA Cockpit 中的 DBA Planning Calendar 的一部分)。
由于 DB2 备份实用工具和日志管理器是数据库引擎的整合部件,因此可以在 SAP 系统中通过一个
API 来调用所需的功能。因此,管理员可能只能使用 DB2 命令来设置备份和日志存档功能。当系统正
常运行之后,您可以使用 DBA Cockpit(SAP 事务 DBACOCKPIT)来管理所有备份。有关将 DB2
BACKUP 命令整合到 DBA Cockpit 中的更多信息,请阅读第 5 章“DB2 和 SAP 整合”。
12
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
2 日志文件管理 —— 详细信息
在本节中,我们将阐述日志文件管理的概念,以及它对于正确定义备份和恢复战略的重要性。我们将
讨论用于为 DB2 数据库配置日志文件管理的基本数据库配置参数,以及如何配置各种不同的日志类型。
2.1 基本日志文件管理概念
DB2 引擎记录数据库日志文件中对数据库对象执行的所有更改。每个数据库日志文件都包含大量日志
记录。这些日志记录存储关于依托数据库运行的事务所执行的各种不同更改的信息。在 恢复时,存储在
日志文件中的信息将帮助数据库引擎把数据库返回到一致状态。因此,日志文件是数据库中的一个关键
元素,并且在处理它们时需要格外注意。
在设置数据库时最需要注意的一点是日志文件的位置。默认情况下,日志文件位于执行 CREATE 数据
库命令后在数据库目录中创建的 SQLOGDIR 目录中。如前所述,在 SAP 环境中,此位置会在 SAP
系统安装的过程发生更改。SAP 日志文件的标准位置是 /db2/<DBSID>/log_dir。
您可以通过设置数据库配置参数 NEWLOGPATH 来更改日志路径,如下例所示:
UPDATE DB CFG FOR SGE USING NEWLOGPATH /db2/SGE/log_dir1
执行此命令并不会立即重新定位日志文件。新的日志路径将在下次重新启动 数据库时使用。然后,DB2
数据库开始在新目录中创建日志文件。
对于高可用性环境,DB2 的映射日志功能针对磁盘故障或人为错误提供额外的保护。为了支持映射日志,
DB2 for Linux, UNIX and Windows 提供了 MIRRORLOGPATH 数据库配置参数。通过设置此参数,
DB2 数据库会自动将日志文件写入活动和映射日志路径。例如,为了启用数据库 SGE 的映射日志,我
们使用了以下命令:
UPDATE DB CFG FOR SGE USING MIRRORLOGPATH /db2/SGE/log_dir2
日志文件管理配置中的一个重要元素是主要和备用 日志文件。LOGPRIMARY 数据库配置参数表示主要
日志文件的数量。LOGSECOND 数据库配置参数用于确定备用日志文件的数量。主要和备用日志文件
都是位于数据库日志目录中的文件。它们之间的差异在于分配时间。 主要日志文件是在数据库启用时分
配的(以防止它们不存在),而备用日志文件仅在需要存储长时间运行的事务的信息时分配。
DB2 日志文件从 S0000000.LOG 名称开始。每次在创建新日志时,其计数都会自动增加。 日志文件的
大小可以通过设置数据库配置参数 LOGFILSIZ 来修改。日志文件大小为 4k 的页。
要更改参数的值,可以执行以下命令:
UPDATE DB CFG FOR <db> USINGLOGPRIMARY <value>
UPDATE DB CFG FOR <db> USINGLOGSECOND <value>
UPDATE DB CFG FOR <db> USING LOGFILSIZ <value>
13
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
要使对 theLOGPRIMARY 和 LOGFILSIZ 参数的更改生效,您需要重新启动数据库。注意,在数据库重
新启动的过程中,DB2 数据库管理系统将在日志目录中创建一些额外的日志文件(在更改主要日志的
数量时)或创建一些使用新大小的新 日志文件(在更改日志文件大小时)。根据日志目录的 I/O 性能,
此过程可能会花费几分钟的时间。您可以在线更改 LOGSECOND 参数。
数据库引擎可用的日志空间大小将由主要及备用日志文件的数量和大小决定 ((LOGPRIMARY
+LOGSECOND) x LOGFILSIZ)。为了避免出现日志文件填满的情况(SQL 错误 SQL0964C),为数据
库分配足够的日志空间是非常重要的。另一个需要注意的地方是可用的磁盘空间 —— 配置好的日志文
件(主要和备选)必须能够保存到指定的目录中。
将数据库配置参数 LOGSECOND 设置为 “-1 ” 可以定义“无限的日志空间”。当备选日志文件填满时 ,
DB2 数据库会存档日志文件并创建下一个备选日志文件。这样,保存在日志磁盘中的主要日志文件永
远都只有一个备选日志文件。但是,在使用“无限日志”时必须格外小心,并且只能在特殊工作负载的
情况下使用:每次回滚或崩溃恢复可能都需要从存档媒介恢复日志文件,因此会减慢此流程的速度。
下表汇总了这些参数的值范围 (DB2 9.5 Fix Pack 3):
参数
值范围
注意事项
LOGPRIMARY
2-256
LOGSECOND
-1, 0-254
LOGFILSIZ
4-1048572
如果 LOGSECOND 不等于 -1,则
LOGPRIMARY +LOGSECOND 将无法
超过 256。
如果 LOGSECOND 等于 -1,则
LOGPRIMARY 的最大值是 256
4 KB 页面的数量
表 1:日志文件的值范围和数量
日 志 文 件 大 小 的 上 限 ( 1048572 4 KB 页 面 ) 以 及 日 志 文 件 数 量 为 256 的 上 限 (LOGPRIMARY
+LOGSECOND) 确定了 DB2 9.5 中活动日志空间的上限是 1024 GB(Fix Pack 3 和更高版本)。
为了最大限度地减少 I/O 操作,对数据库的更改首先将写入到日志缓冲中。LOGBUFSZ 数据库配置
参数定义了日志缓冲的大小。当事务被提交或日志缓冲填满时,日志缓冲内存将写入到磁盘上相应的日
志文件中。
2.2 日志文件的存档
如本文简介部分所述,DB2 for Linux, UNIX and Windows 提供了两种不同的日志方法:循环和存档日志。
循环日志是数据库在创建后使用的默认日志类型。由于使用循环日志时会受到一些限制,因此这种方法
不受 SAP 环境中的生产系统支持。取而代之的是,您需要配置数据库使用存档日志。
数据库使用存档还是循环日志将由数据库配置参数 LOGARCHMETH1 的值决定。如果将这个参数设置
为除 OFF 之外的其他值,则数据库将使用存档日志并且可以它们是“可恢复的”。要更新配置,您可
以使用以下命令:
UPDATE DB CFG FOR <db> USINGLOGARCHMETH1 <value>
如果将 LOGARCHMETH1 设置为 OFF 之外的任何其他值,则需要重新启动数据库来启动对存档方法
的更改。数据库将在日志文件格式化之后被置为“备份等待状态”。只有在对数据库执行了完整的备份
之后,才会连接到数据库。
根据存档方法以及所使用的存档日志文件的目标位置,您需要适当设置 LOGARCHMETH 1 数据库配
置参数。
14
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
下表汇总了可能的值:
值
模式/说明
OFF
未使用存档日志
DISK
DISK:<path>:
存档日志文件的磁盘位置
TSM
TSM[:MgmtClass]
如果未提供管理类,则默认使用本地 Tivoli Storage Manager 服务器中的管
理类;否则,提供作为目标位置使用的 Tivoli Storage Manager 管理类。
VENDOR
VENDOR:<library name>
用于存档日志的供应商库的名称
LOGRETAIN
LOGRETAIN
存档的日志文件仍然位于日志目录,并且未被 DB2 数据库重用。这将启用
数据库的前滚恢复功能,但不会存档日志文件。
USEREXIT
USEREXIT
DB2 引擎将调用用户提供的 db2uext2 可执行文件来存档日志文件。
表 2:LOGARCHMETH1 的可能值
在可恢复数据库中,DB2 日志文件管理器 db2logmgr(它是一个 EDU)将用于处理存档日志文件。
除了 LOGARCHMETH1 之外,DB2 系统还提供了一些数据库配置参数,用于进一步配置与存档日志
相关的选项。例如,您可以为存档的日志文件启用备选存档目标位置,或者定义 DB2 日志管理器遇到日
志文件存档失败时的行为。
在下一节中,我们将介绍对于存档日志文件最重要的一些参数。您可以在 IBM DB2 Information Center
找到与日志相关的完整参数列表。
LOGARCHMETH2 数据库配置参数的使用类似于 LOGARCHMETH1 数据库配置参数。您可以使用
它来定义存档日志文件的备选位置。当 LOGARCHMETH1 被设置为 LOGRETAIN 或 USEREXIT 时,
您不能使用此参数。
LOGARCHMETH1 或 LOGARCHMETH2 配置参数中定义的日志存档方法可能需要一些额外的选项。
可以在数据库配置参数 LOGARCHOPT1(配置日志存档方法 1)和 LOGARCHOPT2(配置日志存档
方法 2)中设置这些选项。
ARCHRETRYDELAY 数据库配置参数指定尝试存档日志文件的操作未成功完成时的等待时间。经过了
指定的时间之后(以秒为单位),它将尝试再次存档日志文件。NUMARCHRETRY 数据库配置参数指定
存档日志文件的尝试次数。
当日志文件存档尝试次数达到指定数量之后,日志文件将被移动到在 FAILARCHPATH 数据库配置参数
中指定的目录中。此数据库配置参数指定的目录将作为存档的日志文件的临时存储位置。这可以避免 日
志目录耗尽磁盘空间。
注 意 , 为 了 维 持 向 后 兼 容 性 , DB2 for Linux, UNIX and Windows 仍 然 支 持 以 前 的 数 据 库 参 数
LOGRETAIN 和 USEREXIT。但是,这两个参数已经淘汰并且不应继续使用。将 LOGARCHMETH1
更新为值 USEREXIT 或 LOGRETAIN 会自动更新数据库参数的 USEREXIT 和 LOGRETAIN。
15
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
2.3 日志文件链
每个 DB2 日志文件都与一个日志链相关联。日志链的定义是在特定时间段内存档的一系列日志文件。
每次在前滚到某个时间点或执行无前滚的恢复时,DB2 引擎都会自动启动一个新的日志链。
在启动新日志链时,DB2 引擎会截去最后使用的日志文件并继续使用新日志链中的日志文件。创建新的
日志链不会对在线日志文件的命名造成影响,并且对于用户是透明的。但是,日志链对存档的日志会有
一些影响。如果存档方法设置为磁盘,则日志文件将存储在为日志文件指定的路径下的子目录层次结构
中。
如果存档方法设置为 DISK:<log_archive>,则层次结构如下所示:
<log_archive>/<instance>/<database>/NODExxxx/Cyyyyyyy/Szzzzzzz.LOG
子目录“Cyyyyyyy”表示日志链。其名称从“C0000000”开始,并且每当新日志链启动时就会增加 1。
这样可以确保存档的日志文件不会被新的日志链覆盖。如果将某个数据库恢复到了早期的时间点,则有
时会出现日志文件同名但属于不同日志链的情况。下一节将更加详细地讨论此场景。
图 2-1:DB2 日志链
Log Chain LC1
B
1
2
3
4
5
6
/
RESTORE + ROLLFORWARD TO T=4
R1T4
1
2
3
4
5
6
7
8
9
New Log Chain LC2 starts
如图 2-1 所示,执行恢复或者前滚到某时间点的操作时会启动一个新的日志链。执行备份 B1 之后,
DB2 系统将事务信息存储在日志文件 1 到 7 中。数据库将继续像往常一样写入日志文件。但是,使用
备份映像 1 执行恢复或者将数据库前滚到时间点 T4 意味着启动一个新日志链。因此,日志文件 5 到
7 将被新的事务信息覆盖。在这种情况下, 数据库的日志文件 5 到 7 有两个版本,分别属于日志链
LC1 和在其日志存档目标中新启动的日志链 LC2。
当您使用第三方备份管理产品时,日志链的重要性也不可忽视。根据所使用的供应商, 日志链将整合到
解决方案中以确保存档日志的唯一性。每个日志文件的日志链信息还会写入到数据库恢复历史文件中。
对于每个日志文件,我们都可以看到存档位置和日志链。在数据库恢复的过程中,数据库将使用历史文
件中的信息来定位恢复所需的日志文件。要访问数据库历史文件中与存档日志相关的信息,您可以使用
4.3 小节所述的 LIST HISTORY ARCHIVE LOG 命令。
16
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
3 备份和恢复 —— 详细信息
如本文开始部分所述,备份和恢复是完全整合在 DB2 for Linux, UNIX and Windows 数据库引擎中的部件。
DB2 BACKUP 命令将保存在出现故障时重建数据库所需的所有信息。要恢复数据,您可以使用
RESTORE 和 ROLLFORWARD 实用工具。本章将介绍数据恢复可用的各种不同的命令。除了
BACKUP、RESTORE、RECOVER 和 ROLLFORWARD 实用工具之外,我们还将介绍可用于监视这些
操作的各种工具。
我们不会提供各命令的完整语法,而是会着重概述和演示如何使用这些命令。有关这些命令的完整描述,
请参阅 IBM DB2 Information Center。
3.1 备份数据库
要备份完整数据库(包括所有表空间),您可以使用备份数据库命令。或者,数据库管理员可以决定备
份数据库的单独表空间。
您可以使用 DB2 的备份数据库命令来离线或在线备份数据库。离线备份将与数据库建立独占连接,其
他应用程序将不能并发访数据库。在在线备份的过程中,应用程序可以使用数据库。其他一些实用工具 ,
比如 REORG TABLE,是不能与在线备份兼容的。有关兼容实用工具的完整概述,请访问 IBM DB2
Information Center。
默认情况下,DB2 备份实用工具会将表空间的所有页面保存到备份媒介中。此外,DB2 数据库管理系
统支持增量式备份。此处,实用工具仅保存在上次成功备份之后发生了更改的三个页面。根据所使用
的 关 键 字 , 最 近 的 备 份 可 以 是 任 何 类 型 的 数 据 库 备 份 (INCREMENTAL DELTA) 或 完 整 备 份
(INCREMENTAL)。
DB2 备份实用工具可以包含恢复和前滚备份映像到某一致时间点所需的大量日志文件。从 DB2 9.5 开
始,这就成为了在线备份的默认方式。DB2 备份(和恢复)操作支持各种目标媒介,比如磁盘、磁带、
存储快照、IBM Tivoli Storage Manager 或第三方工具(如 EMC NetWorker 或 HP OpenView Data
Protector)。
DB2 BACKUP 命令语法包括三个主要部分:
1)
备份的作用域:
- 数据库的名称
- 在线/离线
- 完整数据库备份或者仅备份一个或多个表空间 - 数据库分区
- 完整或增量式备份
2) 备份映像的目标(磁盘、磁带、管道、Tivoli Storage Manager、XBSA、供应商库、快照)
3) 额外备份选项
- 缓冲区数量、缓冲区大小、备份的并行机制(未指定时,数据库引擎会自动调优备份)
-使用 DB2 内置和第三方压缩库来对备份映像进行压缩(比如为了节省磁盘空间)
- BACKUP 命令的影响(是否使用调节)
- 备份映像的恢复将独占式或非独占式地使用所需的数据库日志
17
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
以下列表阐述了如何结合 BACKUP 命令的这些部分来启动数据库备份:
1)
首先,我们定义作用域:在线备份名为 P01 的数据库:BACKUP DB
P01 ONLINE <...>
2)
然后,在第二个部分中,我们定义 Tivoli Storage Manager 作为备份的目标,并为 Tivoli
Storage Manager 服务器分配两个会话:
<...> USE TSM OPEN 2SESSONS <...>
3)
最后,在第三个部分中,我们调节备份实用工具并在映像中排除日志文件:<...>
UTIL_IMPACT_PRIORITY 50 EXCLUDE LOGS
关于 DB2 BACKUP 命令的各种选项的全面描述不在本文范围之内。有关完整 DB2 BACKUP 命令语法
的更多信息,请访问 IBM DB2 Information Center。
为了便于读者更好地理解 DB2 BACKUP 命令,下一节将提供一些示例:


将名称为 SAMPLE 的数据库离线备份到 Windows 系统中的 d:\backups 目录
BACKUP DATABASE SAMPLE TO d:\backups
将数据库 WGN 在线备份到 IBM Tivoli Storage Manager:
BACKUP DB WGN ONLINE USE TSM

使用 12 个磁带驱动器将数据库 ISP 在线备份到 EMC NetWorker;NetWorker
Module 的参数化任务将通过一个选项文件来完成:
BACKUP DB ISP ONLINE LOAD /usr/lib/libnsrdb2.so OPEN 12SESSIONS
OPTIONS @/db2/db2isp/ . nsrenv

将数据库 Q43 的两个表空间在线备份到 /data/backups1 和 /data/backups2 两个文件系统中:
BACKUP DB Q43 TABLESPACE (Q43#BTABD, Q43#BTABI) ONLINE TO
/data/ backup s1, /data/ backup s2


将数据库 GBP 的分区 7 在线备份到 IBM Tivoli Storage Manager
BACKUP DB GBP ON DBPARTITIONNUM 7 ONLINE USE TSM
将数据库 Q34 增量在线备份(备份最近一次备份后发生更改的所有数据库页面)到磁带:
BACKUP DB Q34 ONLINE INCREMENTAL DELTA TO /dev/rmt0
注意,BACKUP 命令支持关键字 DATABASE 以及它的缩写 DB。RESTORE、ROLLFORWARD 和
RECOVER 命令也可以使用这种缩写形式的关键字。
您随时可以使用 DB2 FORCE APPLICATION 命令中断运行中的 DB2 备份操作。该命令将执行负责管
理备份流程的代理。有关如何中断运行中的备份的更多信息,请阅读 4.7 小节“列表应用/执行应用”
18
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
19
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
3.2 恢复数据库
DB2 的 RESTORE 命令用于恢复使用 DB2 BACKUP 命令创建的 DB2 备份映像。RESTORE 命令可
以重新创建完整的数据库或者数据库中的部分表空间。要恢复单一表空间,可以使用完整的数据库备
份映像。RESTORE 命令的 REBUILD 选项允许您通过一系列表空间备份恢复完整的数据库。
如果使用增量式备份映像恢复数据库,则 RESTORE 命令会自动恢复重建数据库所需的所有完整和增
量备份映像。您可以使用 RESTORE 命令从备份映像恢复数据库的历史文件,并为重定向的恢复操作
生成 脚本文件。
此外,您还可以使用 DB2 执行跨平台的恢复。所有大端 UNIX 平台的兼容性都与小端平台不相上下。
但是,如果源系统的操作系统不同的目标系统的操作系统,则不能恢复增量备份映像。
要将数据库从一个 DB2 版本更新为更新的版本,可以使用离线备份映像。例如,在运行 DB2 9.7 的
DB2 实例中,可以恢复针对 DB2 9.1 的备份映像。恢复操作结束时会自动调用数据库升级程序。
为了帮助您更好地理解命令语法,我们总结了 DB2 RESTORE 命令的主要部分 —— 类似于 BACKUP
命令:
1)恢复的作用域:
-要恢复的数据库的名称
-恢复完整数据库或一组表空间,或仅恢复历史文件?
-恢复包含在备份映像中的日志文件?
-应该使用重建方法来从表空间备份恢复数据库吗?
- 是否应该从增量备份恢复?
2)用于恢复的备份映像的位置:
-磁盘、磁带、管道、Tivoli Storage Manager、XBSA、供应商库、快照
-备份映像的时间戳
3)恢复目标
- 恢复到已有的同名数据库?
- 或者恢复到不同名称的新数据库?
- 是否要更改数据库目录或存储路径(用于自动存储)?
- 在恢复日志文件时提供恢复文件的目标目录
- 数据库的新日志路径定义
4)额外恢复选项:
- 缓冲区数量、缓冲区大小、并行备份(如果未指定,DB2 会自动调优恢复)
- 是否替换已有历史文件?
- 是否是重定向的恢复(新的表空间容器定义)?
- 解压库的名称(如何使用第三方压缩库压缩了备份映像)
下面演示了如何结合恢复命令的四个部分来启动数据库恢复:
1)
首先,定义作用域:恢复数据库 P01:RESTORE DB P01
<..>
2)
然后,在第二部分中,定义用于恢复的备份映像;在本例中,备份执行于 2009 年 6 月
15 日,并且存储在 IBM Tivoli Storage Manager 中:
<..> USE TSM TAKEN AT 20090615 OPEN 2SESSIONS <..>
3)
在第三部分中,定义两个数据库自动存储路径以及一个新的日志路径:
<..> ON /db2/P01/sapdata1, /db2/P01/sapdata2 NEWLOGPATH
/db2/P01/log_dir <..>
20
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
4) 最后,一些额外的恢复选项 —— 我们仅仅覆盖了已有数据库,而没有确认提示:
c...> WITHOUT PROMPTING
关于 DB2 RESTORE 命令的各种选项的完整描述不在本文讨论范围之内。有关 DB2 RESTORE 命令语
法的完整信息,请访问 IBM DB2 Information Center。
为了帮助读者更好地理解 DB2 RESTORE 命令,以下列表提供了一些示例:

从 Windows 目录 d :\backups 恢复 SAMPLE 数据库的最新备份映像:
RESTORE DB SAMPLE FROM d:\backups

使用 IBM Tivoli Storage Manager 中创建于 2009 年 2 月 22 日的备份映像恢复 WGN 数据库:
RESTORE DB WGN USE TSM TAKEN AT 20090222

使用 12 个磁带驱动器从 EMC NetWorker 恢复 ISP 数据库,并通过选项文件指定
NetWorker Module 参数
RESTORE DB ISP LOAD /usr/lib/libnsrdb2.so OPEN 12SESSIONS OPTIONS
@/db2/db2isp/.nsrenv TAKEN AT 20081227150408

作 Tivoli Storage Manager 中的某备份映像的三个表空间重建 ECA 数据库:
RESTORE DB ECA REBUILD WITH TABLESPACE (SYSCATSPACE, ECA#BTABD,
ECA#BTABI) USE TSM
如果要使用 DB2 RESTORE 命令,则需要考虑以下事项:

TAKEN AT 参数所使用的时间戳格式是 <yyyymmddhhmmss>。可以提供完整的时间戳,或者
它的一部分。例如,备份映像的完整时间戳是在备份成功完成时返回的。

如果在 TAKEN AT 参数中只使用时间戳的一部分,则应确保 DB2 数据库在指定的日期/时间只
能找到一个备份映像。否则,RESTORE 命令将以失败告终。例如,假定数据库 WGN 在
2009 年 2 月 22 日执行了两次备份 —— 分别于 8:15h 和 18:30h。对于这种情况,使用
TAKEN AT 20090222 格式的时间戳是不够的(因为 DB2 数据库可以看到两个当天的备份映
像)。取而代之的是,所提供的时间戳至少需要包含小时,以便 DB2 实用工具每次只能看到
一个备份映像。例如,上午的备份可以使用 TAKEN AT 2009022208 这样的时间戳格式。


如果未指定备份映像时间戳,则 DB2 数据库会自动使用当前可用的最新备份映像。
在标准的 SAP 环境中,每个表都是使用单独的索引表空间定义的。如果您只希望恢复表空间的
一个子集,则需要恢复完整的表究竟。例如,如果要恢复表空间 <SAPSID>#POOLD,那么也
需要恢复索引表空间 <SAPSID>#POOLI。否则,恢复操作将以失败告终。
21
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
3.3 重定向恢复
如前所述,DB2 BACKUP 命令将保存包括表空间布局在内的数据库配置。RESTORE 命令将使用此信
息创建具备与源数据库相同的名称、配置和表空间布局的数据库。在某些情况中,DB2 恢复的默认行为
并不尽如人意。例如,如果创建了已有数据库的副本,则数据库名称通常也会发生更改。要更改数据库
名称,需要指定 RESTORE 命令的 INTO 选项,如下例所示。

将 FCB 数据库的映像恢复到新的 FCK 数据库:
RESTORE DB FCB USE TSM TAKEN AT 20090222 INTO FCK
以上命令将 FCB 数据库的映像恢复到新的 FCK 数据库。但是,例如,新的 FCK 数据库仍然使用与
源 FCB 数据库相同的表空间容器。在许多情况中,这是不合人意的 —— 这对于 SAP 环境尤为明显,
因为其数据库名称 <DBSID> 是 DB2 相关文件系统(比如 /db2/<DBSID>/sapdata1)的一部分。本节
将介绍如何使用 DB2 RESTORE 命令来更改数据库布局。
3.3.1 REDIRECT RESTORE 概述
DB2 RESTORE 支持所谓的重定向恢复操作。如果将表空间容器恢复到不同的物理位置,则需要使用
重定向恢复。此外,将数据库恢复到源数据服务器之外的目标服务器也被认为是重定向恢复。可以 在
RESTORE 命令中使用 REDIRECT 关键字来指定重定向恢复。
重定向恢复的阶段如下:
1) 使用 REDIRECT 选项发出 RESTORE 数据库命令
DB2 数据库管理系统从备份映像读取源数据库的配置。
2) 使用 SET TABLESPACE CONTAINERS 命令定义数据库的表空间容器
DB2 数据库管理系统使用新定义的表空间容器创建和格式化“空”数据库。
3)
再次发出 RESTORE 命令,这次使用 CONTINUE 选项。DB2 数据库管理系统会将数据
写入到新的表空间容器中。
成功完成恢复之后,数据库将被置于前滚恢复暂停状态。要使用源数据库中的日志文件,并让数据库上
线,可以使用 ROLLFORWARD 命令。
3.3.2 REDIRECT RESTORE 脚本
在执行重定向恢复时的最佳实践是将所有必要的命令保存在一个脚本中。手动创建这样的脚本是一项十
分艰巨的任务,对于需要定义大量表空间容器的大型 SAP 数据库来说尤为如此。为了简化此过程,
DB2 数据库管理系统提供了一个选项,可允许您使用 RESTORE 命令自动生成重定向恢复的脚本。除了
DB2 功能之外,SAP 提供了一个功能相似的 brdb6brt 工具。这两个实用工具都可以生成执行重定向恢复
所需的脚本。
在本文中,我们只能大致介绍一下这两个工具,而无法提供详细的信息。有关重定向恢复的全面信息 ,
请阅读本系列介绍最佳实践和高级主题的文章。
这两个工具(DB2 RESTORE 和 brdb6brt)将查询源数据库的表空间信息。它们收集数据的方式有所不
同:RESTORE 命令直接从指定备份映像检索信息。因此,所生成的脚本中的表空间将匹配存储在 备份
映像中的布局。brdb6brt 工具将查询活动源数据库的当前表空间布局。如果在上一次备份之后创建或删
除了表空间,则不能使用 brdb6brt 工具来创建重定向恢复脚本。
22
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
在该工具读取了当前表空间布局之后,脚本将包含备份映像中所没有的关于表空间的信息。
无法访问源数据库时,可以使用 DB2 RESTORE 命令创建重定向恢复脚本,比如进行灾难恢复。另一
方面,brdb6brt 工具还提供了其他一些功能。例如,除了为重定向恢复创建脚本文件之外,您还可以使
用该工具启动 DB2 备份和恢复,以及为 db2relocatedb 命令创建配置文件。此外,brdb6brt 工具还可
以自动对所有源数据库进行重新命名,以匹配新的数据库名称。
DB2 RESTORE 命令将访问指定备份映像并读取表空间配置。重定向恢复脚本的 SET TABLESPACE
CONTAINERS 部分需要使用此信息。下面这个例子展示了如何使用 DB2 RESTORE 命令创建重定向恢
复脚本。在本例中,我们创建了一个用于将 XEG 数据库恢复到 YEG 数据库的脚本。备份是使用
EMC NetWorker 库 (libnsrdb2.so) 创建的:
RESTORE DB XEG LOAD /usr/lib/libnsrdb2.so OPEN 2SESSIONS INTO YEG REDIRECT
GENERATE SCRIPT xeg2yeg.clp
RESTORE 命令将根据 XEG 数据库的信息创建一个 xeg2yeg.clp 脚本。您可以编辑此脚本,以反映
恢复到目标 YEG 数据库所需的更改。完成对脚本的所有更改之后,您可以将它传递给目标 DB2 实例。
在目标 DB2 实例中,您可以使用 DB2 命令行处理器 (CLP) 来执行脚本。脚本会自动为进程(在本例
中为 XEG_NODE0000.out)创建一个日志文件。要执行重定向恢复脚本,可以使用以下命令:
usdbyeg:db2yeg % db2 –tvf xeg2yeg.clp
brdb6brt 程序是 SAP NetWeaver ABAP 内核的一部分。它位于 /sapmnt/<SAPSID>/exe 目录。该命令
的用法与 DB2 RESTORE 命令的 REDIRECT GENERATE SCRIPT 选项相类似。在本例中,您将从
XEG 数据库创建一个新的 YEG 数据库,这需要在运行 brdb6brt 工具时指定以下选项:
uscixeg : xegadm % brdb6brt -bm RETRIEVE -es -replace XEG=YEG, db2xeg=db2yeg
执行 brdb6brt 将创建一个名称为 ‘<DBSID>_NODE<nnnn>.scr’ 的脚本文件;在本例中,该文件的名
称为 XEG_NODE0000.scr。与 DB2 RESTORE 功能不同,brdb6brt 工具将从源数据库而不是备份存
储来读取备份映像。–replace 选项会自动将旧的 SAP 系统 ID (XEG) 替换为新的 ID (YEG)。对系统
环境应用脚本文件之后,需要将它传递给目标数据库服务器。您可以使用 DB2 命令行处理器来启动脚
本。与使用 RESTORE 命令创建的脚本相同,系统会自动在输出文件中写入数据,包括 brdb6brt 调用
的各种 DB2 命令的所有输出。
3.4 前滚数据库
如果所恢复的是可恢复 DB2 数据库,则数据库将在恢复结束时被设置为前滚暂停状态。此时不能连接
到数据库。要打开数据库,您需要使用 ROLLFORWARD 命令。
为了对处于前滚暂停状态的数据库应用事务日志, DB2 数据库管理系统提供了 ROLLFORWARD 命令。
您可以使用此命令将数据库回滚到某个特定的时间点,回滚到日志文件最后可用的时间,或者回滚最
短恢复时间(备份结束时)。可以使用在上数据库服务器设置的 Coordinated Universal Time (UTC)
或本地时区来指定时间点。ROLLFORWARD 命令所使用的时间戳不同于 RESTORE 所使用的时间戳。
对于 ROLLFORWARD 来说,它使用格式为 <yyyy-mm-dd-hh.mm.ss>。
您可以多次运行 ROLLFORWARD 命令来回滚到不同某待命数据库的不同(更近的)时间点。提供了
时间点之后,您不能使用较早的时间戳来执行另一次 ROLLFORWARD 命令。
使用 STOP(或者与之等价的 COMPLETE)参数运行 ROLLFORWARD 命令之后,DB2 引擎会回
滚所有未提交的事务,并打开数据库。
23
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
针对此数据库提交的所有后续 ROLLFORWARD 命令都将以失败告终。
关于 DB2 ROLLFORWARD 命令的各种选项的完整描述不在本文讨论范围之内。有关更多信息,请
访问 IBM DB2 Information Center。
下表提供了一些 DB2 ROLLFORWARD 命令的例子:

查询 ISP 数据库的前滚状态(例如,查看恢复所需的下一个日志文件):
ROLLFORWARD DB ISP QUERY STATUS

将 SAMPLE 数据库前滚到最近的日志并在操作结束时打开数据库:
ROLLFORWARD DB SAMPLE TO END OF 日志 S AND STOP

将数据库 WGN 前滚到 02/23/2009 12:00 (UTC):ROLLFORWARD
DB WGN TO 2009-02-23-12.00.00.000000
3.5 恢复数据库
RECOVER 命令可以通过结合 RESTORE 和 ROLLFORWARD 命令来简化数据库恢复操作。数据库
管理员只需要指定所需的恢复时间点。随后,RECOVER 命令将自动执行恢复到此时间点所需的所有的
操作,比如查找正确的备份映像、恢复和前滚恢复。RECOVER 命令将读取数据库的历史文件。对于此
文件不可用的情况,比如目标数据库不存在,RECOVER 命令将允许使用指定的历史文件。您可以重新
启动中断的 RECOVER 命令。如果可能,DB2 引擎将尝试继续之前的 RECOVER 命令。
下面给出了 DB2 RECOVER 命令的一些例子:

将 SAMPLE 数据库恢复到最近的日志:
RECOVER DB SAMPLE

将 WNG 数据库恢复到指定的时间点 (UTC):
RECOVER DB WNG TO 2009-03-30-12.00.00
有关完整 RECOVER 命令语法的更多信息,请访问 IBM DB2 Information Center。
24
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
4 其他命令和实用工具
下一节提供关于在日志、备份和恢复上下文有用的其他命令和实用工具的信息。这些命令主要用于监
视 DB2 实用工具,以及提供对于日常操作有用的信息。我们还将阐述如何识别运行中的 DB2 备份,
以及如何使用此信息通过结束数据库的备份会话来取消备份操作。
4.1 DB2CFEXP / DB2CFIMP
完整的 DB2 数据库备份包括重建数据库所需的一切内容,比如数据、日志文件和配置信息。但是,数
据库外部的信息,比如 DB2 注册表变量或数据库管理器(实例)的配置,则不是数据库备份的一部分。
DB2 数据库管理系统提供了导出 (CFEXP) 和导入 (DB2CFIMP) 客户机配置的命令。此外,您可以使用
这些命令来对数据库管理器配置、DB2 注册表设置以及数据库和节点目录进行备份。 DB2CFEXP 命
令将信息写入到一个文本文件中(您可以将它存储在安全位置)。在恢复时,您可以导入能使用
DB2CFIMP 命令的文件。
下面给出了备份数据库配置的示例命令:

将数据库外部的信息备份到 cfg_backup.txt 文件:
db2cfexp cfg_backup.txt BACKUP

从 db2cfexp 创建的文件导入信息:
db2cfimp cfg_backup.txt
4.2 ARCHIVELOG
DB2 日志管理器可以自动存档和检索 DB2 日志文件。在某些场景中,比如对于待命数据库,在特定的
时间点执行 ARCHIVE LOG 操作是很有用的。DB2 for Linux, UNIX and Windows 支持对于可恢复数据
库执行 ARCHIVE LOG 命令。
通过运行此命令,DB2 引擎可以关闭和截断当前的活动日志文件。然后,此日志文件将由在数据库配
置参数 LOGARCHMETH1 中指定的方法进行处理。
以下示例将关闭数据库 Q43 的当前活动日志,并将日志头移动到下一个日志文件。系统将根据数据库
配置参数 LOGARCHMETH1 中定义的方法来存档日志文件:
ARCHIVE LOG FOR DB Q43
在运行 ARCHIVE LOG 命令之前,您需要断开当前与数据库之间的 DB2 CLP 会话 from the 数据库(
例如,通过使用 TERMINATE 命令)。否则,ARCHIVE LOG 会失败并显示 SQL 消息 SQL1493N。
除了手动的 ARCHIVE LOG 命令之外,数据库管理系统还会在特定的情况中截断(和存档)当前的活动
日志。例如,在线备份在结束时会对当前活动日志进行存档。这允许收集恢复数据库所需的一些日志文
件。如果默认使用的是 DB2 9.5,那么这些日志文件将包含在备份映像中。
25
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
4.3 LIST HISTORY
DB2 LIST HISTORY 命令用于扫描数据库历史文件。此文件包含关于可用的各种不同的实用工具的执
行信息,比如 BACKUP 和 ROLLFORWARD。LIST HISTORY 命令的 BACKUP 关键字用于列出备份
和恢复操作。例如,您可以使用 LIST HISTORY 命令所提供的信息来检查备份操作是否已成功执行,
以及操作运行了多长时间。输出将提供关于备份的额外信息,比如 备份映像的位置和备份操作的类型
(离线、在线或增量)。
通过 SQL,您还可以使用 SYSI BMADM. DB_HISTORY 视图来访问历史文件中的信息。
可以查询某个数据库的完整历史文件,或者仅显示特定时间点之后的条目。下面的例子演示了这两种
方法:

要列出 Q43 数据库的所有备份和恢复操作,输入:
LIST HISTORY BACKUP ALL FOR DB Q43

要列出 ECA 数据库在 03/15/2009 之后的备份和恢复操作,输入:
LIST HISTORY BACKUP SINCE 20090315 FOR DB ECA
在下面的示例输出中,我们看到了成功在线备份的示例输出:
Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log Backup ID
B D 20090327182729001
N
O S0037420.LOG S0037476.LOG
Contains 32 tablespace(s):
00001
00002
00003
00004
[...]
SYSCATSPACE
Q43#BTABD
Q43#BTABI
SYSTOOLSPACE
00031 Q43#ODSD
00032 Q43#ODSI
Comment: DB2 BACKUP Q43 ONLINE
Start Time: 20090327182729
End Time: 20090328102304
Status: A
EID: 60443 Location: /usr/lib/libnsrdb2 .so
下一个例子显示了某中断备份操作的输出。OPT 数据库备份失败并显示 SQL 消息 -2413(见 SQLCA
区域)。数据库使用的是循环日志,因此无法执行在线备份,从而会抛出 SQL 错误消息。
26
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log Backup ID
-- --- ------------------ ---- --- ------------ ------------------------B D 20090327161157000 N S0000003.LOG
----------------------------------------------------------------------------------------------------------------------------------------------------Comment: DB2 BACKUP OPT ONLINE
Start Time: 20090327161157
End Time: 20090327161202
Status: A
--------------------------------------------------------------------------EID: 721 Location:
SQLCA Information
sqlcaid : SQLCA sqlcabc: 136 sqlcode: -2413 sqlerrml: 0
sqlerrmc:
sqlerrp : sqlubIni
sqlerrd : (1) 0 (2) 0 (3) 0
(4) 0 (5) 0 (6) 0
sqlwarn : (1) (2) (3) (4) (5) (6)
(7) (8) (9) (10) (11)
sqlstate:
与提供的关于备份和恢复操作的信息类似,您可以使用 DB2 历史文件来查询关于日志文件存档的信息。
LIST HISTORY ARCHIVE LOG ALL FOR DB <db>
以下示例输出显示了存档到磁盘位置 /db2/EK1/archived_logs 的日志文件条目。日志文件属于日志链
3 – 如“Current Log”栏所示:C0000003。
Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log Backup ID
X D 20090304152433
1
D S0000009.LOG C0000003
Comment:
Start Time: 20090304152433
End Time: 20090304152433
Status: A
EID: 31 Location: /db2/EK1/archived_logs/db2ek1/EK1/NODE0000/C0000003/S0000009.LOG
4.4 LIST UTILITIES
借 助 LIST UTILITIES 命 令 , 您 可 以 监 视 各 种 DB2 实 用 工 具 , 比 如 BACKUP 、 RESTORE 和
ROLLFORWARD。此命令将列出所有数据库分区上的所有当前活动的 DB2 实用工具。要显示关于实
用工具的额外信息,比如已经使用的字节数量,可以使用 SHOW DETAIL 参数。
还可以通过 SQL 访问 LIST UTILITIES 命令提供的信息。为此,DB2 数据库管理系统提供了以下两
个数据库视图:SYSI BMADM.SNAPUTI L_PROGRESS 和 SYSI BMADM.SNAPUTI L。
以下输出显示了 LIST UTILITIES SHOW DETAIL 命令返回的信息。我们注意到 ICV 数据库有一个未调
节的在线备份是活动的。大约 80% 的数据库数据已被备份:
27
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
icvdb:db2icv 1> db2 list utilities show detail
ID
= 23487
Type
=
=
=
=
=
=
=
Database Name
Partition Number
Description
Start Time
State
Invocation Type
Throttling:
Priority
=
Progress Monitoring:
Estimated Percentage Complete =
Total Work
=
Completed Work
=
Start Time
=
BACKUP
ICV
0
online db
03/30/2009 11:02:49.114974
Executing
User
Unthrottled
80
2332814791685 bytes
1855671877101 bytes
03/30/2009 11:02:49.115710
4.5 GET SNAPSHOT
DB2 GET SNAPSHOT 命令使用 DB2 数据库管理系统的监控工具来收集各种类型的状态信息。对于
本文中的场景,您可以使用数据库快照来访问一些有趣的信息,比如:

上一次备份时间戳

当前和最后一条日志的文件编号

数据库占用的日志空间以及备选日志文件的分配数量。
下面的例子摘录自对 Q43 数据库执行数据库快照的结果。在输出中,我们可以轻松地确定数据库上次
成功备份的时间戳 (06/19/2009 06:28:01)。输出的下一部分将帮助您融解数据库所占用的日志空间。例
如,如果快照持续报告分配了备选日志文件,则主要日志文件的数量应该在增加。输出的最后部分返
回了关于数据库当前日志文件的信息:
usdbq43:db2q43 % db2 GET SNAPSHOTfor db on q43
Database Snapshot
Database name
= Q43
Database path
= /db2/Q43/db2q43/NODE0000/SQL00001/
<...>
First database connecttimestamp
Last resettimestamp
= 06/16/2009 15:53:35.057275
=
Last backup timestamp
= 06/19/2009 06:28:01.000000
快照 timestamp
<...>
= 06/22/2009 11:02:05.600354
Log space available to the database (Bytes)= 25966749471
Log space used by the database (Bytes)
= 145250529
Maximum secondary log space used (Bytes)
Maximum total log space used (Bytes)
= 0
= 4216103622
Secondary logs allocated currently
<...>
= 0
File number of first active log
= 41373
File number of last active log
File number of current active log
= 41417
= 41374
File number of log being archived
= Not applicable
<...>
28
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
4.6 db2pd
db2pd 命令为数据库管理员提供了各种非常有用的监控信息。db2pd 命令提供的信息类似于使用 GET
SNAPSHOTor LIST UTILITIES 命令收集到的数据。
下列提供了对于备份和恢复有用的一些 db2pd 参数:

– recovery –db <db name>
显示恢复进程的进展

–logs –db <db name>
列出数据库的日志文件以及日志文件存档的状态

–fvp <agent eduid of backup process>
控制正在执行各种任务(比如执行备份)的第三方供应商的进程

–utilities
类似于 LIST UTILITIES 命令提供的信息
注意,与 LIST UTILITIES 命令不同,db2pd 仅列出关于当前数据库分区的信息。如果需要检查所有或
特定数据库分区的信息,可以使用适当的选项(–dbp <partition> 或 –alldbp)。
下面的例子显示了 db2pd 使用不同的备份和恢复选项时的不同输出:
1) db2pd –utilities 的输出:我们可以看到与 ICY 数据库的活动前滚恢复相关的信息;回滚操作在第一段
中(前滚恢复):
icydb:db2icy > db2pd -utilities
Database Partition 0 -- Active -- Up 247 days 12:24:24
Utilities:
Address
ID
Type
State
Invoker
Priority
StartTime
DBName NumPhases CurPhase Description
0xC00000001137FBA0 2233
ROLLFORWARD RECOVERY
0
0
0
31 11:31:24 ICP
2
1
Database Rollforward Recovery
Progress:
Address
ID
PhaseNum CompletedWork
StartTime
Description
0xC00000001137E818 2233
1
16415179148 bytes
Tue Mar 31 11:31:24 Forward
0xC00000001137E930 2233
2
0 bytes
NotStarted
Backward
Tue Mar
TotalWork
Unknown
Unknown
29
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
2)db2pd –recovery 的输出:此输出显示之前示例中的 ICY 数据库的前滚进程的相关信息。我们可以看
到前滚进程正在处理的日志序列号(Log Sequence Number,LSN)。存储 LSN (S0134711.LOG) 的数
据库日志文件也显示在其中::
hs2050:db2icy > db2pd - recovery -db icy
Database Partition 0 -- Database ICY -- Active -- Up 0 days 00:18:16
Recovery:
Recovery Status
CurrentLog
Current LSN
Job Type
Job ID
Job Start Time
Job Description
Invoker Type
Total Phases
Current Phase
0x04000401
S0134711.LOG
262BA033DDB6
ROLLFORWARD RECOVERY
2233
(1238491884) Tue Mar 31 11:31:24 2009
Database Rollforward Recovery
User
2
1
Progress:
Address
TotalWork
PhaseNum Description
0xC00000001137E818 1
Unknown
0xC00000001137E930 2
Unknown
StartTime
CompletedWork
Forward
Tue Mar 31 11:31:24 16592958914 bytes
Backward
NotStarted
0 bytes
3) db2 –db Q43 –log 的输出:可以看到数据库 Q43 的日志状态、当前活动日志文件 (41374) 以及日志
存档状态(此处为 Success)。从结束部分可以看到此时日志目录中分配的所有日志文件,包括日志
文件的 LSN。
usdbq43:db2q43 % db2pd -db q43 -log | more
Database Partition 0 -- Database Q43 -- Active -- Up 5 days 19:24:13
Logs:
Current Log Number
41374
Pages Written
Method 1 Archive Status
41252
Success
Method 1 Next Log to Archive 41374
Method 1 First Failure
n/a
Method 2 Archive Status
n/a
Method 2 Next Log to Archive n/a
Method 2 First Failure
Address
StartLSN
n/a
Pages
Filename
0x000001000D17CE18 0x07E85C1C8000 0x00000000 51200
State
Size
51200
S0041373.LOG
0x0000010845BC6858 0x07E8689C8000 0x00000000 51200
51200
S0041374.LOG
0x00000100006C88F8 0x07E8751C8000 0x00000000 51200
51200
S0041375.LOG
0x00000100006C89B8 0x07E8819C8000 0x00000000 51200
51200
S0041376.LOG
0x000001000D14F458 0x07E88E1C8000 0x00000000 51200
51200
S0041377.LOG
0x00000100006C8BF8 0x07E89A9C8000 0x00000000 51200
51200
S0041378.LOG
0x000001000D157758 0x07E8A71C8000 0x00000000 51200
51200
S0041379.LOG
<...>
30
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
4.7 LIST APPLICATIONS / FORCE APPLICATION
您随时都可以使用 DB2 FORCE APPLICATION 命令中断运行中的 DB2 BACKUP 或 RESTORE 操作。
FORCE 命令将请求执行 DB2 备 份 的 DB2 进程的应用程序句柄。要识别此句柄,可以使用 DB2
LIST APPLICATIONS 命令(带 SHOW DETAIL 命令选项)。
以下示例演示了如何识别正在执行备份的 DB2 应用程序句柄:
1) 首先,我们使用 LIST APPLICATIONS SHOW DETAIL 命令查找备份操作(查找关键字
“Performing a Backup”):
usdbxeg:db2xeg % db2 list applications show detail | grep –i backup
DB2XEG
db2bp
18471
*LOCAL.db2xeg.090512103634
00001 33
0
12751
Performing a backup
05/12/2009 12:36:35.467379 XEG
/db2/XEG/db2xeg/节点 0000/SQL00001/
2)
通过第一步,我们知道 db2bp 进程的应用程序句柄正在执行备份。接下来,我们将使用
DB2 命令 FORCE APPLICATION 来强制输出此应用程序句柄:
usdbxeg:db2xeg % db2 "force application (18471)"
DB20000I The FORCE APPLICATION command completed successfully.
DB21024I This command is asynchronous and may not be effective immediately.
3)
强制从数据库输出应用程序的任务将同步执行并且可能会花费一些时间。应用程序本身将接收
到一条 SQL1 224N 消息。假定备份操作是在 DB2 命令行窗口中启动时,则消息应如下所示:
usdbxeg:db2xeg % db2 " backup db XEG online
load /usr/lib/libnsrdb2.so open 2SESSIONS
options @/db2/XEG/admin/ backup.opt excludelogs"
SQL1224N The database manager is not able to accept new requests, has
terminated all requests in progress, or has terminated your particular request
due to an error or a force interrupt. SQLSTATE=55032
31
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
5 DB2 和 SAP 集成
本章讨论如何将 DB2 备份功能集成到 SAP DBA Cockpit 中。DBA Cockpit 是 SAP 系统的中央数据库
监控和管理组件。在 DBA Cockpit 中(除了其他许多与 DB2 相关的功能),您可以调度 DB2 数据库
备份并监控它们的状态。DBA Cockpit 还允许检查和存档 DB2 事务日志文件。
5.1 备份和日志的配置
DBA Cockpit 为上一节介绍的 DB2 备份数据库命令和配置提供了一个图形界面。您可以使用 DBA
Cockpit 来配置 DB2 日志和备份。
要启动 DBA Cockpit,需要在您的 SAP 系统中调用事务 DBACOCKPIT。在导航框中,选择
Configuration _ Database 并选择希望配置的适当区域。如果要配置日志、备份和恢复的参数,可以使
用 Logging、Log File Management、Backup & Recovery 和 Tivoli Storage Manager 选项。
图 5-1:DBACOCKPIT – 数据库配置
要修改参数,双击参数并根据需要对其进行修改。一些说明性的参数是不可修改的。例如,下面的图 52 显示了与数据库日志相关的配置参数:
32
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
图 5-2:使用 DBACOCKPIT 修改参数
5.2 执行备份
您可以在 SAP 系统中使用 DBA Cockpit 来启动和调度临时数据库备份以及重复备份。较新版本的
DBA Cockpit 提供了一个配置 DB2 自动备份的选项。要手动执行或调度数据库备份, 在 DBA Cockpit
的导航框中选择 Jobs DBA Planning Calendar。此时将出现 DBA Planning Calendar 界面,如下图所
示:
图 5-3: DBA Planning Calendar
DBA Planning Calendar 界面中的 Action Pad 提供了一个 DB2 管理和维护选项列表。以下选项可
用于执行备份:

Database Backup into TSM
此操作用于将数据库备份到 IBM Tivoli Storage Manager

Database Backup to Device
将数据库备份到磁盘、磁带或指定管道
33
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介

Database Backup with Vendor Library
使用 EMC NetWorker 等供应商库来执行备份
要调度备份,将相应的操作项拖放到日历区域。目标日历单元表示所需执行日期和执行时间的结合。下图
显示如何设定于 6 月 9 日星期二 14:00h 将 DB2 备份到 IBM Tivoli Storage Manager。
图 5-4:使用拖放式操作调度备份
或者,选择所需的日历单元并选择 Add 按钮或双击所需的日历单元。无论采用哪种方式,都会出现一
个对话框。
如果使用拖放式方法来调度操作,则 Action 字段中已经预先选择了各自的任务。如果使用其他替代方法
来调度备份,则需要手动在 Action 字段中选择所需任务。
图 5-5:操作对话框:操作参数
在 Schedule a New Action 对话框的 Action Parameters 选项卡页面中,您可以为 DB2 BACKUP 命令设
置所需参数。其中的可用选项与 DB2 命令行中可用的选项大致相同。唯一的限制是所有通过 DBA
Planning Calendar 调度的备份都是在线备份。
34
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
您可以设置以下备份参数:

在备份映像中包括日志文件(BACKUP 命令的 INCLUDE LOGS 参数)—— DB2 9.5 及更新
版本不需要



完整或增量备份(INCREMENTAL 或 INCREMENTAL DELTA)


优先级定义 DB2 是否应该调节备份实用工具 —— 保留此字段为空可以运行未调节的备份
备份压缩(BACKUP 命令的 COMPRESS 参数)
缓冲区数量、缓冲大小、并行机制——通常,您可以保留这些字段为空,让 DB2 数据库管理
系统自动调优参数
I/O 会话的数量(BACKUP 命令的 OPEN <n> SESSIONS 参数)—— 使用适合备份基础架
构的值
在 Schedule a New Action 对话框的 Recurrence 选项卡页面中,您可以定义何时以及如何运行备份。
图 5-6:操作对话框 —— 递归设置
您可以使用递归设置启动只运行一次或定期运行的数据库备份。如果某备份只需要运行一次,那么可以
决定在预定定义的特定日期或立即启动备份。要调度备份在特定时间点运行,可以在 Planned Start 字
段中选择 Add 按钮。要立即启动备份操作,选择“Execute Immediately”。
DBA Cockpit 还允许定义备份的递归模式。例如,我们可以定义每天凌晨 1 点执行数据库备份。DBA
Cockpit 允许以小时、天和星期为标准来调度备份周期。您还可以定义调度的结束日期。例如,在接下来
的 7 天中每天执行一次数据库备份。
除了基于 DBA 规划日历的手动或调度备份之外,DBA Cockpit 还允许配置自动备份。如果数据库启用
了前滚恢复,则可以执行在线和离线备份。在线备份将在定义的在线维护时间窗口中运行,而离线备
份将在离线维护时间窗口中自动调度运行。
备份将根据以下阈值自动启动:

距上次完整备份的时间已经超过指定的小时数。

磁盘上可用的 DB2 备份映像少于指定的数量。

距上次完整备份的时间已经超过指定的小时数。
 自从上次完整备份后所使用的事务日志超过指定数量。
借助 DBA Cockpit,您可以根据针对可恢复性、性能或均衡配置优化过的各种预配置策略来配置自动备
份。此外,您可以手动指定触发备份的阈值。自动备份特性对于资源使用不稳定的测试和开发系统尤为
有用。
35
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
当数据库使用专用备份目标并且不需要跨整个 IT 基础设施同步备份时,该特性也非常有用。
图 5-7:DB2 自动备份
要启用自动备份并配置维护时间窗口,在 DBA Cockpit 的导航框中选择 Configuration _
Automatic Maintenance Settings。此时将打开 Configuration: Automatic Maintenance 界面,您可以在该
界面中启用和配置自动备份。
5.3 监控备份历史
DBA Cockpit 还允许您监控数据库备份操作的历史。其功能类似于 LIST HISTORY 命令。因此,您可
以监控任何 DB2 备份操作的成功与失败 —— 无论是否在 DBA Planning Calendar、DB2 命令行处理
器或其他外部工具中调度了它们。
5.3.1 DBA 日志
如之前的 5.2 小节所述,您可以使用 DBA Planning Calendar 来调度数据库备份。各条目应用了颜色表
示,因此您可以轻松地确定操作是否已成功完成。如果备份任务未成功,则 DBA Planning Calendar 中
的相应单元将被标记为红色。如果备份成功执行,则它会被标记为绿色。运行中的备份任务将被标记为
蓝色。下图显示了一个成功执行的备份任务:
36
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
图 5-8:DBA Planning Calendar —— 任务状态
对于通过 DBA Planning Calendar 调度的备份任务,“DBA Log”中提供了一些额外信息。此日志以表
的格式显示任务的状态。各任务的信息包括开始时间、结束时间、日期、运行时、操作描述和返回代码 。
要访问 DBA 日志,在 DBA Cockpit 的导航栏中选择 Jobs DBA Log。
以下示例显示了 DBA 日志中与上述数据库备份示例相关的条目。
图 5-9:DBA 日志
除了备份的成功信息之外,我们还看到了备份的准确起始时间以及它的运行时。在本例中,我们调度的操
作是“Database Backup into TSM”。
5.3.2 备份和恢复概述 – 数据库备份
如前所述,DBA Planning Calendar 的 DBA 日志只显示在 DBA Planning Calendar 中调度过的备份。
此外,DBA Cockpit 还可以提供在 DB2 命令的层面上提供与“LIST HISTORY 备份”命令相类似的信
息。DBA Cockpit 的 Backup and Recovery – Overview 界面中显示了所有的备份操作,无论这些操作
是否 SAP 系统的内部还是外部执行的。
要 访 问 Backup and Recovery – Overview 界 面 , 在 DBA Cockpit 的 导 航 栏 中 选 择 Backup and
Recovery – Overview。图 5-10 展示了 DBA Cockpit 的“Backup and Recovery – Overview”界面:
37
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
图 5-10:备份和恢复 – 概述 – 数据库备份
在 Database Backup 选项卡页面中,可以看到之前执行的所有数据库备份的汇兑信息。该界面分为两个
区域。界面左侧显示的是执行过的备份列表。与 DBA Planning Calendar 和 DBA Log 相类似,备份成
功的条目标记为绿色,而备份失败的条目则标记为红色我。
要显示其详细信息,从此列表选择中相应的条目。所提供的信息类似于 LIST HISTORY 命令的输出,比
如包含在此备份映像中的表空间列表。此外,其中还包括在备份期间创建的日志文件。
在图 5-10 中,我们可以看到 6 个备份。其中,5 个备份执行成功(标记为绿色的条目),而另一个备份
未执行成功;标记为红色的条目还有一个返回码 (RC) 2.036-。在本例中,该返回码对应于 DB2 返回码
SQL2036N,这表示作为备份目标提供的设备无效。
5.3.3 备份和恢复概述 – 日志文件
DB2 LIST HISTORY 命令可以提供关于数据库备份以及日志文件存档的信息。与此类似,DBA Cockpit
的 Backup and Recovery – Overview 界面也提供了关于备份和日志文件的信息。
切换到 Backup and Recovery – Overview 界面的 Log Files 选项卡页面可以看到日志存档操作列表。绿
色背景色表示日志文件存档成功,而红色背景色则表示存档失败。
38
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
图 5-11:备份和恢复 – 概述 – 日志文件
Backup and Recovery – Overview 界面提供的信息非常接近于第 3 章中的“Log File Management –
Details”界面。
概述中的列表包含以下信息:







Chain – 相应日志文件链的名称
Log File Name – 日志文件的名称
Move Date and Time – ARCHIVE LOG 的日期和时间
Return Code – “0”表示成功
Target – 目标设备(在本例中始终为 IBM Tivoli Storage Manager)
Location – 目标位置(比如 Tivoli Storage Manager Management Class)
Archive Type – 关于所使用的 DB2 Archiving 方法的信息(在本例中显示为“Archive 1”,因
为需要使用 LOGARCHMETH1 来存档日志文件)
39
DB2 for Linux, UNIX and Windows 的备份和恢复 – 简介
版权、商标和免责声明
© Copyright IBM Corporation, 2009 保留所有权利。
IBM、IBM 徽标和 ibm.com 是 International Business Machines Corp. 在美国和/或其他国家的注册商
标或商标。其他产品和服务名称可能是 IBM 或其他公司的商标。有关 IBM 商标的最新列表,请访问“
版权和商标信息”,地址如下: www.ibm.com/legal/copytrade.shtml。
SAP、SAP NetWeaver 以及此处提到的其他 SAP 产品和服务是 SAP AG 在德国和/或其他国家的注
册商标或商标。
关于 SAP 商标的更多信息请访问:
http://www.sap.com/company/legal/copyright/trademark.asp
Microsoft、Windows、Windows NT 和 Windows 徽标是 Microsoft Corporation 在美国和/或其他国
家的注册商标。
UNIX 是 Open Group 在美国和/或其他国家的注册商标。
LINUX 是 Linus Torvalds 的注册商标。
其他公司、产品或服务名称可能是其他公司的商标或服务标志。
本出版物中对 IBM 产品、程序或服务的引用不表示将在 IBM 运营的所有国家/地区推出此类产品、程序
或服务。
IBM 可能已经申请或正在申请与本出版物有关的各项专利权。
提供本出版物并不表示允许您使用这些专利。
IBM 仅“按现状(AS IS)”提供本出版物,不附带任何形式的保证。
本文档中的信息可能涉及 IBM 尚未宣布的新产品。
关于 OEM 的任何讨论都基于已经公开可用的信息,并且会随时发生更改。本文档中的一些特性的规
范可能会在相关产品最终推出时发生更改。
涉及非 IBM 产品的信息是从这些产品的供应商、已发布的公告材料或其他公开可用的来源获得的,它们
不构成 IBM 对这些产品的认可。非 IBM 产品价格和性能数据来自公开可用的信息,包括供应商公告和供
应商的全球主页。
IBM 并未测试这些产品,并且无法保证非 IBM 产品的性能、功能以及任何其他声明的准确性。关于非
IBM 产品功能的问题应该由这些产品的供应商来解决。
40
Fly UP