1

异常

向mysql数据库写数据出现乱码

原因

在连接驱动属性上添加 useUnicode=true characterEncoding = utf8

2

异常

mysql数据库Packet for query is too large (6071393 > 4194304). You can change this value on the server by setting the   max_allowed_packet' variable

原因

原因:批量插入数据量过大,解决办法 修改 my.ini 加上 max_allowed_packet =67108864;67108864=64M 默认大小4194304  是4M

3

异常

oracle 到oracle 报ORA-12899 值太大

原因

原因:源和目标字段类型不一样,源 GGXH  VARCHAR2(256 CHAR),目标 GGXH VARCHAR2(256),这种情况下会出这种错误

4

异常

列名 '字段名称' 无效

原因

原因:字段名称可能是关键字,或包含特出字符 (oracle 严格区分字段大小写 )

5

异常

oracle使用 sysdba连接时,报连接不上时

原因

可能是因为没有sysdba权限 grant sysdba to username; 

6

异常

CDC任务 oracle为源,在无主键表时使用rowid方案,目标库是异构数据库,报主键冲突异常

原因

原因:目标库字段内容不区分大小写,oracle的rowid是区分大小写的。

7

异常

Oracle为目标时 报 ORA-01000:超出打开游标的最大数

原因

原因:一个事务写的数据太多

8

异常

CDC任务 源为oracle RAC集群 报 ORA-16331:容器'ORCLPDB'未打开

原因

查看PDB状态: select con_id,dbid,guid,name,open_mode from v$pdbs;打开PDBORCL: alter pluggable database PDBORCL open

关闭PDB    : alter pluggable database PDBORCL close;

通过触发器来实现PDB的自动open:

CREATE OR REPLACE TRIGGER open_pdbs

  AFTER STARTUP ON DATABASE

BEGIN

   EXECUTE IMMEDIATE 'alter pluggable database pdborcl open';

END open_pdbs;

9

异常

ORA-00257: archiver error. Connect internal only, until freed

原因

归档日志满了

10

异常

ORA-00001: 违反唯一约束条件

原因

主键重复 可能的原因 1)重复交换 2)目标数据库有其他程序或触发器在写入数据 

11

异常

ORA-00060: 等待资源时检测到死锁

原因

写端出现死锁,原因 两个会话同时互相阻塞对方的事务修改时,会产生死锁

12

异常

源是oracle,目标是sqlserver 没有异常数据,两边数据不一致,源多目标少

原因

有可能是主键大小写造成的,Oracle默认区分大小写,Sqlserver默认不区分大小写, 解决把Sqlserver表设置为区分大小写

13

异常

ORA-01861: 文字与格式字符串不匹配

原因

向oracle数据库insert时带有大字段,需要把大字段放到insert最后.

会报错的SQL: INSERT INTO TEST111.TESTTABLE1(ID,NAME,PW,TDATE,TNUM,TCLOB,TBLOB,TTIMESTAMP,TFLOAT,T4000VARCHAR2)

正确的SQL: INSERT INTO TEST111.TESTTABLE1(ID,NAME,PW,TDATE,TNUM,TTIMESTAMP,TFLOAT,T4000VARCHAR2,TCLOB,TBLOB)

14

异常

ORA-00942: 表或视图不存在

原因

表或视图不存在

15

异常

SQLCODE=-206, SQLSTATE=42703, SQLERRMC=IDCARD_UPDATE_TIMES, DRIVER=4.16.53

原因

原因:IDCARD_UPDATE_TIMES 这个字段名称,db2不认,需要改字段名 注:DB2数据库

16

异常

SQLCODE=-302, SQLSTATE=22001, SQLERRMC=null

原因

原因:有字段长度不够, 注:DB2数据库

17

异常

SQLCODE=-803, SQLSTATE=23505

原因

原因:主键冲突 注:DB2数据库

18

异常

Column 'NAME' cannot be null

原因

