Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1908691
  • 博文数量: 346
  • 博客积分: 10221
  • 博客等级: 上将
  • 技术积分: 4079
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-01 19:43
文章分类

全部博文(346)

文章存档

2012年(1)

2011年(102)

2010年(116)

2009年(127)

我的朋友

分类:

2011-01-13 10:15:49

DB2使用联机备份的备份映像还原数据库,还原完成时需要进行前滚恢复,如果前滚所需的日志文件损坏或着被删除,将不能完成前滚恢复,数据库将不可用。DB2 V9在做联机备份时新增了INCLUDE LOGS选项,当指定此选项时,BACKUP实用程序将截断当前活动日志文件并将必要的日志扩展数据块集合复制到备份映像中。

 

由于联机备份时包含日志文件的方式在还原数据库时和以往有了很大不同,所以本文将对此进行详细的阐述,并通过实际的例子来帮助大家理解和提高。

 

      

实际从DB2 V8.2就已经在联机备份时使用INCLUDE LOGS选项。在进行联机备份操作时,可以在BACKUP DATABASE命令中指定INCLUDE LOGS选项。当指定此选项时,BACKUP实用程序将截断当前活动日志文件并将必要的日志扩展数据块集合复制到备份映像中。也就是说,备份映像中包含复原和恢复数据库所需的日志文件,不再需要单独的日志文件。数据库自己决定需要哪些日志文件来保证联机备份的一致性,并放到备份映像中,这为成功恢复提供了保证,以防止所需的日志文件损坏或被误删除。

还原时,通过使用RESTORE DATABASE命令的LOGTARGET选项,可以指定把备份映像中的日志文件放到什么位置。如果指定了LOGTARGET选项,在执行RESTORE DATABASE命令时,DB2将把日志文件放到指定的路径中,如果目标路径中已经存在同名的日志文件,复原操作将失败并返回一个错误。如果未指定LOGTARGET选项,则不会从备份映像中还原任何日志文件。

如果指定了LOGTARGET选项,但是备份映像中没有包含任何日志文件,则在尝试复原操作时会返回一个错误。如果指定了无效或只读的路径,复原操作会报SQL2581N错误。在指定LOGTARGET选项条件下,复原数据库或表空间的过程中,如果不能抽取一个或多个日志文件,则复原操作失败并返回错误。还可以选择只复原保存在备份映像中的日志文件。要执行此操作,可使用RESTORE DATABASE命令的LOGTARGET选项指定LOGS选项。以此方式复原日志文件时,如果复原操作遇到任何问题,则复原操作失败并返回错误。

由于联机备份时包含日志文件的方式在还原数据库时和以往有了很大不同,另外,DB2日志相关的一些参数也发生了变更,所以本文将对此进行详细的阐述,并通过实际的例子来帮助大家理解和提高。

 

      我们将按照下列顺序介绍联机备份还原:

1.        创建示例数据库DB2TEST1,并把日志改成归档模式,并介绍一下DB2 V9新增的配置参数LOGARCHMETH1。创建示例表TEST1,并插入两条记录。

2.        联机全量备份数据库DB2TEST1,主要讲解一下备份命令的语法以及注意事项并实际演示一下如何联机全量备份数据库DB2TEST1,备份期间对示例表TEST1插入一条记录。

3.        使用联机全量备份映像恢复示例数据库DB2TEST1,并前滚恢复到日志末尾。

配置参数TRACHMOD,使其允许跟踪数据库的更新。

5.        在增量模式下联机备份数据库:对示例表TEST1再次插入2条记录,并对示例数据库DB2TEST1进行联机备份;对示例表TEST1再插入两条记录,对示例数据库DB2TEST1进行联机增量备份;对示例表TEST1再插入两条记录,对示例数据库DB2TEST1进行联机差异备份。

6.        手工增量复原示例数据库DB2TEST1

7.        自动增量复原示例数据库DB2TEST1

创建示例数据库DB2TEST1

