达梦8 在CentOS 系统下静默安装

确认系统参数

bash 复制代码
[root@localhost ~]# ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited【1048576(即 1GB)以上或 unlimited】
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited【unlimited】
pending signals                 (-i) 116902
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65536 【65536或unlimited】
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 116902
virtual memory          (kbytes, -v) unlimited【1048576(即 1GB)以上或 unlimited】
file locks                      (-x) unlimited
[root@localhost ~]#

创建用户组及用户,设置用户密码

bash 复制代码
[root@localhost ~]# groupadd -g 12349 dinstall
[root@localhost ~]# useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
[root@localhost ~]# passwd dmdba

上传安装文件

bash 复制代码
[root@localhost ~]# cd /home/dmdba/
[root@localhost dmdba]# ll
total 1149172
-rw-r--r-- 1 root root 1176750113 Aug 23 10:02 DMInstall.bin
-rw-r--r-- 1 root root       5956 Aug 30 11:02 auto_install.xml

安装文件授权

bash 复制代码
[root@localhost dmdba]# chown dmdba.dinstall *
[root@localhost dmdba]# chmod 755 ./DMInstall.bin
[root@localhost dmdba]# su - dmdba
Last login: Wed Aug 23 09:55:15 CST 2023 on pts/2
[dmdba@localhost ~]$ ll
total 1149172
-rwxr-xr-x 1 dmdba dinstall 1176750113 Aug 23 10:02 DMInstall.bin
-rw-r--r-- 1 dmdba dinstall       5956 Aug 30 11:02 auto_install.xml

静默安装配置文件

XML 复制代码
<DATABASE>
    <!--安装数据库的语言配置,安装中文版配置 ZH,英文版配置 EN,不区分大小写。不允许为空。-->
    <LANGUAGE>zh</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>/home/dmdba/dmdbms</INSTALL_PATH>
    <!--是否初始化库,取值范围:Y/N、y/n,不允许为空。 -->
    <INIT_DB>Y</INIT_DB>
    <!--数据库实例参数 -->
    <DB_PARAMS>
        <!--初始数据库存放的路径,不允许为空 -->
        <PATH>/home/dmdba/dmdbms/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>/home/dmdba/dmdbms/data/DAMENG/dm.ctl</CTL_PATH>
        <!--初始化数据库日志文件的路径,文件路径长度最大为 256,LOG_PATH 值为空则使用缺省值,如果使用非默认值 LOG_PATH 节点数不能少于 2 个 -->
        <LOG_PATHS>
            <LOG_PATH>
            </LOG_PATH>
        </LOG_PATHS>
        <!--数据文件使用的簇大小,取值范围:16 页、32 页,缺省为 16 页 -->
        <EXTENT_SIZE>16</EXTENT_SIZE>
        <!--数据文件使用的页大小,取值范围:4K、8K、16K、32K,缺省为 8K -->
        <PAGE_SIZE>8</PAGE_SIZE>
        <!--日志文件使用的簇大小,缺省为 256,取值范围为 64~2048 之间的整数 -->
        <LOG_SIZE>256</LOG_SIZE>
        <!--标识符大小写敏感。取值范围:Y/N y/n 1/0,缺省为 Y -->
        <CASE_SENSITIVE>Y</CASE_SENSITIVE>
        <!--字符集选项,缺省为 0。0 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-KR -->
        <CHARSET>0</CHARSET>
        <!--规定 VARCHAR 对象长度的单位。取值范围:0,1。1:所有 VARCHAR 类型对象的长度以字符为单位;0:有 VARCHAR 类型对象的长度以字节为单位。缺省为 0。 -->
        <LENGTH_IN_CHAR>0</LENGTH_IN_CHAR>
        <!--字符类型在计算 HASH 值时所采用的 HASH 算法类别。取值范围 0,1。0:原始 HASH算法;1:改进的 HASH 算法。缺省为 1。 -->
        <USE_NEW_HASH>1</USE_NEW_HASH>
        <!--初始化时设置 SYSDBA 的密码,缺省为 SYSDBA,长度在 9 到 48 个字符之间 -->
        <SYSDBA_PWD>sysdba@123</SYSDBA_PWD>
        <!--初始化时设置 SYSAUDITOR 的密码,缺省为 SYSAUDITOR,长度在 9 到 48 个字符之间 -->
        <SYSAUDITOR_PWD>sysdba@123</SYSAUDITOR_PWD>
        <!--初始化时设置 SYSSSO 的密码,缺省为 SYSSSO,长度在 9 到 48 个字符之间,仅在安全版本下可见和可设置 -->
        <SYSSSO_PWD>sysdba@123</SYSSSO_PWD>
        <!--初始化时设置 SYSDBO 的密码,缺省为 SYSDBO,长度在 9 到 48 个字符之间,仅在安全版本下可见和可设置 -->
        <SYSDBO_PWD>sysdba@123</SYSDBO_PWD>
        <!--初始化时区,默认是东八区。格式为:正负号小时:分钟,取值范围:-12:59 ~ +14:00 -->
        <TIME_ZONE>+08:00</TIME_ZONE>
        <!--是否启用页面内容校验,取值范围:0,1,2。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>
        <!--用于加密服务器根密钥,最长为 48 个字节 -->
        <USBKEY_PIN></USBKEY_PIN>
        <!--设置空格填充模式,取值范围:0,1,缺省为 0 -->
        <BLANK_PAD_MODE>0</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,1。0:不使用;1:使用。缺省为 0。仅在安全版本下可见和可设置。-->
        <PRIV_FLAG>0</PRIV_FLAG>
        <!--指定初始化过程中生成的日志文件所在路径。合法的路径,文件路径长度最大为 257(含结束符),不包括文件名-->
        <ELOG_PATH>/home/dmdba/dmdbms/data/DAMENG</ELOG_PATH>
    </DB_PARAMS>
    <!--是否创建数据库实例的服务,取值范围: Y/N y/n,不允许为空,不初始化数据库将忽略此节点。非 root 用户不能创建数据库服务。 -->
    <CREATE_DB_SERVICE>Y</CREATE_DB_SERVICE>
    <!--是否启动数据库,取值范围: Y/N y/n,不允许为空,不创建数据库服务将忽略此节点。 -->
    <STARTUP_DB_SERVICE>Y</STARTUP_DB_SERVICE>
