为了比较方便的安装达梦DM8数据库,制作了一个基于OpenEuler系统的安装脚本。

安装操作系统

最近使用开放原子开源基金会的OpenEuler操作系统感觉还不错,从https://www.openeuler.org/zh/download/下载最新的OpenEuler 22.03 LTS,安装过程和Centos差不多,设置最小化安装即可。

安装基础软件

#yum install java-1.8.0-openjdk
#dnf install unzip tar -y

上传DM8 ISO

从达梦官网注册账户,因为麒麟系统是基于OpenEuler的,所以可以下载dm8_20210917_x86_kylin10_64_ent_8.1.2.70_pack1.iso,通过sftp上传至服务器

达梦数据库mysql的sql脚本文件 达梦数据库执行脚本_linux

设置配置文件

设置静默安装所需配置文件auto_install.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></KEY>
<!--安装程序组件类型,取值 0、1、2,0 表示安装全部,1 表示安装服务器,2 表示安装客户
端。默认为 0。 -->
<INSTALL_TYPE>0</INSTALL_TYPE>
<!--安装路径,不允许为空。 -->
<INSTALL_PATH>/opt/dm8</INSTALL_PATH>
<!--是否初始化库,取值 Y/N、y/n,不允许为空。 -->
<INIT_DB>Y</INIT_DB>
<!--数据库实例参数 -->
<DB_PARAMS>
    <!--初始数据库存放的路径,不允许为空 -->
    <PATH>/opt/dm8/data</PATH>
    <!--初始化数据库名字,默认是 DAMENG,不超过 128 个字符 -->
    <DB_NAME>DAMENG</DB_NAME>
    <!--初始化数据库实例名字,默认是 DMSERVER,不超过 128 个字符 -->
    <INSTANCE_NAME>DMSERVER</INSTANCE_NAME>
    <!--初始化时设置 dm.ini 中的 PORT_NUM,默认 5236,取值范围:1024~65534 -->
    <PORT_NUM>5236</PORT_NUM>
    <!--初始数据库控制文件的路径,文件路径长度最大为 256 -->
    <CTL_PATH></CTL_PATH>
    <!--初始化数据库日志文件的路径,文件路径长度最大为 256,LOG_PATH 值为空则使用默
    认值,如果使用非默认值 LOG_PATH 节点数不能少于 2 个 -->
    <LOG_PATHS>
        <LOG_PATH>
        </LOG_PATH>
    </LOG_PATHS>
    <!--数据文件使用的簇大小,只能是 16 页或 32 页之一,缺省使用 16 页 -->
    <EXTENT_SIZE>16</EXTENT_SIZE>
    <!--数据文件使用的页大小,缺省使用 8K,只能是 4K、8K、16K 或 32K 之一 -->
    <PAGE_SIZE>32</PAGE_SIZE>
    <!--日志文件使用的簇大小,默认是 256,取值范围 64 和 2048 之间的整数 -->
    <LOG_SIZE>256</LOG_SIZE>
    <!--标识符大小写敏感,默认值为 Y。只能是’Y’, ’y’, ’N’, ’n’, ’1’, ’0’ 之一 -->
    <CASE_SENSITIVE>Y</CASE_SENSITIVE>
    <!--字符集选项,默认值为 0。0 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-KR 
    -->
    <CHARSET>1</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>Dameng456</SYSDBA_PWD>
    <!--初始化时设置 SYSAUDITOR 的密码,默认为 SYSAUDITOR,长度在 9 到 48 个字符之
    间 -->
    <SYSAUDITOR_PWD>Dameng456</SYSAUDITOR_PWD>
    <!--初始化时设置 SYSSSO 的密码,默认为 SYSSSO,长度在 9 到 48 个字符之间,仅在安
    全版本下可见和可设置 -->
    <SYSSSO_PWD></SYSSSO_PWD>
    <!--初始化时设置 SYSDBO 的密码,默认为 SYSDBO,长度在 9 到 48 个字符之间,仅在安
    全版本下可见和可设置 -->
    <SYSDBO_PWD></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></EXTERNAL_CIPHER_NAME>
    <!--设置默认 HASH 算法,不超过 128 个字符 -->
    <EXTERNAL_HASH_NAME></EXTERNAL_HASH_NAME>
    <!--设置根密钥加密引擎,不超过 128 个字符 -->
    <EXTERNAL_CRYPTO_NAME></EXTERNAL_CRYPTO_NAME>
    <!--全库加密密钥使用的算法名。算法可以是 DM 内部支持的加密算法,或者是第三方的加
    密算法。默认使用"AES256_ECB"算法加密,最长为 128 个字节 -->
    <ENCRYPT_NAME></ENCRYPT_NAME>
    <!--指定日志文件是否加密。默认值 N。取值 Y/N,y/n,1/0 -->
    <RLOG_ENC_FLAG>N</RLOG_ENC_FLAG>
    <!--用于加密服务器根密钥,最长为 48 个字节 -->
    <USBKEY_PIN></USBKEY_PIN>
    <!--设置空格填充模式,取值 0 或 1,默认为 0 -->
    <BLANK_PAD_MODE>1</BLANK_PAD_MODE>
    <!--指定 system.dbf 文件的镜像路径,默认为空 -->
    <SYSTEM_MIRROR_PATH></SYSTEM_MIRROR_PATH>
    <!--指定 main.dbf 文件的镜像路径,默认为空 -->
    <MAIN_MIRROR_PATH></MAIN_MIRROR_PATH>
    <!--指定 roll.dbf 文件的镜像路径,默认为空 -->
    <ROLL_MIRROR_PATH></ROLL_MIRROR_PATH>
    <!--是否是四权分立,默认值为 0(不使用)。仅在安全版本下可见和可设置。只能是 0 或 1 
    -->
    <PRIV_FLAG>0</PRIV_FLAG>
    <!--指定初始化过程中生成的日志文件所在路径。合法的路径,文件路径长度最大为 257(含
    结束符),不包括文件名-->
    <ELOG_PATH></ELOG_PATH>
