0

我正在导出一个大小约为 1TB 的表。

如何确保在导出期间,数据从一致点导出。

假设如果我的导出运行了 3 小时,并且在此期间如果在此特定表上发生任何 dml,它将如何影响我的导出。

我的出口转储也会转储最近的 dmls 吗?

4

1 回答 1

1

添加WITH RR到您的 select 语句中会强制该语句使用可重复的读取隔离级别——这将保证您的导出在事务上是一致的。

例如:

export to file.del of del
select * from yourtable WITH RR;

您可以在 DB2 文档中 阅读有关隔离级别的更多信息。

请注意,这样做可能会对应用程序的并发性(和性能)产生负面影响,并且很容易导致问题,因此只要导出 1Tb 表的内容,就无法有效地锁定表。

如果确实需要获得一组事务一致的数据,并且无法像这样导出数据,您可以考虑备份数据库并将其还原到另一个系统上,在该系统上不会有其他应用程序尝试访问同时数据库。

于 2013-01-21T21:58:09.750 回答