</DATABASE>

指定一下字符集,否则可能会出现不能解析配置文件的错误

bash 复制代码
[dmdba@localhost ~]$ export LANG=zh_CN.UTF-8

执行安装,注意配置文件要用全路径

bash 复制代码
[dmdba@localhost ~]$ ./DMInstall.bin -q /home/dmdba/auto_install.xml
解压安装程序......... 
2023-09-01 16:35:52 
[INFO] 安装达梦数据库...
2023-09-01 16:35:52 
[INFO] 安装 基础 模块...
2023-09-01 16:35:54 
[INFO] 安装 服务器 模块...
2023-09-01 16:35:54 
[INFO] 安装 客户端 模块...
2023-09-01 16:35:55 
[INFO] 安装 驱动 模块...
2023-09-01 16:36:10 
[INFO] 安装 手册 模块...
2023-09-01 16:36:12 
[INFO] 安装 服务 模块...
2023-09-01 16:36:12 
[INFO] 移动日志文件。
2023-09-01 16:36:14 
[INFO] 正在启动DmAPService服务...
2023-09-01 16:36:14 
[INFO] 启动DmAPService服务成功。
2023-09-01 16:36:15 
[INFO] 安装达梦数据库完成。
2023-09-01 16:36:17 
[INFO] 开始初始化数据库...
2023-09-01 16:36:20 
[INFO] 初始化数据库完成。
2023-09-01 16:36:20 
[INFO] 开始创建数据库服务...
2023-09-01 16:36:20 
[INFO] 创建数据库服务完成。
2023-09-01 16:36:20 
[INFO] 开始启动数据库实例服务(DmServiceDMSERVER)...
2023-09-01 16:36:35 
[INFO] 启动数据库实例服务(DmServiceDMSERVER)完成。
[dmdba@localhost ~]$ 

数据库安装后,自动启动,,查看数据库状态

bash 复制代码
[dmdba@localhost ~]$ /home/dmdba/dmdbms/bin/DmServiceDMSERVER status
DmServiceDMSERVER (pid 1429) is running.
[dmdba@localhost ~]$ 

问题一

不能解析安装文件

bash 复制代码
[root@CentOS7 dmdba]# ./DM8Install_20230418_x86_rh6_64.bin -q /home/dmdba/auto_install.xml
Extract install files......... 
Fail to parse the config file(/home/dmdba/auto_install.xml) of Auto Install!
[root@CentOS7 dmdba]# 

在运行安装时会出现不能解析配置文件的问题,对于此问题,已发现两种情况会引发

(1)字符集问题

解决方案是设置为中文utf-8

bash 复制代码
[root@CentOS7 dmdba]# export LANG=zh_CN.UTF-8
[root@CentOS7 dmdba]# ./DMInstall.bin -q /home/dmdba/auto_install.xml 
解压安装程序......... 
2023-08-30 16:57:10 
[INFO] 安装达梦数据库...
2023-08-30 16:57:10 
[INFO] 安装 基础 模块...
2023-08-30 16:57:12 
.....

(2)未完全卸载,或有残留进程,dmap进程

bash 复制代码
[root@CentOS7 ~]# ps -ef|grep dm
......
dmdba    13563     1  0 Aug31 ?        00:00:02 /home/dmdba/dmdbms/bin/dmap
dmdba    13718     1  0 Aug31 ?        00:01:24 /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dmdbms/data/DAMENG/dm.ini -noconsole
......
[root@CentOS7 ~]#

解决方案

可以使用以下命令,杀掉进程重新尝试

bash 复制代码
[root@CentOS7 ~]# kill -s 9 `pgrep dmserver`
[root@CentOS7 ~]# kill -s 9 `pgrep dmap`
相关推荐
北城以北888819 分钟前
数据库--MySQL数据管理
数据库·mysql
代码的余温22 分钟前
Oracle RAC共享存储核心技术
数据库·oracle
程序员瓜叔23 分钟前
基于SVN搭建企业内部知识库系统实践
svn·centos
float_六七24 分钟前
数据库物理外键与逻辑外键全解析
数据库·oracle
大白的编程日记.26 分钟前
【MySQL】数据库的基本操作
数据库·mysql·oracle
Jamie Chyi29 分钟前
【Oracle经验分享】字符串拼接过长问题的解决方案 —— 巧用 XMLAGG
数据库·oracle
代码的余温29 分钟前
Oracle高可用与容灾解决方案
数据库·oracle
奔跑吧 android1 小时前
【linux kernel 常用数据结构和设计模式】【数据结构 2】【通过一个案例属性list、hlist、rbtree、xarray数据结构使用】
linux·数据结构·list·kernel·rbtree·hlist·xarray
yzx9910131 小时前
生活在数字世界:一份人人都能看懂的网络安全生存指南
运维·开发语言·网络·人工智能·自动化
橙*^O^*安3 小时前
Go 语言基础:变量与常量
运维·开发语言·后端·golang·kubernetes