</DB_PARAMS>
<!--是否创建数据库实例的服务,值 Y/N y/n,不允许为空,不初始化数据库将忽略此节点。
非 root 用户不能创建数据库服务。 -->
<CREATE_DB_SERVICE>N</CREATE_DB_SERVICE>
<!--是否启动数据库,值 Y/N y/n,不允许为空,不创建数据库服务将忽略此节点。 -->
<STARTUP_DB_SERVICE>N</STARTUP_DB_SERVICE>

``

编写安装脚本

编写安装脚本install-dm

#!/bin/bash

##安装基础软件
dnf install unzip tar -y

path = $(cd `dirname $0`; pwd)

#创建用户
groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba

mkdir /opt/dm8
chown dmdba.dinstall /opt/dm8

#挂载DM8安装ISO
mount $path/dm8_20210917_x86_kylin10_64_ent_8.1.2.70_pack1.iso /mnt/dm


#安装DM8
su - oracle <<EOF
cd /mnt/dm
./DMInstall.bin -i -q $path/auto_install.xml
EOF

sh /opt/dm8/script/root/root_installer.sh

#设置DM8数据库
su - oracle <<EOF
mkdir /opt/dm8/data
cd /opt/dm8/bin/
./dminit PATH=/opt/dm8/data PAGE_SIZE=32 EXTENT_SIZE=16 LOG_SIZE=128 SYSDBA_PWD=Dameng123 SYSAUDITOR_PWD=Dameng123 DB_NAME=DAMENG INSTANCE_NAME=DMSERVER PORT_NUM=5236 BUFFER=500 CHARSET=1 CASE_SENSITIVE=1 BLANK_PAD_MODE=1 LENGTH_IN_CHAR=0
EOF

#启动DM8服务
cd cd /opt/dm8/script/root
./dm_service_installer.sh -t dmserver -dm_ini /opt/dm8/data/DAMENG/dm.ini -p DMSERVER
systemctl enable DmServiceDMTESTSVR.service
systemctl start DmServiceDMTESTSVR.service
systemctl status DmServiceDMTESTSVR.service

执行安装

将iso、配置文件和安装脚本放置在同一目录下,使用root账户来执行。

./install-dm