为了模拟环境,首先我们在WINDOWS XP环境下安装DB2 ESE V9.1,安装完成后,打开DB2CLP窗口,发出CREATE DATABASE语句,创建示例数据库DB2TEST1,具体如清单1所示:

 

- - 清单1 .创建示例数据库DB2TEST1

 

C:\> DB2 CREATE DATABASE DB2TEST1

DB20000I  CREATE DATABASE命令成功完成。

 

 

命令执行成功,这样我们就创建了一个示例数据库DB2TEST1,数据库地域是中国(CN),数据库代码页是1386,数据库代码集是GBK。由于数据库默认情况是采用循环日志方式,在循环日志方式下,不能进行联机备份,所以我们需要把日志方式改成归档模式。在DB2CLP窗口中,连接示例数据库DB2TEST1,执行UPDATE DB CFG命令把LOGARCHMETH1参数改成“DISC:C:\DB2\”,具体如清单2所示。

 

- - 清单2 .修改示例数据库DB2TEST1的配置参数

 

C:\> db2 connect to db2test1

 

   数据库连接信息

 

 数据库服务器         = DB2 / NT 9.1.0

 SQL 授权标识         = RHETTE

 本地数据库别名       = DB2TEST1

 

C:\> DB2 UPDATE DATABASE CONFIGURATION USING LOGARCHMETH1        DISK:C:\DB2\  IMMEDIATE

 

DB20000I  UPDATE DATABASE CONFIGURATION命令成功完成。

SQL1363W  为立即修改而提交的一个或多个参数未动态更改。对于这些配置参数,

必须在所有应用程序都与此数据库断开连接之后,更改才会生效。

 

 

命令执行成功,这样我们就把示例数据库DB2TEST1的日志模式改成了归档,并且归档方法使用手工归档的方法。如果是客户的生产环境使用了磁带机,当磁带管理软件是使用TSM的时候,由于TSM和DB2 V9进行了更深的结合,使用TSM进行日志的归档要比使用第三方厂商的产品效率要更高,管理更容易。如果归档日志是使用TSM放入到磁带机的话,可以直接修改LOGARCHMETH1参数,把其值修改成TSM,另外,在数据库配置参数中,提供了4个配置参数用来定义TSM的管理类等,分别是TSM管理类(TSM_MGMTCLASS)、TSM节点名(TSM_NODENAME)、TSM所有者(TSM_OWNER)和TSM密码(TSM_PASSWORD)。

TSM管理类(TSM_MGMTCLASS)配置参数是用来确定TSM服务器应如何管理正在备份的对象的备份版本。缺省缺省情况是没有DB2指定的管理类。当执行任何TSM备份时,在使用数据库配置参数指定的管理类之前,TSM 首先尝试将备份对象绑定到TSM客户机选项文件中的INCLUDE-EXCLUDE列表中指定的管理类。如果找不到匹配项,则将使用TSM服务器上指定的缺省TSM管理类。然后,TSM将备份对象重新绑定到数据库配置参数指定的管理类。因此,缺省管理类以及数据库配置参数指定的管理类必须包含备份副本组,否则备份操作将失败。

如果归档日志是使用TSM放入到磁带机的话,我们可以在DB2CLP窗口中,发出UPDATE DB CFG命令把配置参数LOGARCHMETH1参数改成TSM,具体如下:

 

C:\> DB2 UPDATE DATABASE CONFIGURATION USING LOGARCHMETH1 TSM  IMMEDIATE

DB20000I  UPDATE DATABASE CONFIGURATION命令成功完成。

 

 

假如客户的生产环境使用了磁带机,但磁带管理软件使用了第三方的存储管理软件,比如EMC LEGATO,如果想用LEGATO进行日志备份,可以这么修改数据库参数:

 

 

$ db2 update db cfg using logarchmeth1 vendor:/usr/lib/libnsrdb2.o

$ db2 update db cfg using logarchopt1 @DB2.cfg

      

 

在本文中,我们将使用手工归档的方式,所以我们执行了如清单2所示的命令,把LOGARCHMETH1改成了LOGRETAIN。

 

