1.Base基础/3.Icon图标/操作/search备份
1.Base基础/3.Icon图标/操作/search备份
EN
文档
AntDB简介
快速入门
用户手册
数据安全
系统架构
最佳实践
  • 文档首页 /
  • 参考指南 /
  • 常见问题FAQ /
  • 数据迁移

数据迁移

更新时间:2024-04-17 19:51:24

ERROR: COPY escape available only in CSV mode

解决方式

将下述copy命令中的ESCAPE 'OFF'配置项去掉即可。

\COPY sa.rep_check_data_report_001 from '/etldata/data_rep/sql/REPORT_00118.imp' with delimiter '' NULL AS '' ESCAPE 'OFF';

原因说明

ESCAPE选项只在csv模式生效,而该文件/etldata/data_rep/sql/REPORT_00118.imp并非csv格式。删掉ESCAPE选项即可。


FATAL: Can't open FUNCTION_/data/ora2pg/ddl/dmp_others.sql: No such file or directory

解决方式

ora2pg的-o选项,建议以相对路径配置即可 下面给出一个示例说明:

cd /data/ora2pg/exp
ora2pg -c /data/ora2pg/conf/xxx.conf -o cz.sql

原因说明


使用ora2pg导出分区表时,仍以继承表的方式实现,而非最新的内置分区表方式实现。

解决方式

配置文件添加下述2个新增的配置项。 其中adb_VERSION支持10/11,按实际情况配置即可。

adb_SUPPORTS_PARTITION 1
adb_VERSION 11

原因说明

工具调整,新增了几个配置项。

ORA-24345: A Truncation or null fetch error occurred (DBD SUCCESS_WITH_INFO

通过oci方式导数据,会用到一个参数 LONGREADLEN,这个值默认是1MB,一行记录会分配1MB,N行记录就分配 N*1 MB。所以在通过ora2pg 导出lob字段的时候,可能会碰到这个报错,原因是导出的表中包含lob字段,且单字段大小超过了1MB,因此报错。

通过如下SQL在Oracle侧查出lob字段的大小:

select owner,TABLE_NAME,SEGMENT_NAME from dba_lobs where table_name='AD_STAGE_LOG_DTL' and owner='ADCI';
select bytes,owner,SEGMENT_NAME,bytes/1024/1024 from dba_segments where segment_name='SYS_LOB0000200510C00009$$' and owner='ADCI';
SELECT max(DBMS_LOB.GETLENGTH(FAIL_LOG))/1024/1024 as Size_MB FROM AD_STAGE_LOG_DTL;
SELECT DBMS_LOB.GETLENGTH(FAIL_LOG)/1024/1024 as Size_MB FROM AD_STAGE_LOG_DTL where FAIL_LOG is not null order by 1;

根据实际情况调整 ora2pg 配置文件中的参数 LONGREADLEN,通常来说,与lob字段的max length一致,但是也要考虑主机内存的情况。


问题反馈