Linux银河麒麟V10部署DM8数据库

国产适配linux银河麒麟V10下部署DM8(arm版本)

tips:安装过程仅供参考,具体因你的实际部署路径而定

正文

一、下载好对应的Linux版本的达梦数据库

DM8官网直通车:https://www.dameng.com/view_61.html

下载中心,需要注册登录
https://www.dameng.com/ucenter/docs.html
在这里插入图片描述

系统检测,参考官网技术文档,一般而言可以忽略这一步

1
2
#获取系统位数
getconf LONG_BIT

查询操作系统 release 信息,Redhat系列

1
2
#如果没安装对应的服务包,无法使用该命令
lsb_release -a

查询系统信息

1
cat /etc/issue

查询系统名称

1
uname -a

linux下检查操作系统限制
运行 ulimit -a 进行查询

官方文档建议如下设置
参数使用限制:

1
2
1.data seg size
data seg size (kbytes, -d)

建议用户设置为 1048576(即 1GB)以上或 unlimited(无限制),此参数过小
将导致数据库启动失败。

1
2
2. file size
file size(blocks, -f)

建议用户设置为 unlimited(无限制),此参数过小将导致数据库安装或初始化
失败。

1
2
3. open files
open files(-n)

建议用户设置为 65536 以上或 unlimited(无限制)。

1
2
4.virtual memory
virtual memory (kbytes, -v)

建议用户设置为 1048576(即 1GB)以上或 unlimited(无限制),此参数过小将导致数据库启动失败。

检查系统内存,获取内存总大小

1
grep MemTotal /proc/meminfo

获取交换分区大小

1
grep SwapTotal /proc/meminfo

获取内存使用详情

1
free

检查存储空间
查询目录可用空间

1
df -h /mount_point/dir_name

如果/tmp 目录不能保证 1GB 的存储空间,用户可以扩展/tmp 目录存储空间或者通
过设置环境变量 DM_INSTALL_TMPDIR 指定安装程序的临时目录。具体命令如下所示:
以 BASH 为例:

1
mkdir -p /mount_point/dir_name
1
2
DM_INSTALL_TMPDIR=/mount_point/dir_name
export DM_INSTALL_TMPDIR

配置JAVA环境,无特殊需求忽略此步骤
#以 BASH 为例:

1
vim /etc/profile
1
export DM_JAVA_HOME=/mount_point/jdk_home_dir

arm架构银河麒麟V10
数据库文件:

1
2
#准备arm架构版本的
dm8_20200907_FTarm_kylin4_64_ent_8.1.1.126.iso

二、使用mount命令挂载准备好的iso镜像

1
mount dm8_20200907_FTarm_kylin4_64_ent_8.1.1.126.iso  /mnt/data/dm8

赋予权限755

1
2
#找到/mnt/data/dm8下的DMInstall.bin
chmod 755 ./DMInstall.bin

三、使用命令进行安装

此步骤,官方不推荐使用root用户安装,采用新建用户授权形式。

创建安装用户

为了减少对操作系统的影响,用户不应该以 root 系统用户来安装和运行 DM。用户可以在安装之前为 DM 创建一个专用的系统用户。可参考以下示例创建系统用户和组(并指定用户 ID 和组 ID),具体细节可向系统管理员咨询。

  1. 创建安装用户组 dinstall
1
groupadd -g 12349 dinstall
  1. 创建安装用户 dmdba。
1
useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
  1. 初始化用户密码。
1
passwd dmdba
  1. 之后通过系统提示进行密码设置。
    注意:创建安装系统用户完成后,安装手册之后的操作默认使用安装系统用户进行
    操作。

  2. 切换用户进行安装

1
sudo dmdba

切回root用户,需要验证密码。

1
./DMInstall.bin -i

如果当前操作系统中已存在 DM,将在终端弹出提示,输入选项:继续,将进行下一
步的命令行安装,否则退出命令行安装。

  1. 选择语言

  2. 验证key文件

  3. 输入时区

  4. 选择安装类型
    1 :典型安装
    2 :服务器
    3 :客户端
    4 :自定义

  5. 选择安装路径

默认安装路径:

1
/opt/dmdbms

官方文档推荐安装路径

1
/home/dmdba/dmdbms

这里官方推荐安装路径,与之前推荐新建用户dmdba对应起来。
(个人推荐还是安装在/opt/下)

  1. 静默安装