建议大家使用LOGARCHMETH1,此参数指定已归档日志的主要目标的介质类型,不要继续使用LOGRETAIN或USEREXIT参数。LOGARCHMETH1参数缺省值为OFF,取值范围可以是LOGRETAIN、USEREXIT、DISK、TSM或VENDOR。各自的含义如下:

l         OFF

指定不使用日志归档方法。如果LOGARCHMETH1和LOGARCHMETH2都设置为 OFF,那么认为数据库正在使用循环日志记录,且不可前滚恢复。这是缺省值。

l         LOGRETAIN

此值仅可用于LOGARCHMETH1,且等价于将 LOGRETAIN 配置参数设置为 RECOVERY。如果指定此值,将自动更新 LOGRETAIN 配置参数。

l         USEREXIT

此值仅对LOGARCHMETH1有效,且等价于将 USEREXIT配置参数设置为 ON。如果指定此值,将自动更新 USEREXIT配置参数。

l         DISK

此值后必须紧跟冒号(:),然后是现有标准路径名,日志文件将在其中归档。例如,如果将LOGARCHMETH1设置为 DISK:/U/dbuser/archived_LOGS,那么将归档日志文件放入名为 /U/dbuser/ archived_LOGS的目录。

注: 如果正在归档至磁带,可以使用 DB2tapemgr实用程序来存储和检索日志文件。

l         TSM

如果指定不带任何附加配置参数,此值指示应该使用缺省管理类,将日志文件归档在本地 TSM 服务器上。如果此值后紧跟冒号(:)和 TSM 管理类,那么使用指定的管理类来归档日志文件。

l         VENDOR

指定将使用供应商库来归档日志文件。此值后必须紧跟冒号(:)和库的名称。库中提供的 API 必须使用备份并复原供应商产品的 API。 注: 如果将LOGARCHMETH1或LOGARCHMETH2设置为 OFF 以外的值,那么必须配置数据库以进行前滚恢复。

 

如果更新 USEREXIT 或 LOGRETAIN 配置参数,将自动更新LOGARCHMETH1,反之亦然。然而,如果您要使用USEREXIT或LOGRETAIN, 必须将LOGARCHMETH2设置为 OFF。

 

清单2中的命令执行成功后,由于LOGARCHMETH1配置参数更改成功后,需要等数据库上所有的连接都断开后才会生效,所以我们在DB2CLP窗口中,发出FORCE APPLICATIONS ALL命令断开所有的连接,具体如清单3所示:

 

- - 清单3 .断开所有应用程序连接

 

C:\> DB2 FORCE APPLICATIONS ALL

DB20000I  FORCE APPLICATION命令成功完成。

DB21024I  该命令为异步的,可能不会立即生效。

 

 

命令成功后,用LIST APPLICATIONS看所有应用程序是否都断开了,如果没有断开,再重复执行FORCE APPLICATIONS ALL,保证所有连接都断开后,把数据库做一次全备。在我们首次把数据库的日志模式由循环模式改成归档模式后,数据库会处于BACKUP PENDING状态,强制我们进行一次全量备份,在全量备份完成之前,不能访问数据库或表空间。

 

下面我们在DB2CLP窗口中,发出BACKUP  DB命令,全量备份示例数据库DB2TEST1,具体如清单4所示:

 

- - 清单4 .对示例数据库做一次全备

 

C:\> DB2 BACKUP DB DB2TEST1

备份成功。此备份映像的时间戳记是:20070928212852

 

 

完全备份成功后,这样我们就创建了一个测试库DB2TEST1,其使用归档日志,不允许增量备份。在DB2CLP窗口中,连接上示例数据库DB2TEST1,发出GET DB CFG命令查看其配置参数,可以看到LOGARCHMETH1配置参数已经被修改成功。具体如清单5所示:

 

- - 清单5.查看示例数据库配置参数

 

