1: 创建procedure使用游标读取,分批commit.
1): 执行游标处理存储过程时写日志表,记录插入的状态
2): 操作前备份原始表
3): 参考存储过程
全表复制过程创建脚本
使用Forall 与bulk collect的快速复制表数据
2: 插入目的表时,尽量减少redo的生成.
1): 是否更改表为 nologging ; insert时加hints /* +append */
2): 是否禁用约束.是否删除索引
3): 参考概念: Redo and Undo (一)
3: 执行procedure过程中,观察系统情况
1): 观察系统负载情况
v$session_wait --确定执行该procedure的等待事件,进程号等
v$session
v$process
topas --查看该进程cpu占用情况
2): 观察redo(archivelog)的生成量,避免归档磁盘空间不够.
--归档空间满时,所有session除sys不能连接数据库. 此时要么删除archivelog释放空间,要么更改archivelog路径到一个未满磁盘
archive log list --检查归档路径
df -g --检查磁盘空间占用情况
rm -f 1_*.dbf --cd
4: 移动完历史数据后
1): 减少表段的碎片. alter table ... move tablespace
2): 减少索引段碎片. alter index ... rebuild.
3): 重新分析表/索引. analyze table/index ...
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/523774/viewspace-406605/ ,如需转载,请注明出处,否则将追究法律责任。