1
2
#配置文件全路径
./DMInstall.bin -q

例如通过配置文件安装,需要配置auto_install.xml文件

1
./DMInstall.bin -q /opt/dmdba/auto_install.xml

四、初始化数据库与注册服务

1、dminit命令初始化创建实例,初始化生成data数据文件。无论是安装MySQL、MariaDB、Oracle亦或是DM数据库都是需要注册服务与实例化的过程,最终生成配置文件以及data数据文件。

1
./dminit PATH=/opt/dmdba/dmdbms/data

五、通过脚本命令注册达梦数据库服务

1.通过指定服务类型注册服务,或者手动添加

dm_service_installer.sh所在路径,linux_银河麒麟V10_arm版本

1
/opt/dmdba/dmdbms/script/root

执行命令注册服务

1
./dm_service_installer.sh  -t dmserver -dm_ini /opt/dmdba/dmdbms/data/DAMENG/dm.ini -p DMSERVER

六、测试启动DmServiceDMSERVER服务

1
2
#如果报错请看第八步
systemctl start DmServiceDMSERVER

七、设置管理员口令模式

比如同时采用(2+4)口令长度不小于9且必须包含一个大写字母
设置系统默认口令策略,修改参数PWD_POLICY。

  1. 0: 无策略;
  2. 1: 禁止与用户名相同;
  3. 2: 口令长度不小于 9;
  4. 4:至少包含一个大写字母(A-Z);
  5. 8 :至少包含一个数字(0-9);
  6. 16:至少包含一个标点符号(英文输入法状态下,除―和空格外的所有符号;若为其他数字,则表示配置值的和,如 3
    =1+2,表示同时启用第 1 项和第 2 项策略。当COMPATIBLE_MODE=1 时,PWD_POLICY 的实际值均为 0

一般推荐2+4的组合设置密码策略

八、排查错误

启动DmServiceDMSERVER,需要找到对应的ini文件,没有实例化导致报错,是因为达梦数据库默认去/opt/dmdbms/下找dm.ini文件

1
2
3
4
5
root@localhost]# ./DmServiceDMSERVER start
Starting DmServiceDMSERVER: 上一次登录:二 511 22:59:33 CST 2021
[ FAILED ]
Invalid input %INI_PATH%
格式: ./dmserver [ini_file_path] [-noconsole] [mount] [path=ini_file_path] [dcr_ini=dcr_path]

例如:

1
2
./dmserver path=/opt/dmdbms/bin/dm.ini
./dmserver /opt/dmdbms/bin/dm.ini

关键字 说明


path dm.ini绝对路径或者dmserver当前目录的dm.ini
dcr_ini 如果使用css集群环境,指定dmdcr.ini文件路径
-noconsole 以服务方式启动
mount 配置方式启动
help 打印帮助信息

解决方案可以通过dminit初始化创建实例,生成data文件
#执行如下命令
1、初始化

1
./dminit PATH=/opt/dmdba/dmdbms/data

2、通过指定服务类型注册服务
2.1、dm_service_installer.sh所在路径,linux_银河麒麟_arm版本

1
/opt/dmdba/dmdbms/script/root/

2.2、注册服务

进入对应脚本目录

1
cd /opt/dmdba/dmdbms/script/root/

执行命令

1
2
3
./dm_service_installer.sh  -t dmserver -dm_ini 

/opt/dmdba/dmdbms/data/DAMENG/dm.ini -p DMSERVER

3、通过服务脚本文件注册服务

1
./dm_service_installer.sh -s /opt/dmdba/dmdbms/bin/DmServiceDMSERVER

4、通过命令启动服务

1
systemctl start DmServiceDMSERVER

九、手动注册服务(官方文档提供)

以下步骤将以 Red Hat Enterprise Linux 6 for x86-64 系统为例,由于不同
操作系统系统命令不尽相同,具体步骤及操作请以本机系统为准,具体细节可向系统管理员
咨询。

1、拷贝服务模板文件(DmService)到系统服务目录(/etc/rc.d/init.d),并将
新文件命名为 DmServiceDMSERVER。

init.d环境

1
2
3
4
cp /opt/dmdba/dmdbms/bin/service_template/DmService
/etc/rc.d/init.d/DmServiceDMSERVER

chmod 755 /etc/rc.d/init.d/DmServiceDMSERVER