C:\> db2 connect to db2test1

 

   数据库连接信息

 

 数据库服务器         = DB2 / NT 9.1.0

 SQL 授权标识         = RHETTE

 本地数据库别名       = DB2TEST1

 

       数据库  的数据库配置

 

 数据库配置发行版级别                                    = 0x0b00

 数据库发行版级别                                        = 0x0b00

 

 数据库地域                                              = CN

 数据库代码页                                            = 1386

 数据库代码集                                            = GBK

 数据库国家/地区代码                                    = 86

 数据库整理顺序                                          = UNIQUE

 备用整理顺序                              ( ALT_COLLATE ) =

 数据库页大小                                            = 4096

 . . . . . . . . . . . . . . .

 日志文件大小(4KB)                         ( LOGFILSIZ ) = 1024

 主日志文件的数目                           ( LOGPRIMARY ) = 13

 辅助日志文件的数目                          ( LOGSECOND ) = 4

 已更改的至日志文件的路径                   ( NEWLOGPATH ) =

 日志文件路径                     = C:\DB2\NODE0000\SQL00002\SQLOGDIR\

 溢出日志路径                          ( OVERFLOWLOGPATH ) =

 镜像日志路径                            ( MIRRORLOGPATH ) =

 首个活动日志文件                                        = S0000001.LOG

 磁盘上已满的块日志                    ( BLK_LOG_DSK_FUL ) = NO

 事务使用的最大主日志空间的百分比        ( MAX_LOG )= 0

 1 个活动 UOW 的活动日志文件的数目   ( NUM_LOG_SPAN ) = 0

 

 组落实计数                            ( MINCOMMIT ) = 1

 软检查点前回收的日志文件的百分比      ( SOFTMAX ) = 520

 启用的恢复的日志保留                  ( LOGRETAIN ) = OFF

 启用的日志记录的用户出口              ( USEREXIT ) = OFF

 

 HADR 数据库角色                                          = STANDARD

 HADR 本地主机名                      ( HADR_LOCAL_HOST ) =

 HADR 本地服务名称                    ( HADR_LOCAL_SVC ) =

 HADR 远程主机名                      ( HADR_REMOTE_HOST ) =

 HADR 远程服务名称                    ( HADR_REMOTE_SVC ) =

 远程服务器的 HADR 实例名             ( HADR_REMOTE_INST ) =

 HADR 超时值                          ( HADR_TIMEOUT ) = 120

 HADR 日志写同步方式                ( HADR_SYNCMODE ) = NEARSYNC

 

 第一个日志归档方法                    ( LOGARCHMETH1 ) = DISK:C:\DB2\

 logarchmeth1 的选项                        ( LOGARCHOPT1 ) =

 第二个日志归档方法                        ( LOGARCHMETH2 ) = OFF

 logarchmeth2 的选项                        ( LOGARCHOPT2 ) =

 故障转移日志归档路径                     ( FAILARCHPATH ) =

 错误时重试日志归档次数                   ( NUMARCHRETRY ) = 5

 日志归档重试延迟(秒)                 ( ARCHRETRYDELAY ) = 20

 供应商选项                                  ( VENDOROPT ) =

 

 . . . . . . . . . . .

 

       下面我们来创建一个示例表TEST1,表很简单,只有3个列,分别是编号(ID)、姓名(NAME)和备注(NOTE)。在DB2CLP窗口中,连接上示例数据库DB2TEST1,发出CREATE TABLE命令,创建示例表TEST1,创建成功后,插入两条记录,具体如清单6所示:

 

- - 清单6 .创建示例表TEST1

 

C:\> db2 connect to db2test1

 

   数据库连接信息

 

 数据库服务器         = DB2 / NT 9.1.0

 SQL 授权标识         = RHETTE

 本地数据库别名       = DB2TEST1

 

C:\> DB2 CREATE TABLE TEST1( ID INT , NAME VARCHAR ( 10 ) , NOTE VARCHAR ( 50 ) )

DB20000I  SQL命令成功完成。

 

C:\> DB2 INSERT INTO TEST1 VALUES ( 1 , ' RHETTE ' , ' the first rows ' )

