生产库通常有这样的需求,比如表T数据量很大,需要临时做个备份,然后对该表进行dml操作。
普通的备份表sql如下:
create table T_bak as select * from T;
但是T表数据量很大的时候,这样做会造成回滚段很大,并且很容易出现“用户数据被purge”的错误导致失败。
可以利用rowid,考虑批量提交,脚本如下:
--先创建空表
create table T_bak as select * from T where 1=
本文介绍了一种在数据量极大的情况下,使用rowid和批量提交技术进行高效表备份的方法,避免了传统备份方式可能引发的回滚段过大及数据被purge的问题。
生产库通常有这样的需求,比如表T数据量很大,需要临时做个备份,然后对该表进行dml操作。
普通的备份表sql如下:
create table T_bak as select * from T;
但是T表数据量很大的时候,这样做会造成回滚段很大,并且很容易出现“用户数据被purge”的错误导致失败。
可以利用rowid,考虑批量提交,脚本如下:
--先创建空表
create table T_bak as select * from T where 1=
2422
1606
2983
1979
866

被折叠的 条评论
为什么被折叠?