Skip to content

达梦数据库之 CentOS 7.9 安装

官方文档:https://eco.dameng.com/document/dm/zh-cn/start/install-dm-linux-prepare.html

安装前准备

操作系统CPU数据库
CentOS7x86_64 架构dm8_20240116_x86_rh7_64.iso 下载

创建用户组和用户

shell
# 先切换到 root 用户创建用户组和用户
su root

# 创建用户所在的组(组名称:dinstall)
groupadd dinstall -g 2001

# 创建用户(dmdba)并添加倒用户组 dinstall
useradd -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba

# 修改用户密码(然后输入两次密码即可。比如:dmdba)
# 如果提示 BAD PASSWORD: The password is shorter than 8 characters,则可以忽略,也可以换一个复杂的密码。
passwd dmdba

修改文件打开最大数

shell
su root

vi /etc/security/limits.conf

在文件最后添加如下语句:

text
dmdba  soft      nice       0
dmdba  hard      nice       0
dmdba  soft      as         unlimited
dmdba  hard      as         unlimited
dmdba  soft      fsize      unlimited
dmdba  hard      fsize      unlimited
dmdba  soft      nproc      65536
dmdba  hard      nproc      65536
dmdba  soft      nofile     65536
dmdba  hard      nofile     65536
dmdba  soft      core       unlimited
dmdba  hard      core       unlimited
dmdba  soft      data       unlimited
dmdba  hard      data       unlimited

然后保存,并重启系统。

shell
# 切换到 dmdba 用户,查看是否生效
su - dmdba

ulimit -a

open files 和 max user processes 的值都是 65535 就是生效了。如下:

shell
[root@localhost ~]# su - dmdba
[dmdba@localhost ~]$ ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 20
file size               (blocks, -f) unlimited
pending signals                 (-i) 14989
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65536
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 65536
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

目录规划

  1. 可根据实际需求规划安装目录,本示例使用默认配置 DM 数据库安装在 /home/dmdba 文件夹下。
  2. 规划创建实例保存目录、归档保存目录、备份保存目录。
shell
# 切换倒 root 用户(dmdba 用户没有权限创建 /dmdata 目录)
su - root
##实例保存目录。# 注意 -p 参数,父目录不存在则创建。
mkdir -p /dmdata/data
##归档保存目录
mkdir -p /dmdata/arch
##备份保存目录
mkdir -p /dmdata/dmbak

注意: 使用 root 用户建立文件夹,待 dmdba 用户建立完成后需将文件所有者更改为 dmdba 用户,否则无法安装到该目录下

修改目录权限

将新建的路径目录权限的用户修改为 dmdba,用户组修改为 dinstall,并授权 755.

shell
# 注意 -R 参数,包括所有子目录和子文件
chown -R dmdba:dinstall /dmdata

chmod -R 755 /dmdata

数据库安装

挂载镜像

切换到 root 用户,将 DM 数据库的 iso 安装包保存在任意位置,例如 /opt 目录下:

shell
[root@localhost ~]# su root
[root@localhost opt]# cd /opt
[root@localhost opt]# mount -o loop dm8_20240116_x86_rh7_64.iso /mnt
mount: /dev/loop0 is write-protected, mounting read-only
[root@localhost opt]#

命令行安装

shell
[root@localhost opt]# su - dmdba
[dmdba@localhost ~]$ cd /mnt
[dmdba@localhost mnt]$ ll
total 928047
-r-xr-xr-x. 1 root root   2587575 Jan 16 09:17 DM8 Install.pdf
-r-xr-xr-x. 1 root root 947731830 Jan 16 09:20 DMInstall.bin

执行命令【 ./DMInstall.bin -i 】安装 DM 数据库。

按需求选择安装语言,没有 key 文件选择 "n",时区按需求选择一般选择 “21”,安装类型选择“1”,安装目录按实际情况配置,这里示例使用默认安装位置。

数据库安装大概 1~2 分钟,数据库安装完成后,显示如下界面。

shell
[dmdba@localhost mnt]$ ./DMInstall.bin -i
Installer Language:
[1]: 简体中文
[2]: English
Please select the installer's language [2]:1
解压安装程序.........
欢迎使用达梦数据库安装程序

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n