DB20000I  SQL命令成功完成。

 

C:\> DB2 INSERT INTO TEST1 VALUES ( 2 , ' DANIEL ' , ' the second rows ' )

DB20000I  SQL命令成功完成。

 

      

       命令执行成功,这样我们就创建了示例表TEST1,表中有两条记录,下面我们来演示如何对示例数据库进行联机全量备份以及利用这个联机全量备份进行还原操作。

联机全量备份数据库DB2TEST1

我们可以使用带ONLINE选项的BACKUP命令,可以联机备份数据库,前提是我们使用了归档日志模式。由于联机备份期间,业务系统还可以插入、更新、删除数据,所以只用全量联机备份映像没有完成恢复数据库操作,至少还需要联机备份期间的日志以便进行前滚恢复,如果此时日志没有被妥善保存,比如被删除或损坏,那么前滚操作将无法完成。所以,为了妥善保存利用联机备份映像还原数据库时所需的日志文件,为成功恢复提供保护,我们可以在联机备份时使用INCLUDE LOGS选项,指定在备份映像中包括复原和恢复数据库所需的日志文件。也就是说,如果使用联机备份映像进行恢复时,无需单独查找所需的日志文件以保证联机备份的一致性,在联机备份中已经存在了所需的日志文件。当执行BACKUP DB命令时指定INCLUDE LOGS选项,BACKUP实用程序将截断当前活动日志文件并将必要的日志扩展数据库集合复制到备份映像中。

 

下面我们来看一下BACKUP命令的语法,具体如清单7所示:

 

- - 清单7 .备份数据库语法
>> - BACKUP--+-DATABASE-+--database-alias - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - >
             ' – DB - - - - - - - -- - - '
 
>  -- + - - - - - - - - - - - - - - - - - - -  - - - - - - + - - - -  - - - - - - - - - - - - - - -- - - - - - - >
     ' – USER – username -- + - - - - - - - - - + - '
                       ' – USING – password - '
 
>  -- + - - - - - -  - - - - -- - - - - - - - - - - - - - - - - - + -- + -  - - - - -- - - + - - - - - - - -  - >
     |                . - , - - - - - - .    |  ' – ONLINE - '
     |                V                 |    |
     ' – TABLESPACE -- ( ---- tablespace-name -+-- ) - '
 
>  -- + - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >
     ' – INCREMENTAL -- + - - + - '
                    ' - DELTA - '
 
> -- + - - - - - - - - - - - - - - -  - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - -  - -+ - - >
   + -USE--+-TSM--+-- + - - - - - - - - - - - - - - - - - - - - + -- + - - - - - - - - - - - - - - + -  - -- - +
   |      '-XBSA-'  '-OPTIONS--+-"options-string"-+-'  '-OPEN--num-sessions--SESSIONS-' |
   |                         ' -@ -- file-name - - - '                                            |
   |     . - , - - - - .                                                                            |
   |     V         |                                                                                  |
   + -TO ---- + -dir-+-+ - - - - - - - - - - -  - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - -  +
   |       ' -dev- '                                                                                 |
   '-LOAD--library-name--+ - - - - - - - - - - - - - - - - - - - +--+ - - - - - - - - - - - - - - - - - + - '
                         '-OPTIONS--+-"options-string"-+-'  '-OPEN--num-sessions--SESSIONS-'
                                    ' -@-- file-name --- '
 
> -- + - - - - - - - - -  - - - - -- - - - + -- + - - - - - - - - - - - - - - - - + - - - - - - - - - - - >
   ' – WITH --num-buffers--BUFFERS- '  ' -BUFFER--buffer-size- '
 
> -- + - - - - - - - -  - - - - -- - - - + - - - -  - - - - -- - - - - - - - - - - - - - - - >
   ' – PARALLELISM – n - '
 
> -- + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - >
   ' – COMPRESS -- + - - - - - - - - -  - - - - -- - - + -- + - - - -  - - - - -- - - - + - '
               ' -COMPRLIB—name -- + - - - + - '  ' -COMPROPTS--string- '
                                 ' – EXCLUDE - '
 
                                           .-EXCLUDE LOGS-.
