耗时将近2周的时间,终于将25TB的图片利用SQLLDR全部加载到数据库,如何利用SQLLDR加载图片或二进制文件参考我之前的文章:
在修改分区表关键字字段的时候,遇到ORA-14402错误:
SQL> update images set identifier=substr(identifier,1,16) where identifier
like '%0000';
update images set identifier=substr(identifier,1,16) where identifier like
'%0000'
*
ERROR at line 1:
ORA-14402: updating partition key column would cause a partition change
本案例是64位OEL5.7操作系统,ORACLE11 gR2,图片以11G的新特性SECUREFILE模式存储,有一张25TB的分区表,hash档号字段分区,目前8个分区,由于客户在提供数据的时候,档号字段有些错误的数据,需要改正,而修改分区关键字字段,可能会导致各分区的数据产生移动,这就需要打开表的行移动,由于行的迁移过程可能会消耗大量的时间和资源,ORACLE默认没有打开行移动,就不能直接修改分区关键字字段,所以抛出ORA-14402错误,这个问题的解决方法也很简单,打开表的行移动就可以了。
SQL> alter table images enable row movement;
Table altered.
SQL> set timing on
SQL> update images set identifier=substr(identifier,1,16) where identifier
like '%0000';
7616 rows updated.
Elapsed: 00:04:45.30
SQL> commit;
Commit complete.
正常情况下,这个UPDATE过程应该很快的,由于发生了行的迁移,所以花费了将近5分钟的时间。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26547977/viewspace-752998/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26547977/viewspace-752998/