技术开发 频道

如何把DB2 V8数据库系统迁移到DB2 V9

【IT168 技术文档】在已经安装了 DB2 V8 的平台上要安装 DB2 9,可以将现有的数据库系统升级到DB2 9。升级 DB2 数据库需要对系统有深刻的理解。本文详细描述了如何在 Windows 平台上把 DB2 V8 数据库系统升级到 DB2 9。文章中包含了如何移植实例(Instance),DB2 管理服务器(DAS)和数据库的详尽方法,以及常见的错误和解决方法。

简介

    在安装好 DB2 旧版本的系统上安装 DB2 v9,需要把旧版本的所有的实例(Instance)和数据库系统迁移到 DB2 V9, 移植 DB2 V8 数据库系统,包括迁移实例(Instance),DB2 管理服务器(DAS)和数据库。对于 DB2 V8 的数据库系统,可以直接迁移到 DB2 V9。对于 DB2 V6、V7 的产品需要首先迁移到 DB2 V8,然后再迁移到 DB2 V9。

    在一台 Windows 系统的系统上,我们已经安装了 DB2 ESE(Enterprise Server Edition) V8.2 数据库系统。假定我们创建了一个 DB2 的实例。同时,我们在该实例下创建了一个数据库 Sample。我们需要在该系统上安装 DB2 V9,把 DB2 ESE V8.2 移植到 DB2 V9。数据库管理员账号为 db2admin,同时也具有系统管理员的权限。下面在上述的 Windows 平台上,开始我们的移植 DB2 ESE V8.2旅程。

迁移数据库实例

    有两种方式可以迁移数据库实例。一种是由数据库安装程序实现自动迁移,第二种方式是手工迁移数据库。在 Windows 平台上,可以在安装 DB2 V9 过程中选择从 DB2 V8 移植到 DB2 V9。安装结束后 DB2 V8 的实例就自动移植到 DB2 V9。

1. 自动迁移实例

  1. 以系统管理员身份登录系统,如 db2admin;
  2. 运行 DB2 V9 的安装程序 setup.exe;
  3. 在图 1 所示的“安装产品”的面板上选择“迁移”旧的数据库系统;

  4. 在选择安装文件夹的面板上,我们可以看到安装路径被自动设为 DB2 ESE V8.2 的安装路径“c:\Program Files\IBM\SQLLIB\”。我们不需要也不能选择安装文件夹。待安装结束后,该目录下原来安装的 DB2 将被升级;
  5. 在迁移过程结束后可以运行 db2level 命令来验证数据库实例是否被成功的迁移。图 2 是执行 db2level 命令的结果。我们可以看到原来的数据库实例 DB2 已经被成功的迁移,其版本信息为“DB2 v9.1.0.356”;

  6. 运行 DB2 Control Center,当访问原来的数据库 Sample 时,会弹出一个错误信息的对话框。提示该数据库是被一个低版本的数据库创建。因此必须把数据库进行迁移。如图 3 所示。下一节将讲述如何迁移数据库。

2. 手工迁移实例

    如果在安装过程中没有选择“迁移”数据库的话,我们可以在安装结束后手工迁移实例。

  1. 停止运行的 DB2 实例,db2stop
  2. 迁移 DB2 实例,我们可以执行下面的命令。$DB2DIR\bin\db2imigr /u:user,password InstName。其中 $DB2DIR 是 DB2 安装路径。user、password 是数据库服务下的用户名和密码。InstName 是数据库实例的名字。对于我们的例子,我们可以使用下面的命令 C:\Program Files\IBM\dwe\SQLLIB\bin\db2imigr /u:db2admin,passw0rd DB2
  3. 迁移完数据库实例后,重新启动数据库实例 DB2。db2start

迁移数据库

    完成上面的迁移 DB2 实例后,我们需要继续迁移该实例下的数据库。假设原来在该实例下,有个 Sample 数据库。

  1. 用具有 SYSADM 权限的该实例的用户登录系统,如 db2admin;
  2. 运行 db2 命令行工具,在该环境中执行迁移数据库的命令:MIGRATE DATABASE database-alias USER username USING password。其中 database-alias 是将要迁移的数据库的名字或者别名。Username 是具有 SYSADM 权限的用户名来认证。在我们的例子中,假设 db2admin 的密码是 passw0rd.那么我们需要执行下面的命令来迁移 sample 数据库:MIGRATE DATABASE sample USER db2adim USING passw0rd
  3. 为验证我们的数据库被成功迁移到 DB2 V9,我们可以连接到数据库 sample,并查询其中的数据。我们试验的结果如图 4 所示。现在我们能够成功的连接到数据库 sample,并能够查询到其中的数据。

迁移 DB2 管理服务器

    在迁移 DB2 数据库系统中,我们也可以迁移原来的 DAS,或者先删掉原来的 DAS,再创建新的 DAS。在安装 DB2 服务器上,你只可以有一个 DAS。下面是迁移 DAS 的具体步骤。

  1. 用 DAS 管理员的账号登录,如 db2admin;
  2. 停止 DAS 服务器。我们可以用下面的命令:db2admin stop
  3. 迁移原来的 DB2 V8 的 DAS 服务器,假设我们的 DB2 安装在 C:\Program Files\IBM\SQLLIB 目录下。我们运行下面的命令:<db2dir>\bin\dasmigr,即 C:\Program Files\IBM\SQLLIB\bin\dasmigr。为验证我们的 DAS 是不是已经被成功的迁移到 DB2 V9,我们可以运行 db2daslevel 命令。图 5 是运行后的显示结果。


  4. 迁移 DAS 完成后,我们可以重新启动 DAS 服务器:db2admin start

常见错误及解决

    迁移过程中最常见的错误是日志文件(log)文件不够大。其错误消息如清单 1 所示。


清单 1. 日志错误消息

                SQL1704N  Database migration failed.  Reason code "3".
            

解决方法如下:

  1. 连接到想要迁移的数据库:CONNECT TO sample
  2. 使用 GET DATABASE CONFIGURATION 命令来决定目前日志文件空间大小。例如清单 2 中的设置:

    清单 2. 日志文件空间大小设置
                            日志文件大小(4KB)                         (LOGFILSIZ) = 1024
                    主日志文件的数目                           (LOGPRIMARY) = 13
                    辅助日志文件的数目                          (LOGSECOND) = 4
                    日志文件路径    			= C:\DB2\NODE0000\SQL00004\SQLOGDIR\

  3. 可以使用下面的命令来提高日志空间大小:UPDATE DB CFG FOR sample using current value * 2。例如,UPDATE DB CFG FOR sample using LOGPRIMARY 26UPDATE DB CFG FOR sample using LOGSECOND 8

    另外一个常见的警告信息是 SQL1243W。遇到这种错误,你必须卸载或者重新命名 SYSTOOLS.DB2LOOK_INFO 表。可以使用下面的命令:db2 RENAME SYSTOOLS.DB2LOOK_INFO TO new-table-name

0
相关文章