在很多情况下,我们需要对表进行重建,但对于某些数据量非常大的表(一般指500万条以上记录),重建后需要保留原来的数据。如何做到高效快速的完成大数据量表的重建问题,成为我们工作中十分头痛的事情。
本文章重点说明如何利用onpladm工具来实现大表的重建问题。本操作说明在UNLIX平台,采用informix用户
1、导出表脚本
dbschema -d dbname -t tabname -ss >tab_create.sql
2、利用onpladm导出表数据
A、创建工程
onpladm create project prj_lu_tables
B、建立任务
onpladm create job job_uld_tabname -p prj_lu_tables -d ./tabname.unl -D dbname -t tabname -flu
C、执行任务,将数据导出到文件
onpladm run job job_uld_tabname -p prj_uld_tables -fu
3、重建表
A、删除表
drop table tabname;
B、重建表(利用第1步导出的脚本,然后按照新的方案修改表结构,一般是调整表的存储方案)
dbaccess dbname tab_create.sql
4、利用onpladm导入数据
onpladm run job job_uld_tabname -p prj_uld_tables -fl
5、执行0级备份,使表可读。因为这是表只读。同时最好对表执行统计信息更新。
ontape -s -L 0 (执行前,请确定oncofig文件参数:TAPEDEV /dev/null 和 LTAPEDEV /dev/null)
update statistics low for table tabname;
同时,在进行多个表重建的时候,我们可以写成一个脚本的方式来执行。