单机安装问题

第一次使用 DM 的用户,可以参考文档:《DM DBA 手记之安装篇》

bin 目录没有 disql 文件,为什么?

【问题原因】

因为安装的时候未选择数据库服务组件,所以只有客户端组件,不包含相关的 DM 命令行工具。

【解决方法】

  • 方法一:从已经安装了 DM 数据库服务组件的安装文件下复制 bin 文件夹,覆盖当前安装目录下的 bin 文件夹。
  • 方法二:重新安装数据库,选择“数据库服务”组件,如下图。

选择组件

LD_LIBRARY_PATH 如何设置?

当使用 DM 的驱动(如 unixodbc、dci、dpi、php_dm、pdo_dm 等)时可能需要依赖部分 DM 提供的动态链接库文件,用户需要设置系统环境变量 LD_LIBRARY_PATH,将 DM 数据库的执行码路径添加进去,以 linux 环境下 DM 数据库默认安装位置 /opt/dmdbms/bin 为例:

  • 方法一:LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/dmdbms/bin,退出当前终端后就失效
  • 方法二:修改 ~/.bashrc 或 ~/.bash_profile 或系统级别的 /etc/profile,添加 export LD_LIBRARY_PATH=$LD_
    LIBRARY_PATH:/opt/dmdbms/bin

修改完需执行 source 命令,例如:修改的是 /etc/profile 文件,改完后需执行 source /etc/profile 才能在当前会话使环境变量生效,或者重新启动一个新的会话,这些环境变量也会生效。

数据文件存放路径在哪里?

DM 数据库数据文件存放路径是根据项目要求进行存放的,没有特定路径。一般情况下,达梦工程师安装部署完成数据库后,会提供相应部署文档,其中包含数据库文件路径信息,如果没有部署文档,请参考以下方法。

  • 方法一:咨询数据库管理和维护人员。
  • 方法二:如果是 Windows 或有图形化界面的 Linux,可以尝试通过“DM 服务查看器”工具,找到 DmService 开头的服务,鼠标右键选择【属性】,在【服务属性中-配置文件路径】项的路径即为数据文件路径。

配置文件路径

注意

如果在“DM 服务查看器”中找不到相应的服务,可能服务没有注册或通过其他方式启动数据库,此时请参考后面方法查找数据文件路径。

  • 方法三:无论 Window 还是 Linux 系统,均可在系统中搜索 MAIN.DBF 文件,以最新的文件为准,该文件所在的目录为数据库文件所在路径。
  • 方法四:Linux 系统,通过执行 ps -ef|grep dmserver 命令查看进程的方式找到相应的路径。

查看进程

  • 方法五:通过查看 v$datafile 数据字典的 path 字段,可以得到数据文件的具体存放路径。
//DM 数据库目录说明

dmdbms 目录:数据库安装目录。
bin 目录:数据库核心文件目录。
data 目录:数据库实例文件存放目录。
doc 目录:数据库手册(安装手册,系统管理员手册,SQL 语言使用手册等)存放目录。
drivers 目录:数据库驱动存放目录。
log 目录:数据库日志文件存放目录。
samples 目录:配置文件样板(dmarch 归档文件,dmmal 通信文件等)存放目录。
tool 目录:数据库工具(管理工具,数据迁移工具,审计与分析工具等)存放目录。
web 目录:web 工具 (DEM) 的连接及配置手册存放目录。
license_en:英文《软件产品授权证书》概述。
license_zh:中文《软件产品授权证书》概述。
release_en:英文 DM 数据库管理系统版本号汇总。
release_zn:中文 DM 数据库管理系统版本号汇总。
uninstall.exe:数据库卸载,双击即可按照提示进行数据库的卸载。

安装目录

无法启动图形化界面,有没有解决办法?

【问题描述】

执行 ./DMInstall.bin 或初始化实例时,启动图形化界面报以下错误:

Exception in thread "main" java.lang.unsatisfiedLinkError: could not load SWT library.
Reasons:no swt…....No such file or directory

【问题解决】

针对以上报错,存在两种情境,以下提供这两种情境下的解决办法。

情景一:安装 DM 数据库时,针对无法启动图形化的服务器,DM 数据库提供纯文本安装方式。具体安装过程如下:

  • 执行安装文件选择安装语言
[dmdba@RS219 test]$ ./DMInstall.bin -i

安装语言

如果当前操作系统中已存在 DM 数据库,终端会弹出提示,输入选项【y】,将进行下一步的命令行安装,否则退出命令行安装。如下图所示:

存在其他版本达梦数据库

  • 验证 Key 文件

用户可以选择是否输入 Key 文件路径。不输入则进入下一步安装,输入 Key 文件路径,安装程序将显示 Key 文件的详细信息,如果是合法的 Key 文件且在有效期内,用户可以继续安装。如下图所示:

输入 Key 文件路径

  • 输入时区

用户可以选择 DM 的【时区信息】。如下图所示:

设置时区

  • 选择安装类型

命令行安装与图形化安装的选择的【安装类型】一样。如下图所示:

选择安装类型

用户选择安装类型需要手动输入,默认是【典型安装】。

