需求:创建一个informix数据库和关系表,并且向表中导入一亿数据量,数据源是50GB左右的unl文件。
1.迁移物理日志和逻辑日志
Informix数据库默认的物理日志和逻辑日志均在rootdbs,通常配置较低。通常对大表的数据操作,会因为逻辑日志文件太小而导致long transaction的事务失败。如果磁盘空间充足,应将物理日志和逻辑日志迁移到独立的数据库空间,每个逻辑日志的最大大小是1GB。
#1.创建物理日志和逻辑日志chunk
cd $INFORMIXDIR/tmp
touch plogchk
touch llogchk
chmod 660 *chk
#2.新建物理日志和逻辑日志专用数据库空间plogdbs和llogdbs(依据onstat -g ckp提示建议的空间大小设定)
onspaces -c -d plogdbs -p $INFORMIXDIR/tmp/plogchk -o 0 -s 10240000
onspaces -c -d llogdbs -p $INFORMIXDIR/tmp/llogchk -o 0 -s 10240000
#3.迁移物理日志
onparams -p -s 10000000 -d plogdbs -y
#4.onstat -l查看逻辑存储空间个数,并创建6个逻辑存储空间
onparams -a -d llogdbs -s 1024000
onparams -a -d llogdbs -s 1024000
onparams -a -d llogdbs -s 1024000
onparams -a -d llogdbs -s 1024000
onparams -a -d llogdbs -s 1024000
onparams -a -d llogdbs -s 1024000
#5.不断运行以下命令,使当前逻辑日志切换到下一个,同时onstat -l查看,直到切换到非根空间的逻辑日志文件上为止
onmode -l
#6.确认所有旧的逻辑日志状态为UB,若存在UBL状态的逻辑日志,执行以下命令来强制执行检查点,确保状态切换到UB
onmode -c
#7.删除UB状态的旧逻辑日志
onparams -d -l <逻辑日志号>
2.为大表所在库创建独立的存储空间和临时表空间
临时数据库空间中禁止使用逻辑日志可减少在逻辑恢复期间要前滚的日志记录数,从而提高关键停机时间内的性能。并且还会减少存储空间备份的大小,因为数据库服务器不会备份临时数据库空间。<