> -- + - - - - - - - - - - - - - -  - - - - - - - - - - - + -- + - - - - - - - -- - - - - -  - - - + - >
   ' -UTIL_IMPACT_PRIORITY -- + - - - - - - - - + - '  ' -INCLUDE LOGS- '
                           ' – priority - '
 
> -- + - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ><
   ' - WITHOUT PROMPTING - '

       如清单7所示,备份数据库最简单的命令就是

 

BACKUP DB 数据库名

      

如果联机备份,可以使用ONLINE选项,想包含联机备份期间需要的日志可以使用INCLUDE LOGS选项。可以把数据库备份到磁盘或者磁带上,如果存储管理软件使用的TSM,可以直接在备份命令中使用USE TSM选项,如果使用的第三方存储管理软件,可以使用LOAD选项指定第三方供应商的DLL。

 

接下来我们新打开一个DB2CLP窗口,连上数据库,发出带ONLINE选项的BACKUP DB命令,联机全量备份示例数据库DB2TEST1,具体如清单8所示:

 

- - 清单8 .联机备份示例数据库DB2TEST1

 

C:\> db2 connect to db2test1

 

     数据库连接信息

 

      数据库服务器         = DB2 / NT 9.1.0

      SQL 授权标识         = RHETTE

      本地数据库别名       = DB2TEST1

 

C:\> db2 backup db db2test1 online include logs

 

备份成功。此备份映像的时间戳记是:20070928223032

 

       在联机备份数据库期间(备份没有完成之前),我们继续对示例数据库DB2TEST1进行操作,在原来的DB2CLP窗口中对TEST1表新插入一条记录,具体如清单9所示:

 

- - 清单9 .插入测试表一条新的记录

 

C:\> DB2 INSERT INTO TEST1 VALUES ( 3 , ' SCA ' , ' the third rows ' )

DB20000I  SQL命令成功完成。

 

 

联机全量备份执行成功,此备份映像的时间戳记是:20070928223032。想查看示例数据库DB2TEST1的备份和还原历史情况,可以使用LIST HISTORY BACKUP ALL命令,对于备份情况返回值来说,其类型N代表在线全备,O代表在线增量备,E代表在线差异备份, 类型F代表脱机全备,I代表脱机增量备份,D代表脱机差异备份。

下面我们在DB2CLP窗口中,发出LIST HISTORY BACKUP ALL命令,返回两条记录,第一条记录是我们第一次脱机第一次全备,第二条是我们刚才联机全量备份,且联机备份映像中包含了日志S0000001.LOG,具体如清单10所示:

- - 清单10 .查看备份历史记录

 

C:\> DB2 LIST HISTORY BACKUP ALL FOR DB2TEST1

 

                    列示 DB2TEST1 的历史记录文件

 

匹配的文件条目数 = 2

 

 

 Op 对象 时间戳记+序列     类型 设备 最早日志    当前日志     备份标识

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  B  D  20070928212852001   F    D  S0000000.LOG S0000000.LOG

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  包含 3 表空间:

 

  00001 SYSCATSPACE

  00002 USERSPACE1

  00003 SYSTOOLSPACE

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    注释:DB2 BACKUP DB2TEST1 OFFLINE

 开始时间:20070928212852

   结束时间:20070928212856

     状态:A

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  EID:2 位置:C:

 

 

 Op 对象 时间戳记+序列     类型 设备 最早日志    当前日志     备份标识

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  B  D  20070928223032001   N    D  S0000001.LOG S0000001.LOG

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  包含 3 表空间:

 

  00001 SYSCATSPACE

  00002 USERSPACE1

  00003 SYSTOOLSPACE

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    注释:DB2 BACKUP DB2TEST1 ONLINE

 开始时间:20070928223032

   结束时间:20070928223037

     状态:A

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  EID:5 位置:C:

 

联机备份如果采用TSM,其命令可以如下:

 

