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

7. 在比较向导中选择 Schema 行,点击比较向导中的 Copy from Left to Right 按钮,您会看到 Schema 下的所有表和其它想关联的对象 (Buffer Pools Table Spaces) 都从源数据库拷贝到目标数据库,请参考图 15

图 15. 源数据库和目标数据库同步后的比较向导

8. 点击
比较向导中的 Finish 按钮,将会返回到目标数据库连接的 Schema 的编辑视图,并且 Data Studio 将为此次迁移生成一个 Change Plan,点击视图右上方绿色的 Review and deloy changes 按钮。您将会看到预览部署的对话框弹出,并显示迁移的 DDL,请参考下图 16

图 16. 产生迁移操作 DDL 的部署预览视图

从生成的 DDL 中可看出 Schema 下的表和相关的 TableSpaces BufferPools 都将会在目标数据库上创建,同时 DDL 中也包含了一些 Grant 语句和表的 Reorg 语句,但是由于一般都会由具有权限的实例用户执行这些操作,又由于目前只是迁移表结构,不需要对表进行 Reorg 操作,所以我们可以在执行 DDL 之前去掉这些 Grant Reorg 语句。

9. 点击 Edit 按钮编辑产生的 DDL,会打开 SQL 编辑器,在 SQL 编辑器中删除产生的 Grant 语句和 Reorg 语句,用户也可以点击预览部署对话框右上方的 Advanced Options 按钮来定制是否产生 Reorg 语句。然后点击 SQL 编辑器右上方绿色的 Run Sql 按钮,我们可以在 Status 视图中看到迁移操作的 DDL 被成功的执行。请参考图 17

图 17. 在 SQL 编辑器中运行编辑生成的 DDL

10. 此时,我们需要做一下清理工作,由于刚才我们并没有执行为迁移操作产生的 Chang Plan,它处于 Pending 的状态,我们是转到了 SQL 编辑器中成功执行了迁移操作。我们最好取消掉这个还未执行的 Change Plan。返回到目标数据库连接的 Schema 的列表编辑器视图,点击视图右上角红色的 X 按钮(Close Change Plan),在弹出的确认关闭对话框中选择 Discard 就可以了,当然如果我们在 DDL 的部署预览视图中直接点击 Run 按钮而不进入 SQL Editor 来执行 DDL,那么这个 Change plan 就会处于 Deployed 状态而不是 Pending 的状态了。

实例 2 操作总结:

1. 在用迁移向导在不同的 Schema 之间迁移数据库对象时,一定要在向导中做 Schema 映射,相同的 Schema 之间不需要映射操作。
2.
在用迁移向导做数据对象的迁移和实际数据的迁移时,我们很有可能需要修改生成的 DDL, 尤其是当两个数据库不在同一个物理机器上时,因为 Data Studio 是管理操作数据库,它不会去管理数据库所在的服务器。比如,当两台机器的环境不同,在源数据库服务器上的要迁移的表空间用到了容器 /home/db2inst1/tabspace.dat, 在迁移时 Data Studio 产生同样的表空间创建语句,而很有可能目标数据库的连接用户并没有权限去在目标服务器上创建或访问这个容器指定的目录,对此 Data Studio 是无法判断的。

实例三: 在多分区数据库上的分区组上创建表空间。

本实例讲解使用 Data Studio 在一个 DB2 多分区数据库的分区组 (partition group) 上创建表空间,并将指定表空间在不同分区上的容器。

环境介绍:

笔者事先搭建了一个有 4 个分区的 DB2 数据库,分区 0 1 位于机器 A, 分区 2 3 位于机器 B。数据库服务器都为 Linux 机器,数据库的名称为 UOMDB

操作步骤:

1. Data Studio 中为数据库 UOMDB 创建一个数据库连接,在 Administrator Explorer 视图,展开数据库 UOMDB 节点,右键点击文件夹 Partition Groups,选择 Create Partition Group,如下图 18

图 18. 从 Administrator Explorer 视图中创建分区组

2. 分区组的列表编辑器视图和属性视图会被打开,在打开的属性视图中,选择 General 页面,给新的分区组命名为 PG1,点击 Partitions 文本框右边的 Edit 按钮,然后在弹出的向导中添加分区 0 1 2。请参考下图 19

图 19. 编辑分区组

以下文章点击率最高

Loading…


发表评论

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