如果用户选择【自定义安装】,将打印全部安装组件信息。用户通过命令行窗口输入要安装的组件序号,选择多个安装组件时需要使用空格进行间隔。输入完需要安装的组件序号后回车,将打印安装选择组件所需要的存储空间大小。

  • 选择安装路径

用户可以输入 DM 数据库的安装路径,不输入则使用默认路径,默认值为 $HOME/dmdbms(如果安装用户为 root,则默认安装目录为 /opt/dmdbms,但不建议使用 root 用户来安装 DM 数据库)。 如下图所示:

选择安装目录

安装程序将打印当前安装路径的可用空间,如果空间不足,用户需重新选择安装路径。如果当前安装路径可用空间足够,用户需进行确认。不确认,则重新选择安装路径,确认,则进入下一步骤。

  • 安装小结

安装程序将打印用户之前输入的部分安装信息。如下图所示:用户对安装信息进行确认。不确认,则退出安装程序,确认,进行 DM 数据库安装。

安装前小结

  • 安装

安装

注意

安装完成后,终端提示**请以 root 用户执行命令**。由于使用非 root 用户进行安装,所以部分安装步骤没有相应的系统权限,需要用户手动执行相关命令,用户可根据提示完成相关操作。

  • root 用户执行 root_installer.sh 脚本,数据库安装即可完成

使用 root 用户,执行命令:/home/dmdba/script/root/root_installer.sh,显示内容如下:

移动 /home/dmdba/bin/dm_svc.conf 到/etc目录
修改服务器权限
创建 DmAPService 服务
创建服务 (DmAPService) 完成
启动 DmAPService 服务

情境二:初始化实例时,针对无法启动图形化的服务器,DM 数据库提供了 dminit 命令行初始化实例。具体方法如下:

系统管理员可以利用该工具提供的各种参数,设置数据库存放路径、段页大小、是否对大小写敏感以及是否使用 unicode,创建出满足用户需要的初始数据库。该工具位于数据库安装路径 bin 目录下,举例如下:

[dmdba@ ~]#  cd /opt/dmdbms/bin
[dmdba@ ~]#  ./dminit path=/opt/dmdbms/data
注意

该工具的详细介绍及使用办法请详细参考《DM 系统管理员手册》-7.3 章节。手册位于**数据库安装路径** `/dmdbms/doc` 文件夹。

Windows 数据库卸载不完整,服务/实例名被占用,怎么解决?

  • 数据库卸载默认不会删除 data 目录,这是为了保护数据,如确定不保留历史数据,可由管理员手动删除。
  • 数据库自带的 DM 服务查看器里里查看是否有 DMservice****的服务注册。
  • 管理员开启 CMD 命令行界面,然后执行:sc delete "服务名"。例如:sc delete DmServiceDMSERVER

数据库的页大小如何修改,修改前需确定哪些参数?

数据库的页大小只能通过重新初始化实例来进行修改。
需要事先确定好的参数有:页大小、簇大小、字符集、字符串大小写敏感和"VARCHAR 类型以字符为单位",这些参数配置一定要在安装前确认好,以免安装后不能修改造成不必要的麻烦。

设置簇大小和页大小的影响是什么?

  • 数据页(也称数据块)是 DM 数据库中最小的数据存储单元。页的大小对应物理存储空间上特定数量的存储字节,在 DM 数据库中,页大小可以为 4 KB、8 KB、16 KB 或者 32 KB,用户在创建数据库时可以指定,默认大小为 8 KB,一旦创建好了数据库,则在该库的整个生命周期内,页大小都不能够改变。
  • 簇是数据页的上级逻辑单元,由同一个数据文件中 16 个或 32 个连续的数据页组成。在 DM 数据库中,簇的大小由用户在创建数据库时指定,默认大小为 16。

假定某个数据文件大小为 32 MB,页大小为 8 KB,则共有 32 MB/8 KB/16=256 个簇,每个簇的大小为 8 KB*16=128 KB。和数据页的大小一样,一旦创建好数据库,此后该数据库的簇的大小就不能够改变。

安装时提示写入权限不足,如何解决?

提示写入权限不足,一般是操作系统层面的权限不足的问题。可通过以下步骤解决:

  1. 确定使用的哪个用户进行安装 DM 数据库,一般是 dmdba 用户或者 root 用户。
  2. 查看相应的安装目录下是否有对应用户的权限,一般的 root 用户对应的目录是/opt/dmdbms;dmdba 用户对应的目录是/home/dmdba/dmdbms。
  3. 将对应目录的权限使用 chown 命令授权给相应的用户。

Openation not Permitted 错误如何解决?

CentOS7 的 Docker 容器里面以静默方式安装 DM 数据库最后一步出现该报错,在 Docker 添加 privileged 启动参数即可解决。

数据库安装前,是否需要预装 JDK?

不需要另外安装 JDK,DM 数据库自带 JDK 环境。软件环境安装要求如下:

软件环境 要求
Windows 简体中文服务器版 sp2 以上
Linux glibc2.3 以上,内核 2.6,已安装 KDE/GNOME 桌面环境,预装 UnixODBC 组件
网络协议 TCP/IP
系统盘 1 GB 以上剩余空间

DM 服务如何进行注册?