是否设置时区? (Y/y:是 N/n:否) [Y/y]:y
设置时区:
[ 1]: (GTM-12:00) 日界线西
[ 2]: (GTM-11:00) 萨摩亚群岛
[ 3]: (GTM-10:00) 夏威夷
[ 4]: (GTM-09:00) 阿拉斯加
[ 5]: (GTM-08:00) 太平洋时间(美国和加拿大)
[ 6]: (GTM-07:00) 亚利桑那
[ 7]: (GTM-06:00) 中部时间(美国和加拿大)
[ 8]: (GTM-05:00) 东部部时间(美国和加拿大)
[ 9]: (GTM-04:00) 大西洋时间(美国和加拿大)
[10]: (GTM-03:00) 巴西利亚
[11]: (GTM-02:00) 中大西洋
[12]: (GTM-01:00) 亚速尔群岛
[13]: (GTM) 格林威治标准时间
[14]: (GTM+01:00) 萨拉热窝
[15]: (GTM+02:00) 开罗
[16]: (GTM+03:00) 莫斯科
[17]: (GTM+04:00) 阿布扎比
[18]: (GTM+05:00) 伊斯兰堡
[19]: (GTM+06:00) 达卡
[20]: (GTM+07:00) 曼谷,河内
[21]: (GTM+08:00) 中国标准时间
[22]: (GTM+09:00) 首尔
[23]: (GTM+10:00) 关岛
[24]: (GTM+11:00) 所罗门群岛
[25]: (GTM+12:00) 斐济
[26]: (GTM+13:00) 努库阿勒法
[27]: (GTM+14:00) 基里巴斯
请选择时区 [21]:21

安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1
所需空间: 1979M

请选择安装目录 [/home/dmdba/dmdbms]:
可用空间: 29G
是否确认安装路径(/home/dmdba/dmdbms)? (Y/y:是 N/n:否)  [Y/y]:

安装前小结
安装位置: /home/dmdba/dmdbms
所需空间: 1979M
可用空间: 29G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2024-03-16 10:05:46
[INFO] 安装 基础 模块...
2024-03-16 10:05:46
[INFO] 安装达梦数据库...
2024-03-16 10:05:52
[INFO] 安装 服务器 模块...
2024-03-16 10:05:53
[INFO] 安装 客户端 模块...
2024-03-16 10:05:55
[INFO] 安装 驱动 模块...
2024-03-16 10:05:57
[INFO] 安装 手册 模块...
2024-03-16 10:05:58
[INFO] 安装 服务 模块...
2024-03-16 10:05:58
[INFO] 移动日志文件。
2024-03-16 10:05:59
[INFO] 安装达梦数据库完成。

请以root系统用户执行命令:
/home/dmdba/dmdbms/script/root/root_installer.sh

安装结束

[dmdba@localhost mnt]$

数据库安装完成后,需要切换至 root 用户执行上图中的命令 /home/dmdba/dmdbms/script/root/root_installer.sh 创建 DmAPService,否则会影响数据库备份。

shell
[dmdba@localhost mnt]$ su root
Password:
[root@localhost mnt]# /home/dmdba/dmdbms/script/root/root_installer.sh
移动 /home/dmdba/dmdbms/bin/dm_svc.conf 到/etc目录
创建DmAPService服务
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务
[root@localhost mnt]#

数据库安装完成后还需注册实例才能使用数据库,注册实例可参考下面的配置实例章节。

配置实例

使用 dmdba 用户配置实例,进入到 DM 数据库安装目录下的 bin 目录中。

shell
# 使用 dminit 命令初始化实例,dminit 命令可设置多种参数,可执行如下命令查看可配置参数。
[root@localhost ~]# su - dmdba
[dmdba@localhost ~]$ cd /home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./dminit help
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2025-01-15
version: 03134284132-20240115-215128-20081 Pack2
格式: ./dminit     KEYWORD=value

例程: ./dminit     PATH=/public/dmdb/dmData PAGE_SIZE=16

