我正在测试数据库迁移,它会移动大量数据并修改模式(对表的更改)。
在DB2中,每当您更改表时,都需要调用
CALL SYSPROC.ADMIN_CMD('REORG TABLE tablename');
否则,你不能对表格做任何事情。
对于测试,我在一个SQL事务中运行迁移,以便我可以在最后执行ROLLBACK。
但似乎REORG TABLE命令似乎暗示为该特定表提交事务。在我回滚之后,我称之为REORG TABLE的表的模式已被保留。
我是否遗漏了某些东西,或者是在DB2事务中测试迁移,这在DB2上是不可能的?
答案 0 :(得分:0)
DB2 reorg是一个命令(无论用于触发它的方法如何),它在内部都有自己的事务控制。所以你不能使用ROLLBACK撤消reorg的活动。只有SQL语句和DDL受事务控制。 如果您打算撤销重组活动或整个迁移,则可以使用时间点还原,或者对恢复到非生产环境的生产数据库的一次性副本执行测试。