请参考《DM_Linux 服务脚本手册》,手册位于数据库安装路径 /dmdbms/doc 文件夹。

服务脚本手册

如何正确的卸载 DM 数据库?

以下介绍 Windows 环境和 Linux 环境下(命令行方式/图形化方式)卸载 DM 数据库的方法。

情境一:Windows 环境

  • 停止数据库服务

打开 DM 服务查看器,如下图所示:

服务查看器

点击 DM 数据库实例服务--> 点击【停止】,如下图所示:

停止服务

  • 删除数据库实例或删除数据库服务

打开数据库配置助手,如下图所示:

配置助手

选择【删除数据库实例】或【删除数据库服务】,如下图所示:

配置助手

选择需要删除的数据库实例点击【下一步】,如下图所示:

选择删除数据库实例

点击【完成】即可删除数据库实例,如下图所示:

删除数据库实例

  • 卸载数据库

在数据库的安装目录 dmdbms 文件夹中点击【uninstall.exe】即可完成卸载,如下图所示:

安装目录卸载程序

情境二:Linux 环境命令行方式卸载 DM 数据库

  • 停止数据库服务

查看数据库服务,执行命令:ps -ef|grep dmserver(查看数据库服务是否正在运行),如下图所示:

查看数据库服务

进入数据库安装目录 /bin 目录下停止数据库服务,假设数据库安装目录 /opt/dmdbms/,则需进入 /opt/dmdbms/bin

执行命令:service DmServiceDMSERVER stop(停止数据库服务),如下图所示:

停止数据库服务

  • 删除数据库实例

进入数据库安装目录 /data 目录下删除数据库实例,假设数据库安装目录 /opt/dmdbms/,则需进入 /opt/dmdbms/data/

执行命令:rm DAMENG –rf(删除数据库实例,-rf 放在最后,以免手快误删除了),如下图所示:

删除数据库实例

  • 卸载数据库

进入数据库的安装目录下卸载数据库。假设数据库安装目录 /opt/dmdbms/,则需进入 /opt/dmdbms/ 即可。

执行命令:./uninstall.sh(卸载数据库),如下图所示:

卸载数据库

情境三:Linux 环境使用图形化方式卸载数据库

  • 停止数据库服务

进入数据库安装目录下的 tool 目录打开 DM 服务查看器。假设数据库安装目录 /opt/dmdbms/,则需进入 /opt/dmdbms/tool。

执行命令:./dmservice.sh(打开 DM 服务查看器),右键【DM 数据库实例服务】选择【停止】,如下图所示:

停止数据库实例服务

  • 删除数据库实例或数据库服务

进入数据库安装目录下的 tool 目录打开 DM 数据库配置助手,假设数据库安装目录 /opt/dmdbms/,则需进入 /opt/dmdbms/tool。

执行命令:./dbca.sh(打开 DM 数据库配置助手),删除数据库实例或删除数据库服务,如下图所示:

打开配置助手

选择需要删除的数据库实例,如下图所示:

选择需要删除的数据库实例

点击【完成】即可删除数据库实例,如下图所示:

完成删除操作

  • 卸载数据库

进入数据库的安装目录下卸载数据库,假设数据库安装目录 /opt/dmdbms/,则需进入 /opt/dmdbms/ 即可。

执行命令:./uninstall.sh(卸载数据库),如下图所示:

卸载数据库

安装 DM 数据库时,双击 setup.exe 没有反应

若打开 cmd 没有反应,管理员身份运行也不行,则可能是进程卡住了。
可打开服务管理器,结束安装进程,再用管理员运行 setup.exe。

数据库安装完成后如何初始化实例

初始化实例可通过命令行方式或者图形化方式完成,以下对这两种方式进行简要介绍:

方法一:命令行方式

dminit 是 DM 数据库初始化工具,可以利用 dminit 工具提供的各种参数,设置数据库存放路径、段页大小、是否对大小写敏感、以及是否使用 UNICODE 等,创建出满足用户需要的数据库。该工具位于安装目录的 /bin 目录下。

请参考《DM_dminit 使用手册》,手册位于数据库安装路径 /dmdbms/doc/special 文件夹下。

通过查看帮助说明能更好的去理解参数的使用,如下图所示:

查看 help

  • 示例

创建一个 EMSDB 数据库,实例名 EMSDB,端口号 5238,页大小 16 KB,路径为 E:\dmdbms\data。如下图所示:

初始化库

执行命令:Dmserver.exe E:\dmdbms\data\EMSDB\dm.ini,前台启动实例,如下图所示:

前台启动实例

前台启动实例

执行 Disql.exe SYSDBA/SYSDBA@localhost:5238 进行验证,如下图所示:

验证

方法二:图形化方式

通过 dbca 工具初始化实例,dbca 工具在 ..\dmdbms\tool 目录下,如下图所示:

dbca 工具目录

依次按下图顺序,配置数据库库实例。

创建数据库实例

数据库模板

指定数据库目录

数据库标识

数据库文件

初始化参数

口令管理

创建示例库

创建摘要

创建

创建完成

打开 DM 管理工具,执行:select * from V$LICENSE 进行验证。

Manager 工具验证

显示 license 信息如下图所示:

显示 license 信息