关键字                     说明(默认值)
--------------------------------------------------------------------------------
INI_FILE                   初始化文件dm.ini存放的路径
PATH                       初始数据库存放的路径
CTL_PATH                   控制文件路径
LOG_PATH                   日志文件路径
EXTENT_SIZE                数据文件使用的簇大小(16),可选值:16, 32, 64,单位:页
PAGE_SIZE                  数据页大小(8),可选值:4, 8, 16, 32,单位:K
LOG_SIZE                   日志文件大小(256),单位为:M,范围为:256M ~ 8G
CASE_SENSITIVE             大小敏感(Y),可选值:Y/N,1/0
CHARSET/UNICODE_FLAG       字符集(0),可选值:0[GB18030],1[UTF-8],2[EUC-KR]
SEC_PRIV_MODE              权限管理模式(0),可选值:0[TRADITION],1[BMJ],2[EVAL],3[ZB]
LENGTH_IN_CHAR             VARCHAR类型长度是否以字符为单位(N),可选值:Y/N,1/0
SYSDBA_PWD                 设置SYSDBA密码(SYSDBA)
SYSAUDITOR_PWD             设置SYSAUDITOR密码(SYSAUDITOR)
DB_NAME                    数据库名(DAMENG)
INSTANCE_NAME              实例名(DMSERVER)
PORT_NUM                   监听端口号(5236)
BUFFER                     系统缓存大小(100),单位M
TIME_ZONE                  设置时区(+08:00)
PAGE_CHECK                 页检查模式(3),可选值:0/1/2/3
PAGE_HASH_NAME             设置页检查HASH算法
EXTERNAL_CIPHER_NAME       设置默认加密算法
EXTERNAL_HASH_NAME         设置默认HASH算法
EXTERNAL_CRYPTO_NAME       设置根密钥加密引擎
RLOG_ENCRYPT_NAME          设置日志文件加密算法,若未设置,则不加密
RLOG_POSTFIX_NAME          设置日志文件后缀名,长度不超过10。默认为log,例如DAMENG01.log
USBKEY_PIN                 设置USBKEY PIN
PAGE_ENC_SLICE_SIZE        设置页加密分片大小,可选值:0、512、4096,单位:Byte
ENCRYPT_NAME               设置全库加密算法
BLANK_PAD_MODE             设置空格填充模式(0),可选值:0/1
SYSTEM_MIRROR_PATH         SYSTEM数据文件镜像路径
MAIN_MIRROR_PATH           MAIN数据文件镜像
ROLL_MIRROR_PATH           回滚文件镜像路径
MAL_FLAG                   初始化时设置dm.ini中的MAL_INI(0)
ARCH_FLAG                  初始化时设置dm.ini中的ARCH_INI(0)
MPP_FLAG                   Mpp系统内的库初始化时设置dm.ini中的mpp_ini(0)
CONTROL                    初始化配置文件(配置文件格式见系统管理员手册)
AUTO_OVERWRITE             是否覆盖所有同名文件(0) 0:不覆盖 1:部分覆盖 2:完全覆盖
USE_NEW_HASH               是否使用改进的字符类型HASH算法(1)
ELOG_PATH                  指定初始化过程中生成的日志文件所在路径
AP_PORT_NUM                分布式环境下协同工作的监听端口
HUGE_WITH_DELTA            是否仅支持创建事务型HUGE表(1) 1:是 0:否
RLOG_GEN_FOR_HUGE          是否生成HUGE表REDO日志(1) 1:是 0:否
PSEG_MGR_FLAG              是否仅使用管理段记录事务信息(0) 1:是 0:否
CHAR_FIX_STORAGE           CHAR是否按定长存储(N),可选值:Y/N,1/0
SQL_LOG_FORBID             是否禁止打开SQL日志(N),可选值:Y/N,1/0
DPC_MODE                   指定DPC集群中的实例角色(0) 0:无 1:MP 2:BP 3:SP,取值1/2/3时也可以用MP/BP/SP代替
HELP                       打印帮助信息
[dmdba@localhost bin]$

