由于最近要频繁的load数据,多多少少会遇到一些问题。而在问题出现时,不知道是什么原因导致需要解决很长时间。虽然解决了,也只是很大概的知道原因。至于其中的原理还不是很清楚。从今天开始,就将在做数据的过程中遇到的问题逐一总结一下。
1、Load 方法装入数据
常用的方式为将数据导出到一个临时文件中,再将临时文件的内容导入到数据库中。具体操作代码如下:
export to tempfile of del select * from TABLENAME where not 清理条件;
load from tempfile of del modified by delprioritychar replace into TABLENAME nonrecoverable;
说明:
在不相关的数据表export数据时,可以采取并发的形式,以提高效率;
TABLENAME指待清理table的名称;
modified by delprioritychar防止数据库记录中存在换行符,导致数据无法装入的情况;
replace into对现数据库中的内容进行替换,即将现行的数据记录清理,替换为数据文件内容;
nonrecoverable无日志方式装入;
[b][color=red]出错时,该怎么办呢?已经找到如下方法了[/color][/b]
在进行load的时候
db2 "load from acmmst.txt of del modified by coldel| replace into acmmst nonrecoverable ”
由于数据不规范出现错误,强行中断以后,进行操作的时候出现如下错误:
SQL0668NOperation not allowed for reason code "3" on table "BTP.ACMMST".
SQLSTATE=57016
此时,进行反方向操作即可:
db2 "load from /dev/null of del [color=red]terminate [/color]into acmmst nonrecoverable"。
如果没有使用参数nonrecoverable,则会出现数据库状态不正确的情况,使用:
db2 list tablesapces show detail 查看状态,如果不是正常状态,则脱机状态进行备份即可。
1、Load 方法装入数据
常用的方式为将数据导出到一个临时文件中,再将临时文件的内容导入到数据库中。具体操作代码如下:
export to tempfile of del select * from TABLENAME where not 清理条件;
load from tempfile of del modified by delprioritychar replace into TABLENAME nonrecoverable;
说明:
在不相关的数据表export数据时,可以采取并发的形式,以提高效率;
TABLENAME指待清理table的名称;
modified by delprioritychar防止数据库记录中存在换行符,导致数据无法装入的情况;
replace into对现数据库中的内容进行替换,即将现行的数据记录清理,替换为数据文件内容;
nonrecoverable无日志方式装入;
[b][color=red]出错时,该怎么办呢?已经找到如下方法了[/color][/b]
在进行load的时候
db2 "load from acmmst.txt of del modified by coldel| replace into acmmst nonrecoverable ”
由于数据不规范出现错误,强行中断以后,进行操作的时候出现如下错误:
SQL0668NOperation not allowed for reason code "3" on table "BTP.ACMMST".
SQLSTATE=57016
此时,进行反方向操作即可:
db2 "load from /dev/null of del [color=red]terminate [/color]into acmmst nonrecoverable"。
如果没有使用参数nonrecoverable,则会出现数据库状态不正确的情况,使用:
db2 list tablesapces show detail 查看状态,如果不是正常状态,则脱机状态进行备份即可。