网友使用DataCopy进行了数据迁移测试, 数据量有300GB的样子, 表有几百个, DataCopy表现不错, 单进程时也和Exp/Imp不相上下, 因为DataCopy可以很方便地自动并行处理, 这是他选择DataCopy的重要理由, 只需要加一个并行度就行了.
datacopy user1=… user2=… table=… degree=4
Bug往往在大量测试或要正式使用时出现, 这次也不例外. 总共解决了两个程序缺限, 错误信息如下所示:
ORA-01405: fetched column value is NULL
ORA-24816: Expanded non LONG bind data supplied after actual LONG or LOB column
第一个错误是因为使用回调函数处理Long或LOB类型时, 没有使用标志变量(Indicator Variable), 第二个错误是因为传绑定变量时没有将Long或LOB列放在最后. 以前居然没有理解这一点, 汗颜啊!
ORA-24345: A Truncation or null fetch error occurred
另外还回答了两个问题, 第一个是上面的错误, 这是因为NLS_LANG中标明的字符集与数据库的字符集不一样, 发生了转换, 导致程序给的缓冲区不够用引起的. 另一个问题是, Direct Load方式迁移数据库出现乱码, 一般也是因为NLS_LANG中标明的字符集与数据库的字符集不一样.
经过这一次的改进, DataCopy和DataSync应当是相当稳定了, 已编译好AIX的版本让大家选择. 如果觉得好, 可以赞助个10元/5元的, 让我们技术人员知道技术环境正在逐步改善.
Relative Posts:
转载请注明:爱开源 » DataCopy通过300GB的数据测试