【问题标题】:DB2 - Move table from one to other tablespaceDB2 - 将表从一个表空间移动到另一个表空间
【发布时间】:2020-04-28 11:49:56
【问题描述】:

在 DB2 版本 10 及以后的版本中,如何将表从一个表空间(16K 页大小)移动到另一个表空间(32K 页大小)?我想避免重命名、创建另一个表、复制数据、删除重命名的表等选项。

在 Oracle 世界中,同样可以通过一个简单的 ALTER 语句来实现。我的问题是 DB2 有什么类似的可用吗?

【问题讨论】:

  • 您查看过 ADMIN_MOVE_TABLE 吗?

标签: db2 move tablespace


【解决方案1】:

如果在 DB2 10 for z/OS 上,手册建议如下

https://www.ibm.com/support/knowledgecenter/en/SSEPEK_10.0.0/admin/src/tpc/db2z_movetabledifferentpagesize.html

要将表移动到不同页面大小的表空间:

  1. 使用 UNLOAD FROM TABLE 或 REORG UNLOAD EXTERNAL FROM TABLE 卸载表。
  2. 对表使用 CREATE TABLE LIKE 在新页大小的表空间中重新创建它。
  3. 使用 DB2® Control Center、DB2 Administration Tool for z/OS® 或目录查询来确定依赖对象:视图、授权、计划、包、同义词、触发器、参照完整性和索引。
  4. 删除原始表格。
  5. 使用 RENAME TABLE 将新表重命名为旧表的名称。
  6. 重新创建所有依赖对象。
  7. 重新绑定计划和包。
  8. 使用 SYSRECnn 数据集中的数据和 SYSPUNCH 数据集中的控制语句重新加载表,该数据集是在卸载表时创建的。

对于 Db2(对于 LUW),使用 ADMIN_MOVE_TABLE

https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.5.0/com.ibm.db2.luw.sql.rtn.doc/doc/r0055069.html

ADMIN_MOVE_TABLE 存储过程将活动表中的数据移动到同名的新表对象中,同时数据保持在线并可访问。

【讨论】:

    猜你喜欢
    • 2021-04-12
    • 2013-08-22
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    • 2017-03-22
    • 2021-10-12
    • 2019-12-30
    • 1970-01-01
    相关资源
    最近更新 更多