原因:字段NAME值不能为空 注:mysql数据库

19

异常

SQLCODE=-604,SQLSTATE=42611,SQLERRMC=DECIMAL(38,10)

原因

原因:在CREATE或ALTER TABLE语句中的为数据类型指定的长度、精度以及标度无效  注:DB2数据库

     DB2中decimal最大精度是31位   oracle 精度最大值为38

20

异常

SQLCODE=-286, SQLSTATE=42727, SQLERRMC=8192

原因

原因:一般是因为pagesize设置的太小了,导致在创建表的时候空间不足 注:DB2数据库

解决方案:删除数据库,重建

create database DBNAME automatic storage yes  using codeset UTF-8 territory US pagesize 32768;

21

异常

ORA-65090: 仅允许在容器数据库中执行该操作

原因

原因:oracle 12C 是NO-CDB(普通数据库),一些sql会报错 select name,cdb from v$database; 

22

异常

ORA-01555: 快照过旧: 回退段号 31 (名称为 "_SYSSMU31$") 过小

原因

原因:SQL语句执行时间太长,或者UNDO表空间过小,或者事务量过大,或者过于频繁的提交,导致执行SQL过程中进行一致性读时,SQL执行后修改的 前镜像(即UNDO数据)在UNDO表空间中已经被覆盖,不能构造一致性读块(CR blocks)

23

异常

 DB2 SQL Error: SQLCODE=-407, SQLSTATE=23502, SQLERRMC=TBSPACEID=2, TABLEID=259, COLNO=2

原因

字段不能为空   注:DB2数据库

24

异常

oracle zhs16jbk 到Postgresql  GBK 报:

character with byte sequence 0xee 0x97 0xa5 in encoding 'UTF 8' has no equivalent in encoding 'GBK'

原因

1)升级驱动

2)检查异常的数据,是否有乱码,或特出字符

注:目标PostgreSql

25

异常

 SQL state [25P02]; error code [0]; ERROR: current transaction is aborted, commands ignored until end of transaction block; nested exception is org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block

原因

异常原因:一个事务中有多条sql,其中一条报错,继续执行事务中其他sql,抛出此异常

注:目标PostgreSql

26

异常

java.sql.SQLException: ORA-01000: 超出打开游标的最大数

原因

异常原因:conn.createStatement()和conn.prepareStatement()的时候,实际上都是相当与在数据库中打开了一个cursor。尤其是,如果你的createStatement和prepareStatement是在一个循环里面的话,就会非常容易出现这个问题。因为游标一直在不停的打开,而且没有关闭

27

异常

mysql 时间字段存的是 0000-00-00 00:00:00, Timestamp.valueOf("0000-00-00 00:00:00")报错

原因

解决:在连接上加 jdbc:mysql://localhost:3306/mydbname?zeroDateTimeBehavior=convertToNull

28

异常

informix Code-set conversion function failed due to illegal sequence or invalid value

原因

字符集的问题(数据库里有中文)

select * from sysmaster:sysdbslocale 查数据库字符集

jdbc:informix-sqli://192.168.1.203:9088/test3:INFORMIXSERVER=ol_s_060718_161324;DB_LOCALE=en_us.819;CLIENT_LOCALE=en_us.57372;NEWCODESET=GBK,8859-1,819;

29

异常

oracle ORA-12505, TNS:listener does not currently know of SID given in connect descriptor 

原因

原因 oracle sid错误,使用select INSTANCE_NAME from v$instance; 查出sid名称

30

异常

oracle char 类型字段作为where 后边条件,更新不成功

原因

原因 oracle jdbc驱动PrepareStatement对char字段类型的查找问题

解决办法 1 char改为varchar2类型

2  属性用TRIM函数处理: where TRIM(id)=?

31

异常

ORA-600(krvxdds: duplicated session not)错误

原因

