我正在导出一个大小约为 1TB 的表。
如何确保在导出期间,数据从一致点导出。
假设如果我的导出运行了 3 小时,并且在此期间如果在此特定表上发生任何 dml,它将如何影响我的导出。
我的出口转储也会转储最近的 dmls 吗?
我正在导出一个大小约为 1TB 的表。
如何确保在导出期间,数据从一致点导出。
假设如果我的导出运行了 3 小时,并且在此期间如果在此特定表上发生任何 dml,它将如何影响我的导出。
我的出口转储也会转储最近的 dmls 吗?
添加WITH RR
到您的 select 语句中会强制该语句使用可重复的读取隔离级别——这将保证您的导出在事务上是一致的。
例如:
export to file.del of del
select * from yourtable WITH RR;
您可以在 DB2 文档中 阅读有关隔离级别的更多信息。
请注意,这样做可能会对应用程序的并发性(和性能)产生负面影响,并且很容易导致问题,因此只要导出 1Tb 表的内容,就无法有效地锁定表。
如果确实需要获得一组事务一致的数据,并且无法像这样导出数据,您可以考虑备份数据库并将其还原到另一个系统上,在该系统上不会有其他应用程序尝试访问同时数据库。