前言

本文介绍的是Centos7安装达梦数据库8(开发板)的安装方式,本文创作时间为2024年02月。如文章创作时间过久,请注意其中的区别。

此处是开发版的安装方式,如果是商用及生产环境,请联系达梦的人员进行配合安装

安装前准备

  1. 一台Centos的服务器

博主使用的是阿里云的服务器,镜像是使用的阿里云的,如果用纯原生的系统,可能还需要提前安装一些系统的基础包

  1. 达梦数据库ios镜像

可以登录达梦的官网进行下载,达梦官网如下

# 达梦官网下载地址
https://eco.dameng.com/download/

达梦官网的截图如下:

image-20240222103936881

然后根据自己的平台,选择对应的安装包进行下载。此处是在x86的Centos7下进行安装,所以选择了x86平台的“RedHat7”

image-20240222104245695

此处博主下载的是“dm8_20240116_x86_rh7_64”版本,下载后的是zip版本,解压后,将iso上传到服务器上

因为部分Centos7环境,太纯了,纯的都没有unzip的解压工具,然后服务器又可能是内网,又无法安装解压软件,所以此处是本地解压完上传到服务器上。可以根据自己的实际情况进行选择

image-20240222104457371

然后将安装包上传到对应的Centos服务器上

安装

软件安装

  1. 新建dmdba用户给达梦数据库使用(官方不建议使用root用户进行数据库安装和运行)
groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
  1. 修改资源限制
    在/etc/security/limits.conf文件最后加上如下内容
dmdba hard nofile 65536  #dmdba用户可以打开的最大的文件描述符数量,默认1024,这里的数值会限制tcp连接
dmdba soft nofile 65536
dmdba hard stack 32768   #堆栈大小
dmdba soft stack 16384
image-20240222105351664

修改之后,可以切换到dmdba上执行以下命令查看是否生效

# 切换到dmdba
su - dmdba
# 查看是否生效
ulimit -a

image-20240222105618475

  1. 切回root用户,然后修改/etc/sysctl.conf文件,添加一下内容
# 切回root用户,并输入root密码
su
# 编辑命令文件
vim /etc/sysctl.conf
fs.file-max = 6815744   #系统所有进程可以打开的文件句柄的最大数量
fs.aio-max-nr = 1048576   #同时可以拥有的的异步IO请求数目
kernel.shmmni = 4096   #系统范围内共享内存段的最大数量
kernel.sem = 250 32000 100 128  #表示设置的信号量
net.ipv4.ip_local_port_range = 9000 65500    #用户进程通信时分配给用户的端口区间
net.core.rmem_default = 4194304  #默认接收缓冲区大小
net.core.rmem_max = 4194304  #接收缓冲区最大值
net.core.wmem_default = 262144  #默认的发送缓冲区大小
net.core.wmem_max = 1048576   #发送缓冲区最大值
vm.swappiness = 0     #表示最大限度使用物理内存,然后才是 swap空间
vm.dirty_background_ratio = 3  #内存可以填充脏数据的百分比。这些脏数据稍后会写入磁盘
vm.dirty_ratio = 80    #可以用脏数据填充的绝对最大系统内存量,当系统到达此点时,必须将所有脏数据提交到磁盘,同时所有新的I/O块都会被阻塞,直到脏数据被写入磁盘
vm.dirty_expire_centisecs = 500    #指定脏数据能存活的时间ms
vm.dirty_writeback_centisecs = 100    #指定多长时间 pdflush/flush/kdmflush 这些进程会唤醒一次,然后检查是否有缓存需要清理。
  1. 保存后,执行一下命令生效
sysctl -p
  1. 找到我们之前上传的达梦镜像,将镜像挂载到服务器上
mount dm8_20240116_x86_rh7_64.iso /mnt

image-20240222110421442

  1. 使用root用户,创建安装目录,并执行安装文件
mkdir /dm8
chown -R dmdba.dinstall /dm8

切换到dmdba用户,进入到挂载盘,进行安装

su - dmdba
cd /mnt
./DMInstall.bin -i

然后根据提示进行安装即可

image-20240222110833565

最后提示如下所示,则安装结束