安装数据库报错:Os_file_create_normal error! Desc:permission denied,code:13

对应目录 dmdba 没有权限,要用 root 操作。
正常情况下,建议利用 chown 命令授予安装目录 dmdba 权限,不要使用 root 权限安装数据库。

linux 下安装数据库,提示没有写入权限

【问题描述】

请选择安装目录 [/OPT/DMDBMS]: /HOME/DM 没有写入权限!

【解决方法】

  • 首先按照安装手册,建立一个 dminstall group,dmdba user 来安装数据库。给 /home/dm 授权,执行命令: chown -R group:user /home/dm
  • 如果用户权限都已获取,先判断数据库版本是否匹配,需要根据操作系统和 CPU 的类型去选择相应的安装包。

数据库安装步骤详见 DM 数据库快速上手指南

删除 DM 注册的服务/注册 DM 服务失败

安装完数据库后自带 DM dbca 工具。

img

若 Windows 注册 DM 服务失败,首先尝试重启操作系统解决。

安装或者初始化过程中卡死

【问题描述】

安装 DM 数据库的时候,在创建快捷方式那一步卡机。启动运行大概 2/3 就卡住了,Windows 客户端使用 dbca 初始化实例时界面卡死,连续注册服务失败初始化实例截止不动。

【解决方法】

  1. 可能被 360 安全卫士之类软件阻截了,重新初始化;
  2. 参考日志报错文件。

如果是 out of memory,那有可能是初始化 buffer 太大;

比如:检查日志为报错启动实例内存不足。--修改 dm.ini 文件,缩小 buffer 值再重启。

安装的时候报错:无法执行二进制文件

【问题描述】

安装的时候报错:无法执行二进制文件 I Error message: cannot execute binary file:exe format error

【解决方法】

数据库版本和操作系统版本、CPU 型号不匹配,或者安装包不完整。在 Linux 系统下执行:uname -a 命令可以查看操作系统信息。

GLIBC_xxxx not found

【问题描述】

