使用 IBM Data Studio 管理数据库最佳实践2

请首先确保您的数据库服务器启动了 SSH 服务,再次重做以上步骤,那么您将会看到如下的对话框弹出让您选择表数据要导出的路径。

图 5. 在数据库服务器上选择导出表数据的路径

选择连接数据库的实例用户 db2inst3 的用户目录下的 exportdata 目录,点击 OK. 再在导出向导的 File Name 文本框中输入导出的文件名为 mytb02_exportdata,保持其它设置为缺省值。点击导出表数据向导中的链接 Preview Command, 您将看到为导出操作产生的 DDL,请参考图 6

图 6. 预览生成的表数据导出 DDL

4. 在上图中点击按钮 Run, 你将会在 Data Studio SQL Results 视图中看到在执行导出的语句时有以下 Warning 产生:

 SQL3104N The Export utility is beginning to export data to file 
"/home/db2inst3/exportdata/mytb02_exportdata".
SQL3001C An I/O error (reason = "sqlofopn -2079391743") occurred 
while opening the output file. 
 SQL3105N The Export utility has finished exporting "0" rows.

从结果看出,产生输入输出错误,没有一行数据导出,请参考图 7

图 7. 导出时的 I/O 错误

此时用户应该注意: Data Studio 是采用 ADMIN_CMD 的用户功能函数 UDF 来执行导出操作,而这个 UDF 是用 DB2 的防护用户 (Fenced User) DB2 的地址空间外执行。所以我们应该确保指定一个 DB2 防护用户有写权限的导出路径。本例中 DB2 的防护用户 db2fenc3 对实例用户 db2inst3 的用户目录 /home/db2inst3 没有写权限,所以导出失败。

5. 在服务器所在的机器上创建一个 DB2 防护用户有权读写的目录 /userdata,然后在 DataStudio 的表数据导出向导上选择此目录为表数据导出目录,
再执行此导出操作,DDL 就可以成功执行,请参考图 8

图 8. 导出数据成功

实例一操作总结:

1. Data Studio 客户端和数据库服务器需要通信时,确保数据库端启用了 SSH 服务,Data Studio 客户端采用 SSH 和数据服务器端通信。

2. DataStudio 采用 ADMIN_CMD 的功能函数导出表数据,此功能函数使用防护用户执行,我们需要确保 DB2 防护用户对指定的导出路径有写权限。本人建议最好实例用户和防护用户都对数据导出目录有写权限。

实例二:在不同的 schema 下迁移数据库对象

本实例将实现将一个 DB2V9.7 数据库某个 Schema 下的数据库对象和相关联的对象全部迁移到另一个 DB2V9.7 数据库下的某个 Schema 下。

环境介绍:

1. 源数据库 SAMPLE 位于 Linux 机器 A, 包含一个名为 SOURCESCHEMA schema SOURRCESCHEMA 下有一些表,其中有些表包含索引,并且用到了各自指定的表空间,不同的表空间又指定了不同的缓冲池。
2.
目标数据库 TEST 位于 Linux 机器 B,包含一个名为 TARGETSCHEMA schema TARGETSCHEMA 下没有任何表。

操作目的:

把数据库 SAMPLE SOURCESCHEMA 下的表和相关联的数据库对象迁移到数据库 TEST TARGETSCHEMA 下。

操作步骤:

1. 为数据库 SAMPLE TEST 创建两个数据库连接。
数据库 SAMPLE 下的 SOURCESCHEMA 下包含的表如下图。在这里告诉大家一个小技巧,在 Schema 的列表编辑视图中双击一个 Schema 可以显示这个 Schema 下的所有表,请参考图 9

图 9. 源 Schema 下的所有表

以下文章点击率最高

Loading…

     

如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营

4 thoughts on “使用 IBM Data Studio 管理数据库最佳实践2

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注