安装前小结
安装位置: /dm8
所需空间: 1979M
可用空间: 32G
版本信息: 
有效日期: 
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2024-02-22 23:07:51 
[INFO] 安装达梦数据库...
2024-02-22 23:07:51 
[INFO] 安装 基础 模块...
2024-02-22 23:08:21 
[INFO] 安装 服务器 模块...
2024-02-22 23:08:23 
[INFO] 安装 客户端 模块...
2024-02-22 23:08:40 
[INFO] 安装 驱动 模块...
2024-02-22 23:08:47 
[INFO] 安装 手册 模块...
2024-02-22 23:08:48 
[INFO] 安装 服务 模块...
2024-02-22 23:08:49 
[INFO] 移动日志文件。
2024-02-22 23:08:50 
[INFO] 安装达梦数据库完成。

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

安装结束

根据提示内容,切换回root,然后执行命令即可

/dm8/script/root/root_installer.sh

image-20240222111137022

数据库初始化 (创建实例)

  1. 切换到dmdba账户,创建数据文件
su - dmdba
mkdir /dm8/data
  1. 进入到达梦的bin目录(此处是/dm8/bin下)
cd /dm8/bin

使用dminit工具初始化数据库实例,其中初始化的参数,可以通过执行./dminit help来进行查看,如下所示

关键字 说明(默认值)
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 打印帮助信息

此处呢,我使用的参数如下。(注意,此处编写文章的时间比较长了,命令可能会有一些不一样,请移步评论区看看其他大佬们提供的命令)

./dminit path=/dm8/data SYSDBA_PWD=Dameng111 PAGE_SIZE=32 LOG_SIZE=2048 CASE_SENSITIVE=N CHARSET=1 PORT_NUM=5236 DB_NAME=DAMENG INSTANCE_NAME=DMSERVER EXTENT_SIZE=16 BLANK_PAD_MODE=0 LENGTH_IN_CHAR=1

注意此处

SYSDBA_PWD(SYSDBA的密码):一定要记住哈
CASE_SENSITIVE(大小写敏感):根据实际情况选择Y或者N,如果选择Y,那后面数据库大小写必须严格执行,比如数据库叫做 SYS_TABLE,那SQL不能写成” INSERT sys_table “哈,别问我怎么知道的,这篇文章我就是重复安装了3次才写完的。并且这个参数在你安装完之后,还不能修改!!!

执行完后,出现如下命令,则代表成功

[dmdba@iZ8vbgxtdgt4t51qyrz242Z bin]$ ./dminit path=/dm8/data SYSDBA_PWD=Dameng111 PAGE_SIZE=32 LOG_SIZE=2048 CASE_SENSITIVE=N CHARSET=1 PORT_NUM=5236 DB_NAME=DAMENG INSTANCE_NAME=DMSERVER EXTENT_SIZE=16 BLANK_PAD_MODE=0 LENGTH_IN_CHAR=1
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: /dm8/data/DAMENG/DAMENG01.log


 log file path: /dm8/data/DAMENG/DAMENG02.log

write to dir [/dm8/data/DAMENG].
create dm database success. 2024-02-22 23:25:43

注册服务及其他操作

注册服务及验证

  1. 首先,使用root用户,关闭防火墙,或者将5236的端口设置可通过
systemctl stop firewalld
  1. 使用root用户,注册数据库实例服务
cd /dm8/script/root/
./dm_service_installer.sh -t dmserver -p DAMENG -dm_ini /dm8/data/DAMENG/dm.ini -m open

创建成功后启动数据库实例服务

systemctl start DmServiceDAMENG
  1. 验证是否成功

(1)查看线程进程情况

ps -ef |grep dmserver

如果出现下面内容,则表示成功

[root@iZ8vbgxtdgt4t51qyrz242Z root]# ps -ef|grep dmserver
dmdba     5099     1  0 23:30 ?        00:00:10 /dm8/bin/dmserver path=/dm8/data/DAMENG/dm.ini -noconsole
root     17444  4978  0 23:10 pts/0    00:00:00 grep --color=auto dmserver

(2)进入数据库查看

切换到dmdba用户,执行如下命令

cd /dm8/bin
./disql SYSDBA/Dameng111@localhost:5236

如果出现下述内容,则代表成功

[dmdba@iZ8vbgxtdgt4t51qyrz242Z root]$ cd /dm8/bin
[dmdba@iZ8vbgxtdgt4t51qyrz242Z bin]$ ./disql SYSDBA/Dameng111@localhost:5236

服务器[localhost:5236]:处于普通打开状态
登录使用时间 : 2.602(ms)
disql V8
SQL> 

其他操作

# 关闭实例命令
systemctl stop DmServiceDAMENG 

--------END--------

天行健,君子以自强不息;地势坤,君子以厚德载物
blog:myblog.doubletree.fun
公众号:Doubletree的杂七杂八

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