可能是在运行LOGMNR命令时,使用了多个窗口或者指定的字典有误,从而导致了这个错误出现。在告警日志中,出现了多次的LOGMNR的相关信息,但是这个错误只出现了一次,而这个错误在metalink都找不到,也说明这个错误很难触发。看来这可能是工具或者会话状态不正常引起的错误,只需要重新连接数据库,错误就不会再现,而且对于数据库而言基本没有影响。

32

异常

informix 报 A SERIAL column (tserial) may not be updated

原因

原因:informix 中 SERIAL类型是自增类型,不能更新

33

异常

win7上创建共享目录,用户访问报:Logon Failure: The User Has Not Been Granted The Requested Logon Type At This Computer

原因

解决办法:从D上进入“控制面板”--> "管理工具" --> “本地安全设置”,进入“本地策略” --> “用户权利指派” --> “拒绝从网络访问本计算机”,将"Guest"从列表中去掉。再从笔记本L地址栏输入"//台式机D的ip地址",可以访问了

34

异常

CDC任务启动报:ORA-01292: 没有为当前 LogMiner 会话指定日志文件

原因

以SYSDBA的身份运行以下两个脚本文件

ORACLE_HOME\rdbms\admin\dbmslm.sql

ORACLE_HOME\rdbms\admin\dbmslmd.sql

第一个脚本用来创建DBMS_LOGMNR包,该包用来分析日志文件

第二个脚本用来创建DBMS_LOGMNR_D包,该包用来创建数据字典

35

异常

Database not found or no system permission

原因

informix ,表目标没有写对如 schema:tabname,  应该写为 imformix.tabname

36

异常

Java从MySQL读取大量数据时卡在SocketInputStream.socketRead0的问题

原因

解决方法:说通过jdbc url的tcpRcvBuf属性设置可以解决这个问题

jdbc:mysql://127.0.0.1:3306/ooxx?characterEncoding=utf-8&tcpRcvBuf=1024000

37

异常

postgresql 数据库 如何开启表日志级别

原因

ALTER TABLE test2 REPLICA IDENTITY FULL 开表的全日志

DEFAULT - 更新和删除将包含primary key列的现前值

NOTHING - 更新和删除将不包含任何先前值

FULL - 更新和删除将包含所有列的先前值

INDEX index name - 更新和删除事件将包含名为index name的索引定义中包含的列的先前值

38

异常

ORA-00936:missing expression

原因

原因:Oracle sql语句错误会报这个错误,或是sql中包含 oracle的关键字

39

异常

Oracle 数据库编码 US7ASCII 读取乱码问题

原因

解决:读 new String(fieldValue.getBytes("ISO-8859-1"), "GBK")  重新注意 jdbc获取数据时 rs.getBytes()得到字节数组

      写 new String(department.getBytes("gbk"),"iso-8859-1");

40

异常

mysql报:Could not create connection to database server

原因

解决:url上添加 serverTimezone=UTC 或serverTimezone=Asia/Shanghai

41

异常

druid 连接池报 connection holder is null

原因

说明事务提交时使用的连接是空,被别的程序给关掉了

42

异常

informix 报Could not insert new row into the table   ISAM error: key value locked

原因

说明 :多线程写时报这错误

43

异常

mysql8连接 

原因

驱动要使用 8以上,url上必须加 serverTimezone=UTC

44

异常

mysql数据库区分表名大小写问题

原因

在/etc/my.cnf 添加lower_case_table_names=0

其中 0:区分大小写,1:不区分大小写


45

异常

hive load表时报错:Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask

原因

经过分析最后原因,是用户名填写不对,权限不够,用户名改成hdfs成功。

46

异常

Greenplum Cannot parallelize an UPDATE statement that updates the distribution columns

原因

原因:修改了分布键

由于Greenplum是一个分布式数据库,所以建表时需要指定分布键,将数据平均分布到各个Segment上。

Greenplum有两种数据分布策略:

