为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:centos
【CPU】:
【问题描述】*:
达梦版本号
DM Database Server 64 V8 DB Version: 0x7000c 03134283904-20220630-163817-20005
先使用windows的DM数据迁移工具新建迁移,然后导出XML配置文件,将密码改为明文。
将XML配置文件上传到达梦服务器,使用tool下的dts_cmd_run.sh工具迁移,迁移命令如下
./dts_cmd_run.sh config FILE=/opt/dm8/conf/config.xml DESCRYPT_PASSWORD=0
但是执行后,提示MySQL链接异常,但MySQL客户端是链接正常的,其次报日志文件解析错误。
08:12:06.774 [DMDTS-RUN-THREAD] ERROR com.dameng.dts.cmd.tool.Tool - error
java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 89 milliseconds ago. The last packet sent successfully to the server was 83 milliseconds ago.
at com.dameng.dts.core.session.DTSSession.newConnection(DTSSession.java:136) ~[com.dameng.dts_8.0.0.jar:?]
at com.dameng.common.persistence.session.Session.connect(Session.java:428) ~[com.dameng.common.persistence_8.0.0.jar:?]
at com.dameng.dts.core.session.DTSSession.connect(DTSSession.java:92) ~[com.dameng.dts_8.0.0.jar:?]
at com.dameng.dts.core.config.BaseConfiguration.fillSession(BaseConfiguration.java:359) ~[com.dameng.dts_8.0.0.jar:?]
at com.dameng.dts.core.config.BaseTransformerConfiguration.fillPage(BaseTransformerConfiguration.java:136) ~[com.dameng.dts_8.0.0.jar:?]
at com.dameng.dts.core.config.BaseTransformerConfiguration.fill(BaseTransformerConfiguration.java:79) ~[com.dameng.dts_8.0.0.jar:?]
at com.dameng.dts.cmd.tool.ConfigTool.run(ConfigTool.java:131) [com.dameng.dts_8.0.0.jar:?]
at com.dameng.dts.cmd.Command$RunThread.run(Command.java:397) [com.dameng.dts_8.0.0.jar:?]
at com.dameng.dts.cmd.Command$1.run(Command.java:298) [com.dameng.dts_8.0.0.jar:?]
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet successfully received from the server was 89 milliseconds ago. The last packet sent successfully to the server was 83 milliseconds ago.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_312]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_312]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_312]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_312]
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) ~[?:?]
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990) ~[?:?]
at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:201) ~[?:?]
at com.mysql.jdbc.MysqlIO.negotiateSSLConnection(MysqlIO.java:4912) ~[?:?]
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1663) ~[?:?]
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1224) ~[?:?]
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2190) ~[?:?]
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2221) ~[?:?]
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2016) ~[?:?]
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:776) ~[?:?]
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) ~[?:?]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_312]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_312]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_312]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_312]
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) ~[?:?]
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386) ~[?:?]
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330) ~[?:?]
at com.dameng.dts.driver.DriverAdapter.connect(DriverAdapter.java:40) ~[com.dameng.dts_8.0.0.jar:?]
at com.dameng.dts.core.session.DTSSession.newConnection(DTSSession.java:132) ~[com.dameng.dts_8.0.0.jar:?]
... 8 more
Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
at sun.security.ssl.HandshakeContext.<init>(HandshakeContext.java:171) ~[?:1.8.0_312]
at sun.security.ssl.ClientHandshakeContext.<init>(ClientHandshakeContext.java:103) ~[?:1.8.0_312]
at sun.security.ssl.TransportContext.kickstart(TransportContext.java:220) ~[?:1.8.0_312]
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:428) ~[?:1.8.0_312]
at com.mysql.jdbc.ExportControlled.transformSocketToSSLSocket(ExportControlled.java:186) ~[?:?]
at com.mysql.jdbc.MysqlIO.negotiateSSLConnection(MysqlIO.java:4912) ~[?:?]
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1663) ~[?:?]
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1224) ~[?:?]
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2190) ~[?:?]
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2221) ~[?:?]
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2016) ~[?:?]
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:776) ~[?:?]
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) ~[?:?]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_312]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_312]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_312]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_312]
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) ~[?:?]
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386) ~[?:?]
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330) ~[?:?]
at com.dameng.dts.driver.DriverAdapter.connect(DriverAdapter.java:40) ~[com.dameng.dts_8.0.0.jar:?]
at com.dameng.dts.core.session.DTSSession.newConnection(DTSSession.java:132) ~[com.dameng.dts_8.0.0.jar:?]
... 8 more
java.lang.NullPointerException
at com.dameng.dts.plugin.support.gui.dialog.TransformReportGenerator.getTransformReport(TransformReportGenerator.java:728)
at com.dameng.dts.cmd.tool.Tool.doExportReport(Tool.java:405)
at com.dameng.dts.cmd.tool.Tool.exportReport(Tool.java:396)
at com.dameng.dts.cmd.Command$1.run(Command.java:304)
DTS配置文件
<?xml version="1.0" encoding="UTF-8"?>
<TransformTask transformer="13">
<Source type="db" useCustomDriver="false" useDefaultURL="true">
<Server>192.168.11.22</Server>
<Port>3306</Port>
<AuthType>0</AuthType>
<Compress>false</Compress>
<User>aaa</User>
<Password>123456</Password>
<Catalog>test_db</Catalog>
</Source>
<Destination type="db" useCustomDriver="false" useDefaultURL="true">
<Server>localhost</Server>
<Port>5236</Port>
<AuthType>0</AuthType>
<Compress>false</Compress>
<DmType>dm</DmType>
<User>SYSDBA</User>
<Password>SYSDBA</Password>
</Destination>
<Mode useDefaultDataTypeMap="true" lengthInChar="1" simple="false" objectNameToUpperCase="true"
transformerDefault="false" isQuery="false">
<DBStrategies>
<Strategy>TRANSFORM_SCHEMAS</Strategy>
</DBStrategies>
<Schema source="" destination="">
<Strategies>
<Strategy>TRANSFORM_TABLES</Strategy>
<Strategy>TRANSFORM_VIEWS</Strategy>
</Strategies>
</Schema>
</Mode>
<TransformItems continueWhenError="true" multiThread="true">
<TransformItem fetchSize="500" batchSize="500" bufferSize="2" fetchSize_lob="500"
batchSize_lob="500" bufferSize_lob="2" expThread="2" impThread="2" id="0" type="table"
sourceSchema="" destSchema="TEST_DB" source="test_table" destination="TEST_TABLE"
isDefinitionAutoGenerated="true" pkConflictOpt="1" includeTableStorage="false"
includeIndexStorage="false">
<Strategies>
<Strategy>CREATE</Strategy>
<Strategy>TRANSFORM_UNIQUE_CONSTRAINTS</Strategy>
<Strategy>TRANSFORM_INDEXES</Strategy>
<Strategy>KEEP_FOREIGN_KEY_PK_SCHEMA</Strategy>
<Strategy>TRANSFORM_FOREIGN_KEY</Strategy>
<Strategy>IDENTITY_INSERT</Strategy>
<Strategy>TRANSFORM_PRIMARY_KEY</Strategy>
<Strategy>INSERT_ROW</Strategy>
<Strategy>TRANSFORM_CHECK_CONSTRAINTS</Strategy>
<Strategy>TRANSFORM_COMMENTS</Strategy>
</Strategies>
</TransformItem>
</TransformItems>
<Summay />
</TransformTask>
先在dts图形测试第一步 源数据库连接登录正不,再导出xml命令行执行。
推测你的mysql驱动或url有问题