当前位置:数据库 > DB2 >>

使用DB2 V9进行非增量重定向还原(三)

  使用自动存储管理

  接下来我们通过例子来具体看一下如何使用自动存储管理,具体步骤如下:

  1. 创建一个使用自动存储器的数据库DB2TEST1修改其数据库配置参数,使其使用归档日志,然后对数据库做一次全备。

  2. 分别创建使用自动存储器功能的常规表空间TABLESPACE1和不使用自动存储器功能的大型表空间TABLESPACE2。

  3. 对测试数据库DB2TEST1做一次全备,以便将来可以恢复到此时的状态。

  4. 创建示例表 "DB2INST1"."EMPLOYEE"。

  5. 对测试数据库DB2TEST1再做一次全备,以便将来可以恢复到此时的状态。

  6. 利用全量备份还原测试数据库DB2TEST1。

  7. 非增量定向还原测试数据库DB2TEST1。

  创建测试数据库

  我们首先创建使用自动存储功能的测试数据库DB2TEST1,打开 DB2 命令窗口,发出CREATE DATABASE语句,创建数据库,如 清单 1所示:

  --清单 1. 创建自动存储器DB2数据库

  CREATE DATABASE DB2TEST1 on /db2/databases/db2test1/auto_storage

  DBPATH ON /db2/databases/db2test1

  这样我们创建了一个自动存储器数据库DB2TEST1,其数据库路径是/db2/databases/db2test1,自动存储路径是/db2/databases/db2test1/auto_storage,默认创建了3个表空间:SYSCATSPACE、TEMPSPACE1、USERSPACE1,都是使用自动存储管理。创建好数据库后,连接数据库DB2TEST1,我们需要把数据库的日志管理模式改为归档,具体如清单2所示。

  --清单 2. 更改数据库参数

  UPDATE DATABASE CONFIGURATION USING LOGARCHMETH1 LOGRETAIN IMMEDIATE

  建议大家使用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。

  更改成功后,此时你执行如下命令:

  FORCE APPLICATIONS ALL

  命令成功后,用LIST APPLICATIONS看所有应用程序是否都断开了,如果没有断开,再重复执行FORCE APPLICATIONS ALL,保证断开后,把数据库做一次全备,如清单3所示。

  --清单 3.备份数据库

  BACKUP DATABASE DB2TEST1 TO /db2/databases/backup/

  完全备份成功后,连接上数据库,现在您可以创建示例表空间了。这样我们就创建了一个测试库DB2TEST1,其使用归档日志,不允许增量备份。

  创建示例表空间

  创建表空间既可以在服务器或本地执行命令创建,也可以在本地Windows环境上使用图形化界面的方式创建,为了使用图形化界面,我们首先来编目远程的数据库服务器,如清单4所示。

  --清单 4. 编目远程数据库

  CATALOG ADMIN TCPIP NODE 192.168.0.1 REMOTE 192.168.0.1

  CATALOG TCPIP NODE db2inst1 REMOTE 192.168.0.1 SERVER 50000

  CATALOG DATABASE DB2TEST1 AS MYDB AT NODE db2inst1

  把IP地址是192.168.0.1,端口号是50000的数据库服务器在本地编目为节点db2inst1,并把数据库DB2TEST1在本地编目为MYDB。

  接下来我们创建使用自动存储器功能的表空间TABLESPACE1,连接上数据库DB2TEST1后,发出CREATE TABLESPACE命令,如清单5所示。
--清单 5. 创建常规表空间TABLESPACE1,使用自动存储

  CREATE REGULAR TABLESPACE TABLESPACE1 PAGESIZE 4 K MANAGED BY AUTOMATIC STORAGE BUFFERPOOL IBMDEFAULTBP

  注意,我们在MANAGED BY后面跟的是AUTOMATIC STORAGE,表示新创建的表空间将使用自动存储。查看表空间可以使用LIST TABLESPACES命令,在DB2 命令行中输入下列命令,如清单6所示。

  --清单 6. 查看表空间

  LIST TABLESPACES SHOW DETAIL

  你可以看到TABLESPACE1已经创建成功,其空间管理类型是数据库管理空间,具体如清单7所示。

  --清单 7. 查看表空间结果

  表空间标识 = 3

  名称 = TABLESPACE1

  类型 = 数据库管理空间

  内容 = 所有持久数据。常规表空间。

  状态 = 0x0000

  详细解释:

  正常

  总计页数 = 8192

  可用页数 = 8160

  已用页数 = 96

  可用页数 = 8064

  高水位标记(页) = 96

  页大小(以字节计) = 4096

  扩展数据块大小(页) = 32

  预取大小(页) = 32

  容器数 = 1

  最小恢复时间 = 2007-09-11-09.18.46.000000

  还可以通过在本地(Windows环境下)控制中心,对远程实例和数据库连接后,对MYDB数据库进行操作,右键单击“表空间”文件夹,选创建,打开创建表空间向导,如图1所示。

\

  图1:创建常规表空间TABLESPACE1,使用自动存储

  在名称中输入表空间名TABLESPACE1,选中“让DB2管理存储器(自动存储器)(L)”,这样将创建使用自动存储器的表空间,你一定注意到了,当你选中“让DB2管理存储器(自动存储器)(L)”时向导比选中“我想手工管理存储器(I)”,少了空间管理和容器两部分功能,这是因为使用自动存储的表空间容器和空间管理是自动完成的。

  接着我们要创建一个使用非自动存储的大型表空间TABLESPACE2,其使用32K页大小,因此在创建之前我们需要先创建一个32K页大小的缓冲池,如清单8所示。

  --清单8. 创建缓冲池

  CREATE BUFFERPOOL BUFFERPOOL_32K IMMEDIATE SIZE 250 AUTOMATIC PAGESIZE 32 K

  注意,在DB2 V9中引入了自动自调整内存机制,默认情况下启动,我们在创建缓冲池BUFFERPOOL_32K加了一个选项AUTOMATIC,表示可以对缓冲池的内存启用自调整。

  命令成功完成后,我们接下来创建32K页大小的使用非自动存储的大型表空间TABLESPACE2,如清单9所示。

  --清单 9. 创建大型表空间

  CREATE LARGE TABLESPACE TABLESPACE2 PAGESIZE 32 K MANAGED BY DATABASE USING ( FILE /db2/databases/tablespaces/tablespace_32k 640 ) EXTENTSIZE 16 OVERHEAD 10.5 PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL BUFFERPOOL_32K

  注意,此时我们在MANAGED BY后面跟的是DATABASE,表示空间管理是数据库管理(DMS),此时容器也需要自己定义。IT168

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,