2、修改服务脚本(/etc/rc.d/init.d/DmServiceDMSERVER)配置。
#修改 DmServiceDMSERVER
INI_PATH=INI 路径

3、创建启动服务的连接

1
2
3
4
5
6
7
ln -s /etc/rc.d/init.d/DmServiceDMSERVER /etc/rc.d/rc0.d/K02DmServiceDMSERVER
ln -s /etc/rc.d/init.d/DmServiceDMSERVER /etc/rc.d/rc1.d/K02DmServiceDMSERVER
ln -s /etc/rc.d/init.d/DmServiceDMSERVER /etc/rc.d/rc2.d/S98DmServiceDMSERVER
ln -s /etc/rc.d/init.d/DmServiceDMSERVER /etc/rc.d/rc3.d/S98DmServiceDMSERVER
ln -s /etc/rc.d/init.d/DmServiceDMSERVER /etc/rc.d/rc4.d/S98DmServiceDMSERVER
ln -s /etc/rc.d/init.d/DmServiceDMSERVER /etc/rc.d/rc5.d/S98DmServiceDMSERVER
ln -s /etc/rc.d/init.d/DmServiceDMSERVER /etc/rc.d/rc6.d/K02DmServiceDMSERVER

如果没有dm.ini文件,新建一份

4、启动与停止服务

1
2
#停止服务
service DmServiceDMSERVER stop
1
2
#启动服务
service DmServiceDMSERVER start

4.1、systemd 环境
以下步骤将以 Red Hat Enterprise Linux 7 for x86-64 系统为例,由于不同
操作系统系统命令不尽相同,具体步骤及操作请以本机系统为准,具体细节可向系统管理员
咨询。

4.2、拷贝服务模板文件(DmService)到目录(/opt/dmdbms/bin),并将新文件命
名为 DmServiceDMSERVER。

1
2
3
4
cp /opt/dmdba/dmdbms/bin/service_template/DmService
/opt/dmdba/dmdbms/bin/DmServiceDMSERVER

chmod 755 /opt/dmdba/dmdbms/bin/DmServiceDMSERVER

4.3、修改服务脚本(/opt/dmdbms/bin/DmServiceDMSERVER)配置
修改 DmServiceDMSERVER,手动指定dm.ini路径
INI_PATH=INI 路径

4.4、创建系统服务配置文件

1
/usr/lib/systemd/system/DmServiceDMSERVER.service

文件内容,如下所示:

1
2
3
4
5
6
7
8
9
10
[Unit]
Description=DmServiceDMSERVER
[Service]
Type=forking
PIDFile=/opt/dmdba/dmdbms/bin/pids/DmServiceDMSERVER.pid
ExecStart=/opt/dmdba/dmdbms/bin/DmServiceDMSERVER start
ExecStop=/opt/dmdba/dmdbms/bin/DmServiceDMSERVER stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target

4.5、在使用服务前,需要启用服务。相关命令如下所示:

centos7版本开始推荐使用systemctl命令

1
2
#启用服务,设置开机自弃
systemctl enable DmServiceDMSERVER
1
2
#停止服务
systemctl stop DmServiceDMSERVER
1
2
#启动服务
systemctl start DmServiceDMSERVER

4.6、卸载服务
服务卸载脚本文件为

1
dm_service_uninstaller.sh

用户可以使用服务卸载脚本
删除已经注册成操作系统服务的 DM 服务脚本,参数如下表:

4.7、删除服务参数
标志 参数 说明
-n 服务名 指定服务名,删除指定的操作系统随机启动服务
-h 帮助

使用方法:
操作之前,需要使用root系统用户登录或切换至root系统用户。
删除指定的操作系统服务。假设存在DM的操作系统随机启动服务

DmServiceDMSERVER,命令如下:

1
./dm_service_uninstaller.sh -n DmServiceDMSERVER

大部分是参考DM8官方文档进行操作的,安装后也会在部署的doc目录下生成相关文档。部署过两次,就将安装的过程记录下来,以备不时之需。

持续优化更新中…

莫问收获,但问耕耘

创作乐无边,学而思有境。好了,到此为止就是此篇文章的全部内容了,能看到这里的都是帅哥靓妹啊!!!善于总结,其乐不穷。好记性不如烂笔头,多收集自己第一次尝试的成果,收获也颇丰。