MYSQL-5.7与达梦数据库(DM-DM8)的区别

哎呀,之前我们在做数据库迁移的时候,确实遇到了很多坑。
记得当时我们公司要换数据库,从MYSQL-5 .7 跳到大盟数据库DM-DM8 ,很是头疼。
我就来说说我这些年遇到的坑吧。

首先,我们DM在关键词处理方面确实吃了很大的亏。
曾经,我们有一个叫IDENTITY的字段,但是直接在DM中使用的时候,就报错了。
错误代码是-2 1 1 1 ,表示这是一个无效的列名。
当时我们以为自己写错了,后来发现这个东西必须用双引号括起来。
嘿嘿,这个事情在MYSQL里就简单多了。
只要使用反引号就不会出现问题。

我们来谈谈字符串处理,两个数据库也有很大不同。
在DM中,SQL语句中等号右侧的常量只能使用单引号。
双引号会直接报错,错误码仍然是-2 1 1 1 当时我们写SQL的时候,必须仔细检查每个字段名和常量,生怕用错引号。

对于数据类型来说,DM确实有点限制。
它不支持 Longtext、TINYBLOB、MEDIUMBLOB 和 LONGBLOB 等类型。
当时我们迁移的时候,要改变一些字段类型,非常麻烦。

至于时间功能,DM也不是很友好。
例如,date_format函数不支持异常格式化。
当时我们想格式化时间,但是格式不对,只好手动更改。

最头疼的是函数处理逻辑,尤其是数据转换函数CAST。
在MYSQL中,转换错误后默认值为0。
当时我们迁移数据的时候,直接在DM里报错,只好一一排查。

最后说一下druid连接配置。
DM 不支持过滤器->WallFilter 防火墙过​​滤器。
当时我们要么必须手动添加DM支持,要么使用Oracle兼容的方法来连接,很麻烦。

总之,虽然两个数据库都可以使用,但是差别确实很大。
我们当时迁移项目的时候,确实花费了很多的时间和精力。
现在回想起来,真是感慨万千。
嘿,这个数据库的事情可能真的很让人头疼。

达梦报网络通信异常

上周,有客户问我大盟数据库报网络通讯异常怎么办。
我向他详细解释了这一点。
首先,您需要确认数据库服务正在运行。
您可以登录数据库服务器并运行命令 ps -ef |运行 grep dmserver 查看该进程是否正在运行。
如果没有启动,则必须使用 dmserver 命令或系统服务管理工具(例如 systemctl start dmserver)来启动它。

然后您需要检查网络连接。
可以使用ping命令测试数据库服务器IP,看看是否有网络连接。
如果 ping 不通,则需要检查物理网络,例如: B. 网线、交换机或服务器的网络配置,例如B. IP冲突和路由问题。

接下来您需要检查端口通信。
可以使用telnet命令连接数据库服务器IP地址和端口号(默认为5 2 3 6 ),查看端口是否开放。
如果连接失败,可能是被防火墙阻止或者端口没有监听。

然后您需要检查连接参数。
确认客户端连接IP地址、端口号、用户名和密码与数据库配置匹配。
如果密码中含有特殊字符,请按照《如何使用disql使用含有特殊字符的大盟数据库密码登录》中的规则进行操作。

您还需要检查防火墙和端口限制。
检查防火墙状态。
如果启用,则必须打开数据库端口。
您还需要检查系统资源限制,例如B. /etc/security/limits.conf 中的 openfiles 参数是否设置得足够大。

如果您使用的应用程序有连接池,例如例如Druid或者HikariCP,需要检查connectTimeout和socketTimeout参数。
默认超时时间太短,可能会导致连接错误。
您可以将其设置为 1 2 0,000 毫秒(2 分钟)。

如果应用程序执行时间比预期长很多,可能是执行计划不准确导致的超时。
您可以通过收集统计信息、清除执行计划缓存、添加SQL提示等方式进行优化。

最后,必须考虑其他可能的原因,例如:服务器资源不足、网络延迟或丢包。
您可以使用 free-h 和 top 检查内存和 CPU 使用情况。
如果资源耗尽,您可能需要扩展容量或优化查询。
通过mtr或traceroute检查连接质量,并联系网络管理员解决中间设备问题。

总之,网络通信异常需要从多个维度进行排查。
首先确认服务、网络、防火墙等基础环境,然后根据应用特点调整连接池或者优化SQL,这样才能高效解决问题。
无论如何,这取决于你。
我还在想这个问题。