新手使用达梦数据库(DM8)的常见问题

发布于:2022-12-04 ⋅ 阅读:(10568) ⋅ 点赞:(9)

        之前一直使用win7系统下的达梦数据库,以图形界面操作为主,简单直观。后面接触到了linux系统下的达梦数据库的使用及运维,命令行操作确实有更强的拓展性,使用好了可以大大提高开发效率,但对于新手小白来说还是会有一些坑使人猝不及防,下面就结合我个人的经验整理一下。

1.开启归档时报错“非法归档配置目标”

 问题分析:arch为使用root账户新建的文件夹,dmdba没有操作权限。 

解决方法:

使用chown命令修改权限

chown dmdba:dinstall /dm8/arch

2.备份时报错:收集到的归档日志不连续

问题分析:联机备份时,关闭已配置的本地归档之后再重新打开,会造成归档文件中部分日志缺失,备份时检查归档文件连续性时将会报错。

解决方法:使用checkpoint(100)函数主动刷新检查点。执行完后,再进行备份该错误提示消失。

3.大小写敏感问题

         初始化达梦数据库时默认勾选的“字符串比较大小写敏感”较为关键,建表的时候,如果表名或列名使用小写字母,那么今后书写SQL语句的时候就要麻烦很多了,必须严格区分单引号、双引号的使用。字符串常量应使用单引号括起,关键字、对象名、字段名、别名等则使用双引号括起。在大小敏感的数据库下,使用dexp导出数据库、模式正常,但导出小写字母创建的表时,可能会提示“表不存在或者为系统内部对象,请核对后再进行输入”。所以本人一般新建库时都把大小写敏感的勾去掉。

4.连接时报错:网络通信异常

 这是比较常见的一个错误一般是以下几种情况导致

1)数据库服务未启动

         打开服务查看器,启动数据库实例服务,或者用命令行启动。

2)远程访问时被防火墙拦截

如果服务在本地连接正常,但是使用远程连接时提示网络异常,一般情况下是防火墙引发的问题。此时需要检查防火墙相关设置,一般生产系统是不允许直接关闭防火墙的,那么就需要在数据库服务器上开启对应端口远程访问的权限(默认为 5236)


此处以 Linux 为例
1.编辑/etc/sysconfig/iptables 文件:vi /etc/sysconfig/iptables
加入内容并保存:-A RH-Firewall-1-INPUT -m state–state NEW -m tcp -p tcp --dport 5236 -j ACCEPT
2.重启服务:/etc/init.d/iptables restart
3.查看端口是否开放:/sbin/iptables -L -n
 

3)端口号错误

达梦数据库的默认端口号是5236,使用其他接口(如达梦管理工具或jdbc)访问数据库,如果未单独指定端口号,则默认使用端口5236。与端口号相关的设置默认在dmdbms/data/的dm.ini文件中搜索PORT_NUM。 DAMENG目录,在确认端口号后,使用正确的端口号访问。

 5.批量导入数据时,关闭外键约束

         有时我们需要批量向数据库中导入数据,这时如果存在外键约束,就需要注意导入数据的先后顺序,变的很繁琐。这时我们可以暂时关闭外键约束检查,注意并不是删除外键,使得数据可以正常导入,导入后再恢复外键约束检查。达梦不能一次性关闭所有外键约束,也不能一次性关闭一个表的所有外键约束,只能查出所有外键约束依次关闭。

-- 关闭外键约束检查

ALTER TABLE 表名 DISABLE CONSTRAINT 约束名;

ALTER TABLE TB_TEST DISABLE CONSTRAINT CONS134299492;

-- 开启外键约束检查

ALTER TABLE 表名 ENABLE CONSTRAINT 约束名;

持续更新...

 

 

 

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到