数据库安装的时候报错:`GLIBC_xxxx' not found

【解决方法】

  1. glibc 版本不对,也就是操作系统版本跟安装的编译版本不一致
  2. glibc 的动态库版本不匹配,可以装一个对应版本的 glibc,用 dminit 工具初始化实例;路径选默认的。在 bin 目录下 .\dminit help 可以查看参数。

Linux 上用无法启动管理工具

先得安装系统的图形化界面,然后执行 tool 下面的 manager。即:使用 manager 客户端,在 Linux 上执行 xhost +,或者使用 Windows 版本客户端进行远程连接。

如何修改 open files 限制

编辑 /etc/security/limits.conf,修改以下内容:

* soft nofile 65536
* hard nofile 65536
* soft nproc 65565
* hard nproc 65565

需要重新登录,或者重新打开 ssh 客户端连接,永久生效。

vi /etc/scurity/limits.conf,添加以下内容:

dmdba soft nofile 65535
dmdba hard nofile 65535
注意

需要注意,Linux 操作系统中同时存在多个不同的文件对 limits 做配置。在配置完成后需要确认配置是否正常生效,若未生效建议可以在 .bash_profile 文件中加入 ulimit -n。 在Linux最小版本系统环境下,设置系统文件打开数量大小限制,修改/etc/security/limit.conf 重启无法生效,dmdba安装用户执行`ulimit -n 65536` ,报错“无法修改limit值:不允许的操作”,原因是最高权限root用户的最大限制数据都小于安装用户dmdba设置数据导致,可修改root用户最大限制数后再修改dmdba用户最大限制。

初始化库时报错 license violation detected,or product has expired

license 过期或者用了不对应版本的授权,请联系给予授权的达梦商务解决。

如果您的达梦数据库是从达梦官网上下载的,试着把授权文件 (dm.key) 从 bin 目录下移除,再启动。

中标麒麟服务器,达梦数据库的桌面快捷方式

DM 新版本 redhat 系列没有桌面快捷方式

其他操作系统版本:

  • root 界面中,root 用户安装:

用 root 去安装,applications 中快捷方式安装时就会添加进去,root 桌面的快捷键也会添加进去,但是 dmdba 桌面上并不会有桌面快捷方式。这就需要我们手动创建,我们快捷方式的创建脚本都在 dmdbms/script/下,创建桌面快捷方式只需在 dmdbms 下执行 ./makdedesktopdir.sh 即可成功创建。

  • root 界面中,dmdba 用户安装:

dmdba 用户安装,dmdba 用户桌面会有快捷方式,但是 application 和 root 桌面都不会有快捷方式。所以需要去 dmdbms/script 下手动执行脚本创建。root 桌面创建快键方式同步骤 1。而 applications 中快捷方式需要 root 用户执行 dmdbms/script/ 下脚本 ./gnomemenu.sh insert。

数据库安装的时候报错:Error occurred during initiazation of VM&Unable to load native library

数据库安装的时候报错:

  1. Error occurred during initiazation of VM
  2. Unable to load native library

【解决方法】

做一个软连接应该可以了。
ln -s /usr / li b64 / li bnsl.so.2 /usr / li b64 / li bnsl.so.1

dminit 初始化数据库时报错:start parameter error

  1. 请参考《DM dminit 使用手册》语法规则,手册位于数据库安装路径 /dmdbms/doc/special 文件夹。
  2. dminit 的参数中,等号两边不能有空格。

文件不存在,请检查此 KEY 的路径是否正确

  1. 如果获取的授权文件格式为 dmxxxxxxx.key,则在安装的时候,需要把 KEY 文件的全称输入进去:比如 /home/DM7/dmxxxxxxx.key
  2. 如果是从达梦云适配中心下载试用数据库,可以在输入 KEY 文件路径时,选择 NO,继续进行安装。

安装报错:Exception in thread "main" org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]

【问题描述】

解压安装程序..........
No protocol specified
Exception in thread "main" org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]
    at org.eclipse.swt.SWT.error(SWT.java:4109)
    at org.eclipse.swt.widgets.Display.createDisplay(Display.java:902)
    at org.eclipse.swt.widgets.Display.create(Display.java:890)
    at org.eclipse.swt.graphics.Device.<init>(Device.java:154)
    at org.eclipse.swt.widgets.Display.<init>(Display.java:499)
    at org.eclipse.swt.widgets.Display.<init>(Display.java:490)
    at org.eclipse.swt.widgets.Display.getDefault(Display.java:1693)
    at org.eclipse.swt.widgets.Shell.<init>(Shell.java:260)
    at org.eclipse.swt.widgets.Shell.<init>(Shell.java:358)
    at org.eclipse.jface.window.Window.createShell(Window.java:487)
    at org.eclipse.jface.window.Window.create(Window.java:430)
    at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1089)
    at org.eclipse.jface.window.Window.open(Window.java:790)
    at com.dameng.install.ui.MainApplication.run(Unknown Source)
    at com.dameng.install.ui.MainApplication.main(Unknown Source)

【问题原因】

当前操作系统的登录用户应该无图形界面权限,如果在当前会话中启用图形界面需要将图形界面权限放开。

【解决方法】

  1. 确认当前操作系统环境安装有图形界面,切换到 root 用户后在命令行中输入 xhost +,可以使得 dmdba 可以调用图形界面进行安装。
  2. 使用 ./DMinstall -i 命令,通过字符界面进行安装。

安装报错:java:Exec format error

安装数据库报如下错误:

安装报错信息

【解决方法】

  1. 检查安装的达梦数据库软件包是否和操作系统想匹配。可以在社区内咨询,查询不同系统应该选择什么开发试用软件包。
  2. 如果选择的数据库软件包是和系统匹配的,请参考 SHA256 值是否和安装包里面的 SHA256 值是匹配的。如果不匹配,可能是因为下载不完整,请重新下载。
  3. 如果按照安装手册设置了 java 环境变量的,可以先把设置的环境变量清除。然后重新安装。
  4. 检查安装的达梦数据库软件包是否和 CPU 型号相匹配。

安装报错:初始化图形界面失败

如果当前监视器窗口不支持图形界面,请进入安装文件所在文件夹并使用 ./DMInstall.bin -i 进行命令行安装。

请参考 DM 数据库无法打开图形化界面的解决方法

此问题与下面问题类似。

无法启动没有图形化界面

安装报错:./DMInstall.bin: /tmp/DMInstall/source/jdk/bin/java: not found

【问题描述】
liunx 中安装数据库报如下错误:./DMInstall.bin: /tmp/DMInstall/source/jdk/bin/java: not found
或 /tmp/DMInstall/source/jdk/bin/java:/lib/ld-liunx.so.2 或 interpreter:没有那个文件或目录 错误。如下图:

安装报错信息

【问题分析】

  • 移动安装包的时候造成安装包损坏,请核对 SHA256 值或 MD5 值,如果和官网提供的 SHA256 值或 MD5 值不同,则重新下载或用压缩包压缩方式上传。
  • 安装包与环境不匹配,需要重新下载或申请对应版本的安装包重新安装。

如何理解 DM 中的大小写敏感

请详细参考:如何理解 DM 中的大小写敏感

达梦数据库存储汉字的相关说明

请详细参考:达梦数据库汉字存储知多少

进行命令行安装通过 dminit 初始化数据库后,mount 启动服务显示未初始化数据库

【问题描述】

进行命令行安装(内网)、通过 dminit 初始化数据库后,通过命令 ./dmserver /dm7/data/DAMENG001/dm.ini mount 启动显示未初始化数据库。

【问题解答】

达梦数据库初始化实例以后,第一次需要正常启动一次数据库服务。即先执行:

./dmserver /dm7/data/DAMENG001/dm.ini

等到显示 “SYSTEM IS READY ”,再输入 exit 命令退出。然后再执行:

./dmserver /dm7/data/DAMENG001/dm.ini mount
注意

mount 状态启动的数据库,无法进行相关数据操作。

安装报错 Exception in thread "Thread-0"

【报错内容】:

Exception in thread "Thread-0" java.lang.NoClassDefFoundError: com/dameng/tool/util/script/LinuxServiceShellUtil
 at com.dameng.install.cli.MainApplication$2.run(MainApplication.java:358)
Caused by: java.lang.ClassNotFoundException: com.dameng.tool.util.script.LinuxServiceShellUtil
 at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
 at java.security.AccessController.doPrivileged(Native Method)
 at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
 at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
 ... 1 more

【问题解答】:

  1. 版本不匹配,查看 CPU 型号和操作系统版本是否和申请使用的达梦版本一致。
  2. 下载不完整,核对一下官网提供的 MD5 值或者 SHA256 值。如果核对不一致,请重新下载安装包。

安装版本时执行注册服务脚本失败

【问题描述】

kylin 操作系统中安装 DM v8 版本过程中执行注册服务脚本失败。
dmap 注册成功启动提示:“Job for DmAPService.service failed because a timeout was exceeded.See "systemctl status DmAPService, service" and "journalctl -xe" for details、See "systemctl status DmAPService, service" and "journalctl -xe" for details”。
dmserver 注册提示参数不正确。

回答:可以忽略此步骤,后面如果需要用 dmap 服务,单独注册。

具体可以参考:注册服务

Linux 版本安装完成后,没有出现“请以 root 系统用户执行命令”,安装结束后无法连接数据库

为了减少对操作系统的影响,用户不应该以 root 系统用户来安装和运行 DM。

由于使用非 root 系统用户进行安装,所以部分安装步骤没有相应的系统权限,需要用户手动执行相关命令,若使用 root 用户安装,则系统会直接执行 mv 命令。

安装结束后,还需要初始化数据库并注册相关服务才能正式运行达梦数据库,具体可参考安装目录的 doc 目录下《DM8_dminit 使用手册》和《DM8_Linux 服务脚本使用手册》。

达梦数据库的安装部署手册

如果是在达梦官网首页下载的数据库软件包,解压时有数据库安装 pdf 手册。

同时,也可以参考:安装前准备

数据库安装完后,如何用命令行的方式初始化实例

在安装目录的 DOC 目录下有 “DM_dminit 使用手册”,该手册详细的描述了初始化的命令以及每个参数的意义。

同时也可以参考:命令行配置实例

在 linux 系统下通过挂载 ISO 安装提示为只读文件无法执行和授予执行权限

此时,可以把安装文件复制到可以执行的本地盘目录中,然后再执行数据库的安装操作。

图形化初始化数据库报错

【报错详情】

could not initialize class com.dameng.console.backup.drmandll

【问题解答】

  1. 可能是数据库软件和操作系统的版本不匹配造成的,请查看 CPU 型号和操作系统版本是否和申请使用的达梦版本一致。
  2. 可以先跳过这个问题:尝试用命令行的方式来初始化数据库

参考:命令行配置实例

打开管理工具报错:Product com.dameng.manager.product could not be found

【问题描述】

打开管理工具报错,日志文件出现一下错误信息:

日志报错信息

【问题解答】

如果对安装程序和客户端运行的 JAVA 环境无特殊需求,可忽略设置 JAVA 环境。达梦的安装软件自带有一个 JDK 环境,不建议手动指定 JDK 环境。

-i 安装后,执行 dbca.sh 报错

【问题描述】

执行 ./DMInstall.bin 报错:初始化图形界面失败,如果当前监视器窗口不支持图形界面,请进入安装文件所在文件夹并使用 "./DMInstall.bin -i" 进行命令行安装。

用 root 执行就可以弹出图形化界面。用 ./DMInstall.bin -i 安装后,执行 dbca.sh 报错

【问题解答】

dbca 工具也是一个图形化界面的工具,如果没有图形化操作方式的话,需要使用 dminit 命令行的方式进行实例初始化。

可以参考安装目录 /doc 目录下的 DM_dminit 使用手册。

还可以参考相似问题 初始化图形界面失败

图形化安装报错:A fatal error has been detected by the Java Runtime Environment

【问题描述】

使用图形化安装命令进行安装的时候报错信息如下:

Error occurred during initialization of VM
Could not reserve enough space for the card marking array

本机的 CPU 占有率和硬盘空间都很充实,不存在内存遗出或者空间不够的情况.后来使用了命令行安装的时候在设置时区的时候,也出现了报错,信息如下:

A fatal error has been detected by the Java Runtime Environment:
.....
JRE version : 6.0
Java VM: Open JDK 64-Bit ...

本机安装的是龙芯的 Open Jdk 64-bit 版本是 1.8。

【问题解答】

达梦的安装软件自带有一个 JDK 环境,不建议手动指定 JDK 环境。虽然安装手册里有指定 JAVA 环境变量的步骤,建议忽略这一步。

初始化报错:create dir '/home/root1/dmdbms/data/DAMENG'failed

【问题解答】:

  • 数据库实例创建过程中,输入了错误并且不存在的操作系统路径。
  • 权限问题:dmdba 用户没有对指定的操作系统路径拥有读写的权限。
    若用户输入的路径为操作系统绝对路径下待创建的文件夹名称,并且用户对操作系统绝对路径拥有读写权限,数据库实例将执行 mkdir -p 命令,进行级联的文件夹创建。
    确认创建数据库实例所使用的目录的操作系统绝对路径,同时确保用户对指定的操作系统绝对路径拥有读写的权限,在 system dir 中输入正确的操作系统路径。

比如:安装目录为:/home/root1/dmdba/dmdbms/bin,那么需要给安装目录赋予权限:chown -R dmdba:dinstall /home/root1/dmdba/dmdbms 然后再初始化:

su - dmdba
cd /home/root1/dmdba/dmdbms/bin
./dminit path=.....
  • 创建目录时报错“文件已存在”或者报错:“File ‘ ’ has already exist!”。
    可以先检查所输入的目录下是否已存在同名目录。并且用 ls -ll 命令查看目录权限。若文件确实存在则再让客户判断是否需要删除文件重建。

达梦数据库初始化报错: cpu type mismatch

【问题详细描述】

达梦数据库初始化报错: cpu type mismatch,this system is authorized on feiteng, but current system is based on x86

【问题解答】

安装包和操作系统不匹配,可以在达梦云适配中心下载试用下载适合于 x86 系统安装的达梦数据库软件包。

用达梦配置管理工具创建实例到启动服务都超时

可以有如下两种方式来启动数据库:

  1. 可以手动用服务的方式启动数据库

service DmServiceDAMENG start

  1. 在安装目录下的 bin 目录,用 dmserver 来启动服务。

请参考:启停数据库

注册达梦服务提示 -i 参数无效

-i 参数是 DM7 的注册服务参数,如果用的是 DM8 数据库,则用 -dm_ini 参数

请具体参考:注册服务

达梦数据库是否需要设置 hugepage

512 GB 及以下内存,建议关闭 hugepage。

假若有 1 TB 的内存,可以考虑开启 hugepage,此时配置 hugepage 的大小应该略大于 dm.ini 中 buffer 的量,比如 120%。

初始化报错:Can't set charset to GB18030 when case_sensitive is set to N

请将数据库版本升级为达梦云适配中心最新版本:达梦云适配中心下载

Linux 系统,点击达梦可视化/管理工具的快捷键,没有任何反应

可能是权限问题,用 root 用户赋予安装用户对于安装目录可执行权限。

举例:

chown -R dmdba:dinstall /opt/dm/
chmod -R 775 /opt/dm/

在初始化时,参数 LENGTH_IN_CHAR 具体有什么作用?

LENGTH_IN_CHAR:
VARCHAR 类型对象的长度是否以字符为单位。取值:1、Y 表示是,0、N 表示否。默认值为 0。可选参数
1 或 Y:是,所有 VARCHAR 类型对象的长度以字符为单位。这种情况下,定义长度并非真正按照字符长度调整,而是将存储长度值按照理论字符长度进行放大。所以会出现实际可插入字符数超过定义长度的情况,这种情况也是允许的。同时,存储的字节长度 8188 上限仍然不变,也就是说,即使定义列长度为 8188 字符,其实际能插入的字符串占用总字节长度仍然不能超过 8188;

0 或 N:否,所有 VARCHAR 类型对象的长度以字节为单位。

以不同的字符编码的 varchar(10)为例:

配置 字段长度 英文存储个数 中文存储个数 实际字节数 备注
GB18030, LENGTH_IN_CHAR=0 VARCHAR(10) 10 5 10 中文占 2 字节
GB18030, LENGTH_IN_CHAR=1 VARCHAR(10) 20 10 20 中文站 2 字节,以字符为单位,自动扩充为双倍字节数
UTF-8, LENGTH_IN_CHAR=0 VARCHAR(10) 10 3.3 10 中文占 3 字节
UTF-8, LENGTH_IN_CHAR=1 VARCHAR(10) 40 13.3 40 中文站 3 字节,以字符为单位,自动扩充为 4 倍字节数

初始化参数 BLANK_PAD_MODE 的具体含义是什么?

BLANK_PAD_MODE 主要用于 Oracle 数据的兼容,达梦默认设置 BLANK_PAD_MODE=0,即在做数据对比时,默认会截断字符结尾的空格,而 Oracle 默认是会识别到字符结尾的空格。
设置如下场景验证:

1. 在BLANK_PAD_MODE=0时
SQL> create table student(id int, name varchar(20));
SQL> insert into student values (1,'blank ');
SQL> commit;
SQL> insert into student values (1,'blank');
SQL> commit;
SQL> create unique index idx_test_blank on student(name);
create unique index idx_test_blank on student(name);
[-6612]:违反唯一性约束.
已用时间: 4.925(毫秒). 执行号:0.

2. 在BLANK_PAD_MODE=1时,同样的表和数据
登录使用时间 : 4.018(ms)
disql V8
SQL> create unique index idx_test_blank on student(name);
操作已执行
已用时间: 5.721(毫秒). 执行号:50700.

执行创建唯一索引会成功;

数据库初始化报错:Floating point exception (核心已转储)等

【问题解决】

  • 检查创建数据目录和权限。如果不正确,给予 dmdba 用户组用户和对应权限。
chown -R dmdba:dinstall /dbdata
chmod -R 775 /dbdata
  • 有些机器初始化报“核心已转储,需要重新初始化”,则按照要求重新初始化一次。

数据库安装报错:OpenJDK 64-Bit Server VM warning:Insufficient space for shared memory

【问题描述】

安装数据库时报错,具体信息如下图:

安装报错信息

【问题解决】

  • 检查存储空间
    DM 完全安装需要最少 1GB 的可用内存,用户需要提前规划好安装目录,预留足够的存储空间。用户在 DM 安装前也应该为数据库实例预留足够的存储空间,规划好数据路径和备份路径。用户可使用以下命令检查存储空间:
df -h /dm8   #查询目录/dm8 可用空间
  • 检查临时文件空间大小。
    DM 安装程序在安装时将产生临时文件,临时文件需要 1GB 的存储空间,临时文件目录默认为 /tmp。如果 /tmp 目录不能保证 1GB 的存储空间,用户可以扩展 /tmp 目录存储空间或者通过设置环境变量 DM_INSTALL_TMPDIR 指定安装程序的临时目录。例如:
[root@localhost /]# mkdir -p /home/tmp1     #新建/home/tmp1 目录为临时文件目录
[root@localhost /]# chown -R dmdba:dinstall /home/tmp1

[dmdba@localhost ~]$ vi .bash_profile
export DM_INSTALL_TMPDIR=/home/tmp1           #配置环境变量

[dmdba@localhost ~]$ source .bash_profile     #环境变量生效

再重新安装数据库即可。

达梦小版本的升级,用什么方案比较好

【问题解决】

达梦小版本升级,建议利用第二台机器作为中转机。
中转机要求与升级前的数据库版本一致,先把待升级的数据库以备份还原(需统一版本号,细小的版本差异都可能导致备份还原失败)或 DTS 等方式同步过去,然后再对待升级库进行升级,最后把中转机中的数据库通过 DTS 工具迁移过去。
该方法较为安全,若数据量大可能耗时较长。

初始化实例时报错:“初始化数据库实例(DMSERVER)失败”

【问题描述】

初始化实例失败,详细报错信息如下:

[ERROR] 初始化数据库实例(DMSERVER)失败。
Cannot run program "D:\dmdbms\bin\dminit.exe" (in directory "D:\dmdbms\bin"): CreateProcess error=2, 系统找不到指定的文件。
java.lang.RuntimeException: 初始化数据库实例(DMSERVER)失败。
Cannot run program "D:\dmdbms\bin\dminit.exe" (in directory "D:\dmdbms\bin"): CreateProcess error=2, 系统找不到指定的文件。
at com.dameng.dbca.dialog.CreateDialog$CreateTask.run(CreateDialog.java:331) ~[com.dameng.dbca_8.0.0.jar:?]
at com.dameng.common.gui.dialog.ProgressDialog$Task.run(ProgressDialog.java:153) ~[com.dameng.common.gui_8.0.0.jar:?]
at com.dameng.dbca.dialog.TaskDialog$4.run(TaskDialog.java:273) ~[com.dameng.dbca_8.0.0.jar:?]

【问题解决】

可以检查数据库安装目录../bin 下没有 exe 可执行程序。注意:若安装的是客户端程序,客户端程序不能初始化数据库实例。安装数据库服务端程序即可。

远程 xshell 连接服务器,tool 工具下打开 dts 报错

【问题描述】

Linux_x86(最小化安装)环境下安装达梦 8,利用 xhsell 远程连接服务器,tool 工具下打开 ./dts 报错:无法打开工具图形界面、无法开启图形回显。如下图所示:

报错信息

报错信息

【问题解决】

按照如下步骤修改 sshd_config 配置文件内容:

vim /etc/ssh/sshd_config  -添加如下内容

X11Forwarding yes
X11UseLocalhost no    #禁止将 X11 转发请求绑定到本地回环地址上
AddressFamily inet    #强制使用 IPv4 通道

systemctl restart sshd.service

修改完成后,再次打开成功。

安装数据库软件报错:/tmp/DMInstall/install/install_zh_UTF.sh:第 140 行:echo:写错误:设备上没有空间

【问题解决】

在数据库软件的安装过程中,会默认在/tmp 目录下生成 DMInstall 子目录,并连续写入文件,若/tmp 空间不足,会导致无法继续写入文件。此时建议修改临时目录到其他路径下。具体方法可参照:## 数据库安装报错:OpenJDK 64-Bit Server VM warning:Insufficient space for shared memory 中检查临时文件空间大小部分。

系统盘是固态盘,数据盘是机械盘,如何设置相应的磁盘调度算法?

【问题描述】

若出现以下场景:数据库软件安装在系统盘,系统盘为机械盘,实例目录放置在机械盘,此时应如何设置调度算法?

【问题解决】

数据库软件安装在系统盘,使用 noop 调度算法,实例目录放置在机械盘,使用 deadline 调度算法。
假如 sda 是系统盘,sdb 是机械盘,可通过以下方法进行设置(该方法适用于在麒麟 V10,centso7 和 rh6):

---编辑/etc/udev/rules.d/io_scheduler.rules 文件
vi /etc/udev/rules.d/io_scheduler.rules
ACTION=="add|change",KERNEL=="sda",ATTR{queue/scheduler}="noop"
ACTION=="add|change",KERNEL=="sda",ATTR{queue/scheduler}="deadline"

---使文件修改内容生效,执行如下命令或者重启生效
udevadm trigger --name-match=sda;udevadm trigger --name-match=sdb
微信扫码
分享文档
扫一扫
联系客服