DB2 - 将表从一个表空间移动到另一个表空间。

问题描述 投票:0回答:1

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

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

db2 move tablespace
1个回答
2
投票

如果在DB2 10 for zOS上,手册建议如下

https:/www.ibm.comsupportknowledgecenterenSSEPEK_10.0.0adminsrctpcdb2z_movetabledifferentpagesize.html

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

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

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

https:/www.ibm.comsupportknowledgecenterenSSEPGG_11.5.0com.ibm.db2.luw.sql.rtn.docdocr0055069.html

ADMIN_MOVE_TABLE 存储过程将活动表中的数据移动到一个新的同名表对象中,而数据仍然在线并可被访问。

© www.soinside.com 2019 - 2024. All rights reserved.