第一次使用 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 文件且在有效期内,用户可以继续安装。如下图所示:
- 输入时区
用户可以选择 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。和数据页的大小一样,一旦创建好数据库,此后该数据库的簇的大小就不能够改变。
安装时提示写入权限不足,如何解决?
提示写入权限不足,一般是操作系统层面的权限不足的问题。可通过以下步骤解决:
- 确定使用的哪个用户进行安装 DM 数据库,一般是 dmdba 用户或者 root 用户。
- 查看相应的安装目录下是否有对应用户的权限,一般的 root 用户对应的目录是/opt/dmdbms;dmdba 用户对应的目录是/home/dmdba/dmdbms。
- 将对应目录的权限使用 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
文件夹下。
通过查看帮助说明能更好的去理解参数的使用,如下图所示:
- 示例
创建一个 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
目录下,如下图所示:
依次按下图顺序,配置数据库库实例。
打开 DM 管理工具,执行:select * from V$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 工具。
若 Windows 注册 DM 服务失败,首先尝试重启操作系统解决。
安装或者初始化过程中卡死
【问题描述】:
安装 DM 数据库的时候,在创建快捷方式那一步卡机。启动运行大概 2/3 就卡住了,Windows 客户端使用 dbca 初始化实例时界面卡死,连续注册服务失败初始化实例截止不动。
【解决方法】:
- 可能被 360 安全卫士之类软件阻截了,重新初始化;
- 参考日志报错文件。
如果是 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
【解决方法】:
- glibc 版本不对,也就是操作系统版本跟安装的编译版本不一致
- 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
数据库安装的时候报错:
- Error occurred during initiazation of VM
- 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
- 请参考《DM dminit 使用手册》语法规则,手册位于数据库安装路径
/dmdbms/doc/special
文件夹。 - dminit 的参数中,等号两边不能有空格。
文件不存在,请检查此 KEY 的路径是否正确
- 如果获取的授权文件格式为 dmxxxxxxx.key,则在安装的时候,需要把 KEY 文件的全称输入进去:比如 /home/DM7/dmxxxxxxx.key
- 如果是从达梦云适配中心下载试用数据库,可以在输入 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)
【问题原因】:
当前操作系统的登录用户应该无图形界面权限,如果在当前会话中启用图形界面需要将图形界面权限放开。
【解决方法】:
- 确认当前操作系统环境安装有图形界面,切换到 root 用户后在命令行中输入 xhost +,可以使得 dmdba 可以调用图形界面进行安装。
- 使用
./DMinstall -i
命令,通过字符界面进行安装。
安装报错:java:Exec format error
安装数据库报如下错误:
【解决方法】:
- 检查安装的达梦数据库软件包是否和操作系统想匹配。可以在社区内咨询,查询不同系统应该选择什么开发试用软件包。
- 如果选择的数据库软件包是和系统匹配的,请参考 SHA256 值是否和安装包里面的 SHA256 值是匹配的。如果不匹配,可能是因为下载不完整,请重新下载。
- 如果按照安装手册设置了 java 环境变量的,可以先把设置的环境变量清除。然后重新安装。
- 检查安装的达梦数据库软件包是否和 CPU 型号相匹配。
安装报错:初始化图形界面失败
如果当前监视器窗口不支持图形界面,请进入安装文件所在文件夹并使用 ./DMInstall.bin -i
进行命令行安装。
此问题与下面问题类似。
安装报错:./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
【问题解答】:
- 版本不匹配,查看 CPU 型号和操作系统版本是否和申请使用的达梦版本一致。
- 下载不完整,核对一下官网提供的 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
【问题解答】:
- 可能是数据库软件和操作系统的版本不匹配造成的,请查看 CPU 型号和操作系统版本是否和申请使用的达梦版本一致。
- 可以先跳过这个问题:尝试用命令行的方式来初始化数据库
参考:命令行配置实例
打开管理工具报错: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 系统安装的达梦数据库软件包。
用达梦配置管理工具创建实例到启动服务都超时
可以有如下两种方式来启动数据库:
- 可以手动用服务的方式启动数据库
service DmServiceDAMENG start
- 在安装目录下的 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