1.安装环境准备
主要介绍在Linux操作系统上部署DM8数据库单机环境。
1.1.软硬件需求
1.1.1.服务器硬件需求
按实际业务需求,选择合适的服务器,参考如下:
1.1.2.软件需求
此外,如要进行数据库应用开发,在客户端可配备 VC、VB、DELPHI、C++Builder、 PowerBuilder、JBuilder、Eclipse、DreamWeaver、Visual Studio.NET 等应用开发工具。如要使用 DM ODBC 驱动程序,应确保 Windows 操作系统中已经安装有ODBC 数据源管理器,并能正常工作。
配置yum仓库:
[root@Kylin04 ~]#mkdir /media/kylin10-repo-iso
[root@Kylin04 ~]#mount /dev/cdrom /media/kylin10-repo-iso/
mount: /dev/sr0 is write-protected, mounting read-only
[root@Kylin04 ~]#mv /etc/yum.repos.d/kylin_x86_64.repo /etc/yum.repos.d/kylin_x86_64.repo.bak
cat >>/etc/yum.repos.d/kylin10-repo-iso.repo<<EOF
[kylin10-repo-iso]
name=kylin10-repo-iso
baseurl="file:///media/kylin10-repo-iso/"
gpgcheck=0
EOF
用户在安装 DM 前,需要检查当前操作系统的相关信息,确认 DM 安装程序与当前操作系统匹配,以保证 DM 能够正确安装和运行。用户可以使用以下命令检查操作系统基本信息。如下所示:
#获取系统位数
getconf LONG_BIT
#查询操作系统 release信息
yum install -y kylin-lsb
lsb_release -a
#查询系统信息
cat /etc/issue
#查询系统名称
uname -a
1.2.目录与存储规划
创建相关目录并授权:
mkdir -p /dm8/dmdbms
mkdir -p /dm8/dmdata
mkdir -p /dmarch
mkdir -p /dmbak
chown -R dmdba:dinstall /dm8
chown -R dmdba:dinstall /dmarch
chown -R dmdba:dinstall /dmbak
1.3.检查系统内存与存储空间
1)检查内存 :
为了保证 DM 的正确安装和运行,要尽量保证操作系统至少 1GB 的可用内存(RAM)。 如果可用内存过少,可能导致DM安装或启动失败。用户可以使用以下命令检查操作内存:
#获取内存总大小
grep MemTotal /proc/meminfo
#获取交换分区大小
grep SwapTotal /proc/meminfo
#获取内存使用详情
free
2)检查存储空间
DM完全安装需要 1GB 的存储空间,用户需要提前规划好安装目录,预留足够的存储空间。用户在 DM 安装前也应该为数据库实例预留足够的存储空间,规划好数据路径和备份路径。用户可使用以下命令检查存储空间:
注意:生产上达梦数据库存放目录应单独划分一块磁盘存放,不能和系统盘共用。
DM 安装程序在安装时将产生临时文件,临时文件需要 1GB 的存储空间,临时文件目录默认为/tmp。用户可以使用以下命令检查存储空间。如下图所示:
如果/tmp 目录不能保证 1GB 的存储空间,用户可以扩展/tmp 目录存储空间或者通过设置环境变量 DM_INSTALL_TMPDIR 指定安装程序的临时目录。具体命令如下所示:
#以 BASH 为例:
mkdir -p /mount_point/dir_name
DM_INSTALL_TMPDIR=/mount_point/dir_name
export DM_INSTALL_TMPDIR
1.4.用户与组
DM 数据库不应该使用 root 用户安装和维护。需要在安装之前为 DM 数据库创建一个专用的系统用户 (dmdba) 和用户组 (dinstall)。
执行以下命令,新建用户组 dinstall:
groupadd dinstall
执行以下命令,新建用户 dmdba:
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
执行以下命令,修改 dmdba 用户密码:
passwd dmdba
输入密码并确认。
1.5.用户资源限制
在 Linux(Unix)系统中,因为 ulimit 命令的存在,会对程序使用操作系统资源进行限制。为了使 DM 能够正常运行,建议用户检查当前安装用户的 ulimit 参数。
运行 ulimit -a 进行查询。如下图所示:
参数使用限制:
1.data seg size
data seg size (kbytes, -d)
建议用户设置为 1048576(即 1GB)以上或 unlimited(无限制),此参数过小将导致数据库启动失败。
2. file size
file size(blocks, -f)
建议用户设置为 unlimited(无限制),此参数过小将导致数据库安装或初始化失败。
3. open files
open files(-n)
建议用户设置为 65536 以上或 unlimited(无限制)。
4.virtual memory
virtual memory (kbytes, -v)
建议用户设置为 1048576(即 1GB)以上或 unlimited(无限制),此参数过小将导致数据库启动失败。如果用户需要为当前安装用户更改 ulimit 的资源限制,请修改文件/etc/security/limits.conf。
执行以下命令,修改 dmdba 用户资源限制:
cat >>/etc/security/limits.conf<<EOF
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft stack 65536
dmdba hard stack 65536
EOF
1.6.用户环境变量
执行以下命令,修改 dmdba 用户环境变量:
su - dmdba
vi /home/dmdba/.bash_profile
文件末尾添加如下内容:
export DM_HOME=/dm8/dmdbms
export PATH=$PATH:$DM_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin
使环境变量配置生效:
source ~/.bash_profile
1.7.防火墙设置
生产环境应该对特定客户端IP开放数据库监听端口,并修改DM数据库默认的 5236 监听端口。
1.8.服务器参数相关设置
1.8.1.关闭SELINUX
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
getenforce
1.8.2.关闭透明大页、numa
Transparent HugePages (透明大页)对系统的性能产生影响的原因:
在 khugepaged 进行扫描进程占用内存,并将 4k Page 交换为 Huge Pages 的这个过程中,对于操作的内存的各种分配活动都需要各种内存锁,直接影响程序的内存访问性能。并且,这个过程对于应用是透明的,在应用层面不可控制,对于专门为 4k page 优化的程序来说,可能会造成随机的性能下降现象。
NUMA(Non-Uniform Memory Access)架构是为了解决多 CPU 下内存访问冲突,即不再将整个物理内存作为一个整体,而是根据不同的 CPU 区分不同的内存块,如 2 颗 CPU 每颗 CPU 使用 64G 内存。当 NUMA 参数 zone_reclaim_mode 设置为 1 时,内核将要求多路 CPU 尽量从距离较近的系统内存节点(服务器的整体内存在 numa 架构下将被分成若干个节点)分配内存,而不是在整个服务器可访问内存的范围内进行内存分配。因此,在较高内存占用压力下,内存申请会触发内存频繁回收整理的机制,严重影响系统整体性能(长期处于内核态 sys 很高),进而可能导致 SQL 卡顿问题的发生。
#关闭numa=off
grubby --update-kernel=ALL --args="numa=off"
#关闭transparent_hugepage
grubby --update-kernel=ALL --args="transparent_hugepage=never"
#注意需重启服务器生效
1.8.3.IO调度算法
linux默认的IO调度算法为cfq。
1.如果是SAS/STAT盘需要修改为dealine。
2.如果是存储为 nvme、SSD或者PCIe-SSD 等高性能的设备时,需要修改为noop。
#修改磁盘IO调度方式 elevator=deadline
grubby --update-kernel=ALL --args="elevator=deadline"
#注意需重启服务器生效
1.8.4.调整 sysctl.conf 参数
/etc/sysctl.conf 是一个允许改变正在运行中的 Linux 系统接口,它包含一些 TCP/IP 堆栈和虚拟内存系统的高级选项,修改内核参数永久生效。/proc/sys 下内核文件与配置文件 sysctl.conf 中变量存在着对应关系。
配置参数 overcommit_memory 表示系统的内存分配策略可以选值为 0,1,2。
0:表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1:表示内核允许分配所有的物理内存,不管当前的内存状态如何。
2:表示内核允许分配超过所有物理内存和交换空间总和的内存。
[root@dm~]# vim /etc/sysctl.conf
##修改
vm.overcommit_memory=0
然后执行 sysctl -p 使配置文件生效
1.8.5.调整login
[root@Kylin04 ~]# vi /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
1.8.6.RemoveIPC 参数检查
检查 RemoveIPC 参数设置要求为no,在用户完全退出OS后会remove掉所有的IPC对象。
systemctl show systemd-logind | grep -i removeipc
如果不是no用以下方法调整:
修改 /etc/systemd/logind.conf配置文件中的 RemoveIPC 参数,将#注释去掉,并修改yes为no重启服务。
systemctl daemon-reload
systemctl restart systemd-logind
1.9.安装数据库
1.9.1.软件申请
查询操作系统(内核)版本,CPU 架构命令:uname -a。
如上图所示,需申请 ky10,x86版本数据库软件。
以dm8_20230420_x86_kylin10_64.iso安装包为例,安装包命名规则如下:
dm8:数据库大版本为 dm8
20230420:数据库版本发布日期
x86:安装包匹配的 CPU 架构
kylin10:安装包匹配的操作系统版本 (kylin10)
1.9.2.安装数据库软件
将安装包上传到服务器/soft后使用 root 用户挂载 iso 安装包文件到 /mnt 目录下:
mount -oloop dm8_20230420_x86_kylin10_64.iso /mnt
执行以下命令,切换到 dmdba 用户:
su - dmdba
执行以下命令,切换到 /mnt 目录下:
cd /mnt
执行以下命令,查看文件:
[root@Kylin04 soft]# ls -rlt /mnt/
总用量 1151736
-r-xr-xr-x 1 root root 2909114 4月 20 10:28 'DM8 Install.pdf'
-r-xr-xr-x 1 root root 1176468147 4月 20 10:31 DMInstall.bin
执行 DMInstall.bin 文件开始安装,图形化安装;如果加上【-i】参数以命令行方式安装:
1.9.3.安装环境准备配置脚本
#服务器参数相关设置
#关闭SELINUX
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
getenforce
#关闭透明大页、numa
#关闭numa=off
grubby --update-kernel=ALL --args="numa=off"
#关闭transparent_hugepage
grubby --update-kernel=ALL --args="transparent_hugepage=never"
#注意需重启服务器生效
#修改磁盘IO调度方式 elevator=deadline
grubby --update-kernel=ALL --args="elevator=deadline"
#注意需重启服务器生效
#调整 sysctl.conf 参数
[root@dm~]# vim /etc/sysctl.conf
##修改
vm.overcommit_memory=0
然后执行 sysctl -p 使配置文件生效
#调整login
[root@Kylin04 ~]# vi /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
#RemoveIPC 参数检查
修改 /etc/systemd/logind.conf配置文件中的 RemoveIPC 参数,将#注释去掉,并修改yes为no重启服务。
systemctl daemon-reload
systemctl restart systemd-logind
#上传安装介质:
su - root
fpt 上传,bin
put dm8_20230420_x86_kylin10_64.iso
put Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso
#配置yum仓库:
mkdir /media/kylin10-repo-iso
mount -oloop /soft/Kylin-Server-10-SP2-x86-Release-Build09-20210524.iso /media/kylin10-repo-iso/
mv /etc/yum.repos.d/kylin_x86_64.repo /etc/yum.repos.d/kylin_x86_64.repo.bak
cat >>/etc/yum.repos.d/kylin10-repo-iso.repo<<EOF
[kylin10-repo-iso]
name=kylin10-repo-iso
baseurl="file:///media/kylin10-repo-iso/"
gpgcheck=0
EOF
#安装相关包
yum clean all
yum list
yum -y install kylin-lsb
yum -y install unzip
yum -y install unixODBC
#设置时区、时间
timedatectl set-timezone Asia/Beijing
date -s '20230523 11:21:00'
hwclock --systohc
Reboot
timedatectl show
#创建用户和组
groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba
#创建相关目录并授权
mkdir -p /dm8/dmdbms
mkdir -p /dm8/dmdata
mkdir -p /dmarch
mkdir -p /dmbak
chown -R dmdba:dinstall /dm8
chown -R dmdba:dinstall /dmarch
chown -R dmdba:dinstall /dmbak
#配置dmdba用户环境变量
su - dmdba
cd ~
vi .bash_profile
export DM_HOME=/dm8/dmdbms
export PATH=$PATH:$DM_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin
#使环境变量配置生效
source .bash_profile
2.命令行安装达梦数据库
2.1.命令行安装达梦软件
2.1.1.安装达梦软件
[root@Kylin04 mnt]# su - dmdba
[dmdba@Kylin04 ~]$ cd /mnt
[dmdba@Kylin04 mnt]$ ./DMInstall.bin -i
请选择安装语言(C/c:中文 E/e:英文) [C/c]:
解压安装程序..........
欢迎使用达梦数据库安装程序
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:N
是否设置时区? (Y/y:是 N/n:否) [Y/y]:y
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=伊斯兰堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [21]:
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:
所需空间: 2064M
请选择安装目录 [/home/dmdba/dmdbms]:/dm8/dmdbms
可用空间: 34G
是否确认安装路径(/dm8/dmdbms)? (Y/y:是 N/n:否) [Y/y]:Y
安装前小结
安装位置: /dm8/dmdbms
所需空间: 2064M
可用空间: 34G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):Y
2023-06-23 13:54:44
[INFO] 安装 基础 模块...
2023-06-23 13:54:44
[INFO] 安装达梦数据库...
2023-06-23 13:54:48
[INFO] 安装 服务器 模块...
2023-06-23 13:54:49
[INFO] 安装 客户端 模块...
2023-06-23 13:54:51
[INFO] 安装 驱动 模块...
2023-06-23 13:54:53
[INFO] 安装 手册 模块...
2023-06-23 13:54:53
[INFO] 安装 服务 模块...
2023-06-23 13:54:54
[INFO] 移动日志文件。
2023-06-23 13:54:54
[INFO] 安装达梦数据库完成。
注意:
请以root系统用户执行命令:
/dm8/dmdbms/script/root/root_installer.sh
安装结束
[dmdba@Kylin04 mnt]$
2.1.2.执行root_installer.sh创建启动AP服务
[root@Kylin04 ~]# /dm8/dmdbms/script/root/root_installer.sh
移动 /dm8/dmdbms/bin/dm_svc.conf 到/etc目录
创建DmAPService服务
Created symlink /etc/systemd/system/multi-user.target.wants/DmAPService.service → /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务
2.1.3.dminit初始化建库
[dmdba@Kylin04 mnt]$ cd /dm8/dmdbms/bin
[dmdba@Kylin04 bin]$ ./dminit path=/dm8/dmdata CASE_SENSITIVE=1 CHARSET=0 db_name=testdb instance_name=testdb port_num=5237 LOG_SIZE=512 SYSDBA_PWD=dameng123 PAGE_SIZE=16
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2024-04-17
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
log file path: /dm8/dmdata/testdb/testdb01.log
log file path: /dm8/dmdata/testdb/testdb02.log
write to dir [/dm8/dmdata/testdb].
create dm database success. 2023-06-23 14:12:41
主要参数说明:
CASE_SENSITIVE
标识符大小写敏感。当大小写敏感时,小写的标识符应用""括起,否则被系统自动转换为大写;当大小写不敏感时,系统不会转换标识符的大小写,在标识符比较时也不能区分大小写。取值:Y、y、1 表示敏感;N、n、0 表示不敏感。默认值为 Y。可选参数。
PATH
初始数据库存放的路径。默认路径为 dminit.exe/dminit 当前所在的工作目录。文件路径长 度最大为 256 个字符。可选参数。
CHARSET/UNICODE_FLAG
字符集选项。取值:0 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-KR。默认为 0。可选参数
DB_NAME
初始化数据库名称,默认为 DAMENG。名称为字符串,长度不能超过 128 个字符。可选参数。文件名不能包含字符‘/’‘\’‘<’‘>’‘:’‘*’‘?’‘|’‘'’‘"’。
INSTANCE_NAME
初始化数据库实例名称,默认为 DMSERVER。名称为字符串,长度不能超过 128 个字符。可选参数。文件名不能包含字符‘/’‘\’‘<’‘>’‘:’‘*’‘?’‘|’‘'’‘"’。
PORT_NUM
初始化时设置 dm.ini 中的数据库服务器监听端口号,默认 5236。服务器配置此参数,有效值范围(1024~65534),发起连接端的端口在 1024~65535 之间随机分配。可选参数。
LOG_SIZE
重做日志文件大小。取值:64~2048 之间的整数,单位 M。默认值为 256。可选参数。 每个 DM 数据库实例至少有两个重做日志文件,循环使用,LOG_SIZE 设置每个重做日志文件的大小。
SYSDBA_PWD
初始化时设置 SYSDBA 的密码,默认为 SYSDBA。密码长度为 9~48 个字符。可选参数。
PAGE_SIZE
数据文件使用的页大小。取值:4、8、16、32,单位:K。默认值为 8。可选参数。选择的页大小越大,则 DM 支持的元组长度也越大,但同时空间利用率可能下降。
2.1.4.启动达梦数据库
2.1.4.1.前台手工启动
注意:生产上不能用前台方式启动数据库,终端退出后数据库就会关闭。
cd /dm8/dmdbms/bin
[dmdba@Kylin04 bin]$ ./dmserver /dm8/dmdata/testdb/dm.ini
file dm.key not found, use default license!
version info: develop
DM Database Server 64 V8 03134284044-20230417-187846-20040 startup...
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Database mode = 0, oguid = 0
License will expire on 2024-04-17
file lsn: 0
ndct db load finished
ndct second level fill fast pool finished
ndct third level fill fast pool finished
ndct second level fill fast pool finished
ndct third level fill fast pool finished
ndct fill fast pool finished
pseg_set_gtv_trxid_low next_trxid in mem:[1002]
pseg_collect_mgr_items, total collect 0 active_trxs, 0 cmt_trxs, 0 pre_cmt_trxs, 0 to_release_trxs, 0 active_pages, 0 cmt_pages, 0 pre_cmt_pages, 0 to_release_pages, 0 mgr pages, 0 mgr recs!
next_trxid in mem:[2004]
next_trxid = 3006.
pseg recv finished
nsvr_startup end.
aud sys init success.
aud rt sys init success.
trx: 3006 purged 1 pages
trx: 3025 purged 1 pages
trx: 3026 purged 1 pages
trx: 3027 purged 1 pages
trx: 3028 purged 1 pages
trx: 3029 purged 1 pages
trx: 3039 purged 1 pages
trx: 3162 purged 1 pages
trx: 3175 purged 1 pages
trx: 3176 purged 1 pages
trx: 3177 purged 1 pages
trx: 3178 purged 1 pages
trx: 3179 purged 1 pages
trx: 3181 purged 1 pages
trx: 3182 purged 1 pages
trx: 3184 purged 1 pages
trx: 3186 purged 1 pages
trx: 3193 purged 1 pages
trx: 3199 purged 1 pages
trx: 3209 purged 1 pages
trx: 3222 purged 1 pages
trx: 3223 purged 1 pages
trx: 3224 purged 1 pages
trx: 3225 purged 1 pages
trx: 3237 purged 1 pages
trx: 3239 purged 1 pages
trx: 3240 purged 1 pages
trx: 3241 purged 1 pages
trx: 3293 purged 1 pages
trx: 3294 purged 1 pages
trx: 3305 purged 1 pages
trx: 3313 purged 14 pages
trx: 3340 purged 1 pages
trx: 3341 purged 1 pages
trx: 3342 purged 1 pages
trx: 3343 purged 1 pages
trx: 3349 purged 1 pages
trx: 3351 purged 1 pages
trx: 3353 purged 1 pages
trx: 3358 purged 1 pages
trx: 3363 purged 1 pages
trx: 3368 purged 1 pages
trx: 3370 purged 1 pages
trx: 3373 purged 1 pages
trx: 3375 purged 1 pages
trx: 3381 purged 1 pages
trx: 3382 purged 1 pages
trx: 3531 purged 1 pages
trx: 3543 purged 1 pages
trx: 3548 purged 1 pages
trx: 3553 purged 1 pages
trx: 3572 purged 21 pages
trx: 3573 purged 1 pages
trx: 3580 purged 1 pages
trx: 3585 purged 1 pages
trx: 3590 purged 1 pages
trx: 3615 purged 1 pages
trx: 3619 purged 1 pages
trx: 3621 purged 1 pages
trx: 3623 purged 1 pages
trx: 3625 purged 1 pages
trx: 3627 purged 1 pages
trx: 3629 purged 1 pages
trx: 3631 purged 1 pages
trx: 3633 purged 1 pages
trx: 3635 purged 1 pages
trx: 3637 purged 1 pages
trx: 3639 purged 1 pages
trx: 3641 purged 1 pages
trx: 3643 purged 1 pages
trx: 3645 purged 1 pages
trx: 3647 purged 1 pages
trx: 3649 purged 1 pages
trx: 3651 purged 1 pages
trx: 3653 purged 1 pages
trx: 3655 purged 1 pages
trx: 3657 purged 1 pages
trx: 3659 purged 1 pages
trx: 3661 purged 1 pages
trx: 3663 purged 1 pages
trx: 3665 purged 1 pages
trx: 3668 purged 4 pages
systables desc init success.
ndct_db_load_info success.
nsvr_process_before_open begin.
nsvr_process_before_open success.
SYSTEM IS READY.
2.1.4.2.后台手工启动
[dmdba@Kylin04 bin]$ nohup ./dmserver /dm8/dmdata/testdb/dm.ini &
[1] 43420
2.1.4.3.注册为服务方式启动
su - root
[root@Kylin04 mnt]# cd /dm8/dmdbms/script/root
[root@Kylin04 root]# ./dm_service_installer.sh -t dmserver -p testdb -dm_ini /dm8/dmdata/testdb/dm.ini
Created symlink /etc/systemd/system/multi-user.target.wants/DmServicetestdb.service → /usr/lib/systemd/system/DmServicetestdb.service.
创建服务(DmServicetestdb)完成
启动达梦数据库服务(root用户):
[root@Kylin04 root]# systemctl start DmServicetestdb.service
查看达梦数据库服务:
[root@Kylin04 root]# systemctl status DmServicetestdb.service
建议用下面方式启动数据库服务:
su - dmdba
[dmdba@Kylin04 dmdata]$ cd /dm8/dmdbms/bin
[dmdba@Kylin04 bin]$ ./DmServicetestdb start
Starting DmServicetestdb: [ OK ]
[dmdba@Kylin04 bin]$ ./DmServicetestdb status
DmServicetestdb (pid 43837) is running.
2.1.4.4.验证数据库是否启动
查看达梦数据库进程:
[dmdba@Kylin04 dmdata]$ ps -ef|grep dms
dmdba 43639 1 0 14:29 ? 00:00:00 /dm8/dmdbms/bin/dmserver path=/dm8/dmdata/testdb/dm.ini -noconsole
登录数据库验证:
[dmdba@Kylin04 dmdata]$ disql sysdba/dameng123:5237
服务器[LOCALHOST:5237]:处于普通打开状态
登录使用时间 : 2.681(ms)
disql V8
SQL> select status$ from v$instance;
行号 STATUS$
---------- -------
1 OPEN
已用时间: 0.971(毫秒). 执行号:600.
2.1.5.软件目录结构介绍
安装目录dmdbms下的目录结构
bin:存放达梦数据库需要用的的库文件及各种达梦相关服务的启停脚本
bin2:一般会存放达梦数据的debug版本
doc:存放达梦数据库安装完成后的使用文档
drivers:存放达梦数据库的jdbc和python的驱动包
include:存放达梦数据库用到的c语言的头文件
jar:存放达梦用到的java外部函数的jar包
jdk:存放达梦数据库使用到的jdk
log:存放达梦数据库服务器的日志信息
samples:存放达梦数据库初始化及一些配置文件的例子
script:存放一些常用的脚本信息
tool:存放达梦数据库的管理工具的启动脚本,例如manager管理工具,dts迁移工具的
uninstall:存放达梦数据库的卸载脚本所需要使用到的一些jar包和lib文件
web:存放DEM的部署sql及部署说明
release_en.txt:达梦数据库版本信息英文版
release_zh.txt:达梦数据库版本信息中文版
uninstall.sh:达梦数据库的卸载脚本
2.2.卸载达梦软件
2.2.1.卸载达梦软件
用户在 DM 安装目录下,找到卸载程序 uninstall.sh 来执行卸载。用户执行以下 命令启动命令行卸载程序。
#进入 DM 安装目录
[dmdba@Kylin04 ~]$ cd /dm8/dmdbms/
[dmdba@Kylin04 dmdbms]$ ./uninstall.sh -i
请确认是否卸载达梦数据库(/dm8/dmdbms/)? (y/Y:是 n/N:否):Y
是否删除dm_svc.conf配置文件? (y/Y:是 n/N:否):Y
正在删除所有数据库库服务
删除数据库服务DmJobMonitorService
删除数据库服务DmInstanceMonitorService
删除数据库服务DmAuditMonitorService
删除数据库服务DmAPService
删除数据库服务DmServicetestdb
删除所有数据库库服务完成
正在删除数据库目录
删除bin目录
删除bin目录完成
删除bin2目录
删除bin2目录完成
删除include目录
删除include目录完成
删除desktop目录
删除desktop目录完成
删除doc目录
删除doc目录完成
删除drivers目录
删除drivers目录完成
删除jdk目录
删除jdk目录完成
删除jar目录
删除jar目录完成
删除samples目录
删除samples目录完成
删除script目录
删除script目录完成
删除tool目录
删除tool目录完成
删除web目录
删除web目录完成
删除uninstall目录
删除uninstall目录完成
删除license_en.txt文件
删除license_en.txt文件完成
删除license_zh.txt文件
删除license_zh.txt文件完成
删除uninstall.sh文件
删除uninstall.sh文件完成
删除数据库目录完成
使用root用户执行命令:
/dm8/dmdbms/root_uninstaller.sh
2.2.2.卸载达梦数据库相关服务
su - root
[root@Kylin04 ~]# /dm8/dmdbms/root_uninstaller.sh
删除DmAPService服务
Removed /etc/systemd/system/multi-user.target.wants/DmAPService.service.
删除DmServicetestdb服务
Removed /etc/systemd/system/multi-user.target.wants/DmServicetestdb.service.
删除/etc/dm_svc.conf文件
卸载程序不会删除安装目录下有用户数据的库文件以及安装 DM 后使用过程中产生的一些文件。用户可以根据需要手工删除这些内容。如下所示:
[root@Kylin04 ~]# ls -rlt /dm8/dmdata/testdb/
总用量 1462360
-rw-r--r-- 1 dmdba dinstall 693 6月 23 14:12 sqllog.ini
-rw-r--r-- 1 dmdba dinstall 68724 6月 23 14:12 dm.ini
drwxr-xr-x 2 dmdba dinstall 6 6月 23 14:12 bak
-rw-r--r-- 1 dmdba dinstall 633 6月 23 14:12 dm_service.prikey
-rw-r--r-- 1 dmdba dinstall 134217728 6月 23 14:12 MAIN.DBF
drwxr-xr-x 2 dmdba dinstall 6 6月 23 14:12 HMAIN
-rw-r--r-- 1 dmdba dinstall 942 6月 23 14:12 dminit20230523141238.log
drwxr-xr-x 2 dmdba dinstall 6 6月 23 14:16 trace
-rw-r--r-- 1 dmdba dinstall 77594624 6月 23 14:34 TEMP.DBF
-rw-r--r-- 1 dmdba dinstall 5632 6月 23 14:34 dm.ctl
drwxr-xr-x 2 dmdba dinstall 186 6月 23 14:34 ctl_bak
-rw-r--r-- 1 dmdba dinstall 77594624 6月 23 14:37 SYSTEM.DBF
-rw-r--r-- 1 dmdba dinstall 134217728 6月 23 15:42 ROLL.DBF
-rw-r--r-- 1 dmdba dinstall 536870912 6月 23 15:42 testdb02.log
-rw-r--r-- 1 dmdba dinstall 536870912 6月 23 15:42 testdb01.log
3.静默方式一次性安装达梦软件和初始化达梦数据库
3.1.静默配置xml文件
<?xml version="1.0"?>
<DATABASE>
<!--安装数据库的语言配置,安装中文版配置 ZH,英文版配置 EN,不区分大小写。不允许为空。-->
<LANGUAGE>en</LANGUAGE>
<!--安装程序的时区配置,默认值为+08:00,范围:-12:59 ~ +14:00 -->
<TIME_ZONE>+08:00</TIME_ZONE>
<!-- key 文件路径 -->
<KEY/>
<!--安装程序组件类型,取值 0、1、2,0 表示安装全部,1 表示安装服务器,2 表示安装客户端。默认为 0。 -->
<INSTALL_TYPE>0</INSTALL_TYPE>
<!--记得修改,安装路径,不允许为空。 -->
<INSTALL_PATH>/dm8/dmdbms</INSTALL_PATH>
<!--是否初始化库,取值 Y/N、y/n,不允许为空。 -->
<INIT_DB>Y</INIT_DB>
<!--数据库实例参数 -->
<DB_PARAMS>
<!--记得修改,初始数据库存放的路径,不允许为空 -->
<PATH>/dm8/dmdata</PATH>
<!--记得修改,初始化数据库名字,默认是 DAMENG,不超过 128 个字符 -->
<DB_NAME>CBDB</DB_NAME>
<!--记得修改,初始化数据库实例名字,默认是 DMSERVER,不超过 128 个字符 -->
<INSTANCE_NAME>CBDB</INSTANCE_NAME>
<!--记得修改,初始化时设置 dm.ini 中的 PORT_NUM,默认 5236,取值范围:1024~65534 -->
<PORT_NUM>5236</PORT_NUM>
<!--记得修改,初始数据库控制文件的路径,文件路径长度最大为 256 -->
<CTL_PATH>/dm8/dmdata/CBDB/dm.ctl</CTL_PATH>
<!--记得修改,初始化数据库日志文件的路径,文件路径长度最大为 256,LOG_PATH 值为空则使用默认值,如果使用非默认值 LOG_PATH 节点数不能少于 2 个 -->
<LOG_PATHS>
<LOG_PATH>/dm8/dmdata/CBDB/DAMENG01.log</LOG_PATH>
<LOG_PATH>/dm8/dmdata/CBDB/DAMENG02.log</LOG_PATH>
</LOG_PATHS>
<!--数据文件使用的簇大小,只能是 16 页或 32 页之一,缺省使用 16 页 -->
<EXTENT_SIZE>16</EXTENT_SIZE>
<!--数据文件使用的页大小,缺省使用 8K,只能是 4K、8K、16K 或 32K 之一 -->
<PAGE_SIZE>16</PAGE_SIZE>
<!--日志文件使用的簇大小,默认是 256,取值范围 64 和 2048 之间的整数 -->
<LOG_SIZE>512</LOG_SIZE>
<!--标识符大小写敏感,默认值为 Y。只能是’Y’, ’y’, ’N’, ’n’, ’1’, ’0’之一 -->
<CASE_SENSITIVE>Y</CASE_SENSITIVE>
<!--字符集选项,默认值为 0。0 代表 GB18030(中文),1 代表 UTF-8,2 代表韩文字符集 EUC-KR -->
<CHARSET>0</CHARSET>
<!--设置为 1 时,所有 VARCHAR 类型对象的长度以字符为单位,否则以字节为单位。默认值为 0。 -->
<LENGTH_IN_CHAR>0</LENGTH_IN_CHAR>
<!--字符类型在计算 HASH 值时所采用的 HASH 算法类别。0:原始 HASH 算法;1:改进的HASH 算法。默认值为 1。 -->
<USE_NEW_HASH>1</USE_NEW_HASH>
<!--初始化时设置 SYSDBA 的密码,默认为 SYSDBA,长度在 9 到 48 个字符之间 -->
<SYSDBA_PWD>dameng123<SYSDBA_PWD/>
<!--初始化时设置 SYSAUDITOR 的密码,默认为 SYSAUDITOR,长度在 9 到 48 个字符之间 -->
<SYSAUDITOR_PWD/>
<!--初始化时设置 SYSSSO 的密码,默认为 SYSSSO,长度在 9 到 48 个字符之间,仅在安全版本下可见和可设置 -->
<SYSSSO_PWD/>
<!--初始化时设置 SYSDBO 的密码,默认为 SYSDBO,长度在 9 到 48 个字符之间,仅在安全版本下可见和可设置 -->
<SYSDBO_PWD/>
<!--初始化时区,默认是东八区。格式为:正负号小时:分钟,范围:-12:59 ~ +14:00 -->
<TIME_ZONE>+08:00</TIME_ZONE>
<!--是否启用页面内容校验,0:不启用;1:简单校验;2:严格校验(使用 CRC16 算法生成校验码)。默认 0 -->
<PAGE_CHECK>0</PAGE_CHECK>
<!--设置默认加密算法,不超过 128 个字符 -->
<EXTERNAL_CIPHER_NAME/>
<!--设置默认 HASH 算法,不超过 128 个字符 -->
<EXTERNAL_HASH_NAME/>
<!--设置根密钥加密引擎,不超过 128 个字符 -->
<EXTERNAL_CRYPTO_NAME/>
<!--全库加密密钥使用的算法名。算法可以是DM内部支持的加密算法,或者是第三方的加密算法。默认使用"AES256_ECB"算法加密,最长为 128 个字节 -->
<ENCRYPT_NAME/>
<!--指定日志文件是否加密。默认值 N。取值 Y/N,y/n,1/0 -->
<RLOG_ENC_FLAG>N</RLOG_ENC_FLAG>
<!--用于加密服务器根密钥,最长为 48 个字节 -->
<USBKEY_PIN/>
<!--设置空格填充模式,取值 0 或 1,默认为 0 -->
<BLANK_PAD_MODE>0</BLANK_PAD_MODE>
<!--指定 system.dbf 文件的镜像路径,默认为空 -->
<SYSTEM_MIRROR_PATH/>
<!--指定 main.dbf 文件的镜像路径,默认为空 -->
<MAIN_MIRROR_PATH/>
<!--指定 roll.dbf 文件的镜像路径,默认为空 -->
<ROLL_MIRROR_PATH/>
<!--是否是四权分立,默认值为 0(不使用)。仅在安全版本下可见和可设置。只能是 0 或 1 -->
<PRIV_FLAG>0</PRIV_FLAG>
<!--指定初始化过程中生成的日志文件所在路径。合法的路径,文件路径长度最大为 257(含结束符),不包括文件名-->
<ELOG_PATH>/dm8/dmdata/CBDB</ELOG_PATH>
</DB_PARAMS>
<!--是否创建数据库实例的服务,值 Y/N y/n,不允许为空,不初始化数据库将忽略此节点。非root用户不能创建数据库服务。 -->
<CREATE_DB_SERVICE>Y</CREATE_DB_SERVICE>
<!--是否启动数据库,值 Y/N y/n,不允许为空,不创建数据库服务将忽略此节点。 -->
<STARTUP_DB_SERVICE>N</STARTUP_DB_SERVICE>
</DATABASE>
3.2.root执行DMInstall
[root@Kylin04 mnt]# ./DMInstall.bin -q /root/install_db.xml
解压安装程序..........
2023-06-23 16:09:16
[INFO] Installing DM DBMS...
2023-06-23 16:09:16
[INFO] Installing BASE Module...
2023-06-23 16:09:20
[INFO] Installing SERVER Module...
2023-06-23 16:09:21
[INFO] Installing CLIENT Module...
2023-06-23 16:09:23
[INFO] Installing DRIVERS Module...
2023-06-23 16:09:25
[INFO] Installing MANUAL Module...
2023-06-23 16:09:25
[INFO] Installing SERVICE Module...
2023-06-23 16:09:26
[INFO] Move log file to log directory.
2023-06-23 16:09:26
[INFO] Starting DmAPService service...
2023-06-23 16:09:27
[INFO] Start DmAPService service successfully.
2023-06-23 16:09:27
[INFO] Installed DM DBMS completely.
2023-06-23 16:09:29
[INFO] Creating database...
2023-06-23 16:09:32
[INFO] Create database completed.
2023-06-23 16:09:32
[INFO] Creating database service...
2023-06-23 16:09:32
[INFO] Create database service completed.
启动数据库服务:
[dmdba@Kylin04 ~]$ cd /dm8/dmdbms/bin
[dmdba@Kylin04 bin]$ ./DmServiceCBDB start
Starting DmServiceCBDB: [ OK ]
[dmdba@Kylin04 bin]$ ps -ef|grep dms
dmdba 54635 1 0 16:14 pts/1 00:00:00 /dm8/dmdbms/bin/dmserver path=/dm8/dmdata/CBDB/dm.ini -noconsole
3.3.验证数据库是否启动
[dmdba@Kylin04 bin]$ disql
disql V8
username:
password:
Server[LOCALHOST:5236]:mode is normal, state is open
login used time : 4.451(ms)
SQL> select * from v$version;
LINEID BANNER
---------- ---------------------------------
1 DM Database Server 64 V8
2 DB Version: 0x7000c
3 03134284044-20230417-187846-20040
used time: 1.077(ms). Execute id is 600.
SQL> select status$ from v$instance;
LINEID STATUS$
---------- -------
1 OPEN
used time: 0.372(ms). Execute id is 601.
SQL>
达梦在线服务平台:https://eco.dameng.com
文章
阅读量
获赞