前言
本文介绍的是Centos7安装达梦数据库8(开发板)的安装方式,本文创作时间为2024年02月。如文章创作时间过久,请注意其中的区别。
此处是开发版的安装方式,如果是商用及生产环境,请联系达梦的人员进行配合安装
安装前准备
- 一台Centos的服务器
博主使用的是阿里云的服务器,镜像是使用的阿里云的,如果用纯原生的系统,可能还需要提前安装一些系统的基础包
- 达梦数据库ios镜像
可以登录达梦的官网进行下载,达梦官网如下
# 达梦官网下载地址
https://eco.dameng.com/download/
达梦官网的截图如下:
![image-20240222103936881](https://img-blog.csdnimg.cn/img_convert/221201e8f393d124efd41026644fdc12.png)
然后根据自己的平台,选择对应的安装包进行下载。此处是在x86的Centos7下进行安装,所以选择了x86平台的“RedHat7”
![image-20240222104245695](https://img-blog.csdnimg.cn/img_convert/ed013fe95b5414e305bdf3c55b5cf254.png)
此处博主下载的是“dm8_20240116_x86_rh7_64”版本,下载后的是zip版本,解压后,将iso上传到服务器上
因为部分Centos7环境,太纯了,纯的都没有unzip的解压工具,然后服务器又可能是内网,又无法安装解压软件,所以此处是本地解压完上传到服务器上。可以根据自己的实际情况进行选择
![image-20240222104457371](https://img-blog.csdnimg.cn/img_convert/e8a58b58cae0703ff607f4e0538bcd17.png)
然后将安装包上传到对应的Centos服务器上
安装
软件安装
- 新建dmdba用户给达梦数据库使用(官方不建议使用root用户进行数据库安装和运行)
groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
- 修改资源限制
在/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](https://img-blog.csdnimg.cn/img_convert/89546732dee9fedfcff58be18ce99173.png)
修改之后,可以切换到dmdba上执行以下命令查看是否生效
# 切换到dmdba
su - dmdba
# 查看是否生效
ulimit -a
- 切回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 这些进程会唤醒一次,然后检查是否有缓存需要清理。
- 保存后,执行一下命令生效
sysctl -p
- 找到我们之前上传的达梦镜像,将镜像挂载到服务器上
mount dm8_20240116_x86_rh7_64.iso /mnt
- 使用root用户,创建安装目录,并执行安装文件
mkdir /dm8
chown -R dmdba.dinstall /dm8
切换到dmdba用户,进入到挂载盘,进行安装
su - dmdba
cd /mnt
./DMInstall.bin -i
然后根据提示进行安装即可
![image-20240222110833565](https://img-blog.csdnimg.cn/img_convert/d010824a5968afb5d85bcb81f5643112.png)
最后提示如下所示,则安装结束
安装前小结
安装位置: /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
数据库初始化 (创建实例)
- 切换到dmdba账户,创建数据文件
su - dmdba
mkdir /dm8/data
- 进入到达梦的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
注册服务及其他操作
注册服务及验证
- 首先,使用root用户,关闭防火墙,或者将5236的端口设置可通过
systemctl stop firewalld
- 使用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)查看线程进程情况
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的杂七杂八