问题标签 [ibm-data-replication]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - IBM CDC for MySQL 未启动
我正在尝试为 AS400 设置 IBM 数据复制到 MySQL。对于目标 MySQL,它现在是最新的 MySQL 8.0.20 Community Server。我已经很好地测试了 JDBC 连接。但是,CDC 实例从未启动(通过测试从 8.0.9rc 到 8.0.20 的 MySQL Jdbc 连接)。在 Windows 中,实例已添加但未启动。某些操作已完成,但无法在 RHEL 中添加实例。但是,日志错误消息完全相同。
- IBM InfoSphere CDC 访问服务器 (11.4.0.2 - 11016)
- IBM InfoSphere Data Replication for MySQL (11.4.0.2 - 5548) 备注:RHEL / Windows 2016 测试环境都面临相同的结果
仅对于 8.0.9rc 到 8.0.11,它可能会尝试连接并返回错误。
- 格式错误的数据库 URL,无法解析主要 URL 部分。
由于 1.8 的 JRE/JDK 提供了 IBM,我已经为设置设置了正确的 JAVA_HOME、PATH。有什么线索吗?我已经尝试了连接字符串:(在 Windows / Linux Access Server + IIDR 上)
- jdbc:mysql://127.0.0.1:3306/testdb
- jdbc:mysql://127.0.0.1:3306/testdb?useSSL=false
- jdbc:mysql://127.0.0.1:3306/testdb?useUnicode=true&characterEncoding=utf-8&useSSL=false
- jdbc:mysql://127.0.0.1:3306/testdb?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT
实际上,它提供了相同的结果。我试图用 jdbc 输入错误:mysql://127.0.0.1:3306/testdb&useSSL=false
然后,它可以返回语法错误。有没有人有任何线索?是否与 JDBC VS Java 版本兼容性问题有关?
详细的 Java 日志消息: 36 2020-06-07 11:21:51.335 main{1} com.datamirror.ts.engine.ReplicationExecutive startup() 监控统计数据库错误:发生 SQL 异常。SQL 错误代码为“0”。SQL 状态为:08001。错误消息为:|Cannot load connection class because of underly exception: com.mysql.cj.core.exceptions.WrongArgumentException: Malformed database URL, failed to parse the main URL section.†com.datamirror .ts.monitoragent.statistics.MonitorStatisticsPbException 监控统计数据库错误:发生 SQL 异常。SQL 错误代码为“0”。SQL 状态为:08001。错误消息为:|无法加载连接类,因为基础异常:com.mysql.cj.core.exceptions.WrongArgumentException:数据库 URL 格式错误,无法解析主要 URL 部分。| 在 com.datamirror.ts。monitoragent.statistics.MonitorStatisticsDatabase.openConnection(MonitorStatisticsDatabase.java:616)| 在 com.datamirror.ts.monitoragent.statistics.MonitorStatisticsDatabase.(MonitorStatisticsDatabase.java:129)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.monitorStatsCollectOn(MonitoringStatistics.java:162)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.(MonitoringStatistics.java:145)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.start(MonitoringStatistics.java:177)| 在 com.datamirror.ts.engine.ReplicationExecutive.init(ReplicationExecutive.java:430)| 在 com.datamirror.ts.engine.ReplicationExecutive.startup(ReplicationExecutive.java:244)| 在 com.datamirror.ts.commandlinetools.script.Startup.executeUtility(Startup.java:92)| 在 com.datamirror.ts.commandlinetools。shared.BaseUtility.entryPoint(BaseUtility.java:267)| 在 com.datamirror.ts.commandlinetools.script.Startup.main(Startup.java:105)|原因:java.sql.SQLNonTransientConnectionException 由于基础异常无法加载连接类:com.mysql.cj.core.exceptions.WrongArgumentException : 格式错误的数据库 URL,无法解析主要 URL 部分。| 在 com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:108)| 在 com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)| 在 com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:87)| 在 com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:61)| 在 com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:71)| 在 com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping。translateException(SQLExceptionsMapping.java:79)| 在 com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:131)| 在 com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:232)| 在 java.sql.DriverManager.getConnection(DriverManager.java:675)| 在 java.sql.DriverManager.getConnection(DriverManager.java:258)| 在 com.datamirror.ts.monitoragent.statistics.MonitorStatisticsDatabase.createConnection(MonitorStatisticsDatabase.java:765)| 在 com.datamirror.ts.monitoragent.statistics.MonitorStatisticsDatabase.openConnection(MonitorStatisticsDatabase.java:569)| 在 com.datamirror.ts.monitoragent.statistics.MonitorStatisticsDatabase.(MonitorStatisticsDatabase.java:129)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.monitorStatsCollectOn(MonitoringStatistics。爪哇:162)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.(MonitoringStatistics.java:145)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.start(MonitoringStatistics.java:177)| 在 com.datamirror.ts.engine.ReplicationExecutive.init(ReplicationExecutive.java:430)| 在 com.datamirror.ts.engine.ReplicationExecutive.startup(ReplicationExecutive.java:244)| 在 com.datamirror.ts.commandlinetools.script.Startup.executeUtility(Startup.java:92)| 在 com.datamirror.ts.commandlinetools.shared.BaseUtility.entryPoint(BaseUtility.java:267)| 在 com.datamirror.ts.commandlinetools.script.Startup.main(Startup.java:105)|原因:com.mysql.cj.core.exceptions.UnableToConnectException 由于底层异常无法加载连接类:com.mysql.cj .core.exceptions.WrongArgumentException:数据库 URL 格式错误,无法解析主要 URL 部分。| 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)| 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:83)| 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:57)| 在 java.lang.reflect.Constructor.newInstance(Constructor.java:437)| 在 com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:60)| 在 com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:99)| 在 com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:232)| 在 java.sql.DriverManager.getConnection(DriverManager.java:675)| 在 java.sql.DriverManager.getConnection(DriverManager.java:258)| 在 com.datamirror.ts。monitoragent.statistics.MonitorStatisticsDatabase.createConnection(MonitorStatisticsDatabase.java:765)| 在 com.datamirror.ts.monitoragent.statistics.MonitorStatisticsDatabase.openConnection(MonitorStatisticsDatabase.java:569)| 在 com.datamirror.ts.monitoragent.statistics.MonitorStatisticsDatabase.(MonitorStatisticsDatabase.java:129)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.monitorStatsCollectOn(MonitoringStatistics.java:162)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.(MonitoringStatistics.java:145)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.start(MonitoringStatistics.java:177)| 在 com.datamirror.ts.engine.ReplicationExecutive.init(ReplicationExecutive.java:430)| 在 com.datamirror.ts.engine.ReplicationExecutive.startup(ReplicationExecutive.java:244)| 在 com.datamirror.ts.commandlinetools.script.Startup.executeUtility(Startup.java:92)| 在 com.datamirror.ts.commandlinetools.shared.BaseUtility.entryPoint(BaseUtility.java:267)| 在 com.datamirror.ts.commandlinetools.script.Startup.main(Startup.java:105)|原因:com.mysql.cj.core.exceptions.WrongArgumentException 数据库 URL 格式错误,无法解析主要 URL 部分。| 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)| 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:83)| 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:57)| 在 java.lang.reflect.Constructor.newInstance(Constructor.java:437)| 在 com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:60)| 在 com. mysql.cj.core.conf.url.ConnectionUrlParser.parseConnectionString(ConnectionUrlParser.java:140)| 在 com.mysql.cj.core.conf.url.ConnectionUrlParser.(ConnectionUrlParser.java:130)| 在 com.mysql.cj.core.conf.url.ConnectionUrlParser.parseConnectionString(ConnectionUrlParser.java:119)| 在 com.mysql.cj.core.conf.url.ConnectionUrl.getConnectionUrlInstance(ConnectionUrl.java:197)| 在 com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:202)| 在 java.sql.DriverManager.getConnection(DriverManager.java:675)| 在 java.sql.DriverManager.getConnection(DriverManager.java:258)| 在 com.datamirror.ts.monitoragent.statistics.MonitorStatisticsDatabase.createConnection(MonitorStatisticsDatabase.java:765)| 在 com.datamirror.ts.monitoragent.statistics.MonitorStatisticsDatabase.openConnection(MonitorStatisticsDatabase.java:第569章 在 com.datamirror.ts.monitoragent.statistics.MonitorStatisticsDatabase.(MonitorStatisticsDatabase.java:129)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.monitorStatsCollectOn(MonitoringStatistics.java:162)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.(MonitoringStatistics.java:145)| 在 com.datamirror.ts.monitoragent.statistics.MonitoringStatistics.start(MonitoringStatistics.java:177)| 在 com.datamirror.ts.engine.ReplicationExecutive.init(ReplicationExecutive.java:430)| 在 com.datamirror.ts.engine.ReplicationExecutive.startup(ReplicationExecutive.java:244)| 在 com.datamirror.ts.commandlinetools.script.Startup.executeUtility(Startup.java:92)| 在 com.datamirror.ts.commandlinetools.shared.BaseUtility.entryPoint(BaseUtility.java:267)| 在 com.datamirror.ts.commandlinetools。
ibm-midrange - i 系列上的 IBM CDC(来源)
我正在为 CDC(数据复制)使用 11.4.0 从 AS400(i 系列)捕获数据的新测试环境中工作。不幸的是,使用 QSECOFR 的用户没有连接它进行安装,并且 D_MIRROR 将被创建。
尝试连接数据存储时,它提示我输入密码。因此,我尝试让 QSECOFR 登录,但再次提示我。所以,我已经要求 AS400 管理员用密码更改 D_MIRROR 用户配置文件。登录过程很好,但无法映射带有错误的订阅。
错误:无法完成目标表的映射,因为源表的定义在目标数据存储中不存在。这可能是由于描述不完整造成的。检查事件日志以了解相关事件和可能的原因。
我不确定接下来我应该做什么。
ibm-data-replication - 订阅已收到中止关闭请求
我订阅了 DB2 for i (as400) 作为源,Kafka 作为目标 (11.4.0.2)。复制方法是REFRESH。
订阅中有一个表,运行良好。
但是在我将其删除并将其添加到另一个新订阅(具有相同的源和目标,也是 REFRESH)之后,它无法被复制。复制以以下消息结束:
Subscription XXX has received a request for an abort shutdown.
没有其他错误消息。CDC 似乎忽略了表映射(已刷新标志)。
从日志中,它返回:
Received normal shutdown request number 9 with reason OTHER_ENGINE_COMPLETE
我不知道发生了什么,因为日志中没有明显的提示。
我尝试(1)重新创建表映射和(2)更新表定义,但没有工作。可以复制订阅中的其他表。
ibm-midrange - IBM 中的 CDC 引擎,我无法启动 TCP 侦听器作业
DB2 for i
我为我的客户设置了 CDC 引擎。我安装好了。启动 DMIRROR 子系统没问题,但是当我启动 TCP 侦听器作业 (STRDMTCP) 时,该作业无法启动。在作业日志中,它显示此错误:
关于如何解决这个问题的任何想法?太感谢了。
mysql - IBM CDC Replication 获取 SQL 错误代码 1172,SQL 状态 42000
我正在使用 IBM CDC Replication 将数据从 AS400 复制到 MySQL。
来源:AS400 (CDC Engine for DB2 for i)
==> 目标:MySQL (CDC Engine for FlexRep)
然后,我使用下表映射创建了一个订阅作为镜像复制:
source.item
==>target.item
显然,source.item
来自 AS400,target.item
来自 MySQL。
target.item
对 具有唯一键COL1
约束COL8
。
当我运行此订阅时,我收到以下错误:
起初我想知道源表中是否有重复记录 COL1='IT' COL2='2' COL3='999' COL4='H203 ' COL5=' ' COL6='20180831' COL7='999999' COL8= 'FPL',因为复制重复的键值记录会违反目标中的唯一键约束,但是源表中只有一条具有此类键值的记录。
还要提一提的是,我们在表映射中有一个派生列表达式:
NEW_COL ==> %GETCOL(COL_WANTED, "source.lookup", "NOT FOUND", DESCRPF, 5, COL1, COL2, COL3, COL4, COL5)
基本上,我们正在尝试COL_WANTED
从source.lookup
匹配值为 COL1
to的列中查找COL5
。我认为这种“加入/查找”操作可能会产生导致错误的多个结果记录。但是后来我去掉了这个派生列表达式,仍然提示同样的错误。
任何建议将不胜感激。提前致谢。
ibm-data-replication - IIDR CDC 通知
我正在尝试设置有关 cdc 操作的通知。一种订阅以 iSeries 作为源和目标,其他订阅以 iSeries 作为源和 MySQL 作为目标。我的问题是,有没有办法在管理控制台或 iidr 访问服务器上设置通知?
db2 - IBM CDC 表应该已经被刷新。转换服务器将终止
我有一个作为 IBM DB2 iSeries 的源和目标表。复制方法是镜像。镜像前刷新后,出现消息Table <lib>/<table> should already have been refreshed. Transformation Server will terminate.
,表的状态保持为刷新。同一订阅中的其他表运行正常。以下是详细日志:
资源
- 表lib/table,成员表将刷新为subscription。
- 表lib/table,成员表刷新订阅完成 200000 行发送。
- 无法刷新表库/表成员表。
- 表lib/table应该已经被刷新。Transformation Server 将终止。
目标
- 为目标表lib/table开始刷新,成员 *ONLY。
- 从表lib/table的成员 *FIRST 中删除了 220310 行。
- 表lib/table的刷新已完成,成员 *ONLY。收到 200000 行,成功应用 199500 行,失败 500 行。
有没有人对这种情况有任何想法?