需要注意的是 页大小 (page_size)、簇大小 (extent_size)、大小写敏感 (case_sensitive)、字符集 (charset) 、VARCHAR 类型以字符为单位 (LENGTH_IN_CHAR)、空格填充模式 (BLANK_PAD_MODE) 、页检查模式(PAGE CHECK) 等部分参数,一旦确定无法修改,在初始化实例时确认需求后谨慎设置。

可以使用默认参数初始化实例,需要附加实例存放路径。此处以初始化实例到 /dmdata/data 目录下为例(执行初始化命令前,需要使用 root 用户授予 /dmdata/data 目录相应权限,可以参考修改目录权限),初始化命令如下:

shell
# 全部使用默认参数
# ./dminit path=/dmdata/data

# 可以自定义初始化实例的参数
# ./dminit path=/dmdata/data CASE_SENSITIVE=y CHARSET=1 DB_NAME=DAMENG INSTANCE_NAME=DMSERVER PORT_NUM=5236 SYSDBA_PWD=SYSDBA001 LENGTH_IN_CHAR=Y

[dmdba@localhost bin]$ ./dminit path=/dmdata/data CASE_SENSITIVE=y CHARSET=1 DB_NAME=DAMENG INSTANCE_NAME=DMSERVER PORT_NUM=5236 SYSDBA_PWD=SYSDBA001 LENGTH_IN_CHAR=Y
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2025-01-15
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: /dmdata/data/DAMENG/DAMENG01.log
 log file path: /dmdata/data/DAMENG/DAMENG02.log

write to dir [/dmdata/data/DAMENG].
create dm database success. 2024-03-16 10:23:03
[dmdba@localhost bin]$

注册服务(开机自启)

注册服务脚本为 dm_service_installer.sh,用户可以使用注册服务脚本将服务脚本注册成为操作系统服务。注册服务需使用 root 用户进行注册,使用 root 用户进入数据库安装目录的 /script/root 下,如下所示:

shell
[dmdba@localhost bin]# su root
[root@localhost ~]# cd /home/dmdba/dmdbms/script/root/
# 先确认下 dm.ini 的位置(跟上一步配置实例指定的路径有关),这里在 /dmdata/data/{DB_NAME}
[root@localhost ~]# ll /dmdata/data/DAMENG

# -p 参数为服务名后缀,比如指定为DAMENG服务名就是:DmServiceDAMENG
[root@localhost root]# ./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DAMENG/dm.ini -p DAMENG
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDAMENG.service to /usr/lib/systemd/system/DmServiceDAMENG.service.
创建服务(DmServiceDAMENG)完成
[root@localhost root]#

# 进入数据安装目录下 bin 目录中可以看到已经注册好的服务 DmServiceDAMENG
[root@localhost root]# cd /home/dmdba/dmdbms/bin
[root@localhost bin]# ll
# 这里就可以找到 DmServiceDAMENG

启动停止数据库

使用 dmdba 用户进入 DM 安装目录下的 bin 目录下,启动数据库

shell
[root@localhost ~]$ su - dmdba
[dmdba@localhost ~]$ cd /home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./DmServiceDAMENG start
DmServiceDAMENG (pid 1119) is running.
[dmdba@riskms bin]$

# 查看数据库状态
[dmdba@localhost bin]$ ./DmServiceDAMENG status

# 重新启动
[dmdba@localhost bin]$ ./DmServiceDAMENG restart

# 停止
[dmdba@localhost bin]$ ./DmServiceDAMENG stop

至此完成安装。可以用客户端工具连接(实际参数跟自己创建实例时指定的参数有关)。

text
用户名:SYSDBA
密码:SYSDBA001
端口:5236

温馨提示:如果主机开启了防火墙,需要开放指定的端口,这里是 5236。

安装日志

shell
cd /home/dmdba/dmdbms/log

达梦用户和角色

shell
drop user VTL_TEST cascade;
create user VTL_TEST identified by "1qaz2wsx";
# grant 时注意和 oracle 的区别,oracle 是:grant "CONNECT","RESOURCE" to "VTL_TEST";
grant "PUBLIC","RESOURCE" to "VTL_TEST";

grant "DBA" to "VTL_TEST";

# 修改密码
ALTER user VTL_TEST identified by "1qaz2wsx";