db2 backup db db2test1 online use tsm open 4 sessions include logs

 

       其中,USE TSM是关键字,表示备份映像将通过TSM保存到磁带机上,OPEN 4 SESSIONS表示,此次备份打开4个SESSION,表现为备份映像(假如正常情况下只备份映像能放在一个文件中)将使用4个备份映像文件存储。如果想使用TSM,在需要预先配置好TSM环境,这样数据库管理器才能使用TSM选项:

Ø         必须安装和配置可用的 TSM客户机和服务器。另外,必须在每台DB2服务器上安装 TSM客户机 API。

Ø         设置 TSM 客户机 API 使用的环境变量:DSMI_DIR、DSMI_CONFIG、DSMI_LOG。

Ø         设置TIVOLI客户机与TSM服务器交互所使用的密码。具体见DB2官方文档。

另外,使用TIVOLI STORAGE MANAGER时还需要注意,对于多个备份映像使用同一个数据库别名的情况,时间戳记和序号就成为标准名称中的专有部分。需要查询TSM以确定要使用的备份版本。 如果执行联机备份操作并指定了USE TSM选项和INCLUDE LOGS选项,则当两个进程尝试同时写同一台磁带机时,就会发生死锁。如果正在将磁带机用作日志和备份映像的存储设备,则需要为TSM定义两个独立的磁带池,一个用于存储备份映像,另一个用于存储归档日志。

 

如果实现第三方备份软件,比如EMC LEGATO,备份命令可以如下:

 

db2 backup db db2test1 online load /usr/lib/libnsrdb2.o open 4 sessions include logs

 

       LOAD选项后面跟的是EMC LEGATO的DLL文件,OPEN 4 SESSIONS表示,此次备份打开4个SESSION,表现为备份映像(假如正常情况下只备份映像能放在一个文件中)将使用4个备份映像文件存储。

 

当执行备份操作时,DB2将自动为缓冲区个数、缓冲区大小和并行性设置选择最佳值。此类值根据可用实用程序堆内存量、可用处理器数和数据库配置而定。目的是最大程度上减少完成备份操作所需的时间。除非为下列BACKUP DATABASE命令参数显式地输入某个值,否则DB2将为其选择一个值:

Ø         WITH缓冲区个数 BUFFERS

Ø         PARALLELISMn

Ø         BUFFER 缓冲区大小

如果未指定缓冲区数和缓冲区大小而导致DB2设置这些值,对大型数据库的影响应该是最低的。但是,对于小型数据库来说,会导致备份映像大幅增大。即使写入磁盘的最后一个数据缓冲区只包含很少数据,也会将整个缓冲区写入映像。在小型数据库中,这表示相当一部分的映像可能是空的。还可以选择执行以下任何操作来缩短完成一次备份操作所需的时间:

Ø         指定表空间备份。

使用指定了TABLESPACE选项的BACKUP DATABASE命令,可以备份(继而恢复)部分数据库。这样便于对表数据、索引和单独表空间中的长型字段或大对象(LOB)数据进行管理。

Ø         增大BACKUP DATABASE命令上PARALLELISM参数的值,以使它反映正在备份的表空间数。

PARALLELISM参数定义在压缩备份操作期间从数据库读取数据和压缩数据时,已启动的进程或线程数。将每个进程或线程分配给特定表空间,因此,为PARALLELISM参数指定的值大于要备份的表空间数并无益处。备份完此表空间后,它会请求另一个表空间。但是应注意:每个进程或线程都需要内存CPU开销。

Ø         增加备份缓冲区大小。

理想的备份缓冲区大小是表空间扩展数据块大小的倍数加一页。如果有多个扩展数据块大小不同的表空间,则将值指定为扩展数据块大小的公倍数加一页。

Ø         增加缓冲区的数量。

使用的缓冲区至少是备份目标(或会话)的两倍,以确保备份目标设备无需等待数据。

Ø         使用多个目标设备。
阅读(4350) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-03-08 18:05:44

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com