1)Hash分布。选择一个或多个列作为分布键,计算 hash 值,并通过 hash 值路由到特定的Segment节点上。如果不指定分布键,默认将第一个字段作为分布键。

2)随机分布。数据随机分散在每一个节点中,可以保证数据平均分布,但是在执行 SQL 的过程中,关联等操作都需要将数据重分布,性能较差。

45

异常

hive是ldap方式,hdfs是kerberos。load时报错了 Error 20388 Permission denied: Principal

原因

需要去管理平台 Guardian server里 配置赋予admin用户 操作hdfs 路径的权限

http://support.transwarp.cn/t/topic/3430

46

异常

MySQLNonTransientConnectionException: Unknown command

原因

可能是Batch update 数据量大,导致报这个错误

https://lequ7.com/mycat-cai-keng-ji-lu.html

47

异常

ora-01722无效数字,源oracle12c number类型 目标oracle12c varchar2类型

原因

解决:源出来数据转为字符类型

48

异常

达梦数据库cdc出来的很慢问题

原因

解决: dm.ini 里参数 CKPT_INTERVAL 控制在线日志,到归档日志的时间,达梦CDC读取的是归档日志中的数据

49

异常

ORA-00604:递归SQL 级别1出现错误

原因

原因:磁盘空间不足引起的

50

异常

MYSQL到Mysql交换时间有差

原因

原因:目标Mysql  时区是 CST

使用旧驱动 url加参数serverTimezone=UTC,如果是新驱动需要改数据库设置,

北京时构 serverTimezone=Asia/Shanghai

51

异常

批量写Hbase报错  regiontoobusyexception

原因

1 减少批量和并发数 ,交换的慢点

2 要想保存交换速度需要修改 hbase设置

https://www.cnblogs.com/jisaaotian/p/11753582.html

52

异常

Hbase 连接 报错  , java.net.UnknownHostException: IBNPF2ZLSDXFBTT

原因

1 hosts 配置问题

53

异常

目标mysql 使用LOAD DATA LOCAL INFILE 加载数据报  ,  The used command is not allowed with this MySQL version


原因

1 服务器端,local_infile默认开启;客户端,local_infile默认关闭,因此用的时候需要打开

show global variables like 'local_infile';

set global local_infile = 'ON';

2 如果是本机不使用 LOAD

54

异常

ORA-01502: 索引 'CDCTEST2.SYNDID' 或这类索引的分区处于不可用状态

原因

清空分区表数据,最后加上 update global

ALTER TABLE CDCTEST2."UPRBAS"  TRUNCATE PARTITION UBACAF_H update global indexes

55

异常

pg copy加载时报错:org.postgresql.util.PSQLException: ERROR: incorrect binary data format

原因

源和目标数据类型不一致时会报错:源oracle NUMBER(11)目标pgsql int4类型时

56

异常

logminer 读到sql_redo显示Unsupported 

原因

在oracle 12.2.0.1 版本之后 log miner 不支持超过30个字符的表名/列名

57

异常

Oracle 报:No more data to read from socket

原因

通常是因为使用了连接池,当从连接池取得的connection失效或者超时的时候,使用这个连接来进行数据库操作就会抛出以上异常

58

异常

Mysql 报:java.sql.SQLException: Zero date value prohibited或 Value ‘0000-00-00’ can not be represented as java.sql.Date

原因

解决:添加参数zeroDateTimeBehavior=convertToNull   例:jdbc:mysql://yourserver:3306/yourdatabase?zeroDateTimeBehavior=convertToNull

59

异常

Oracle报:exitImplicitCacheToActive Closed statement

原因

通过换数据库驱动可以解决

60

异常

oracle 唯一分析任务,分索引时 报权限不足

原因

解决: grant analyze any to 表名

61

异常

向巨杉数据库写数据报 Failed to begin transaction, RR isolation is only supported when mvccon is true

原因

解决: mysql 隔离改成rc (set global tx_isolation='READ-COMMITTED')