基础配置
系统环境配置
IP地址配置
1 | ### 编辑网卡配置文件 |
ifcfg-ens33 配置文件内容:
1 | TYPE=Ethernet |
配置DNS(为后面网络源铺垫)
1 | [sysadmin@Kylin-Server-01 ~]$ vim /etc/resolv.conf |
网络服务重启与验证:
1 | [root@Kylin-Server-01 ~]# /etc/init.d/network restart |
防火墙配置
防火墙策略配置:
1 | #### 设置默认策略为拒绝 |
初始防火墙状态:
1 | [root@Kylin-Server-01 ~]# firewall-cmd --list-all |
移除不必要服务:
1 | [root@Kylin-Server-01 ~]# firewall-cmd --permanent --remove-service=cockpit |
最终防火墙状态:
1 | [root@Kylin-Server-01 ~]# firewall-cmd --list-all |
无用服务管理
1 | #### 禁用 CUPS 打印服务 |
系统环境优化
时间同步配置
修改 chrony 配置文件:
1 | [root@Kylin-Server-01 ~]# vim /etc/chrony.conf |
chrony.conf 配置内容:
1 | #### Use public servers from the pool.ntp.org project. |
启动并启用 chrony 服务:
1 | [root@Kylin-Server-01 ~]# systemctl restart chronyd |
时间同步状态检查:
1 | [root@Kylin-Server-01 ~]# chronyc sources -v |
1 | [root@Kylin-Server-01 ~]# chronyc tracking |
1 | [root@Kylin-Server-01 ~]# timedatectl status |
合理划分存储分区(需满⾜数据库、备份、应⽤存储需求)
1 | [root@Kylin-Server-01 ~]# df -h |
创建专⽤管理⽤⼾(系统、数据库、WEB服务分别对应专⽤⽤⼾),分配合理权限
1 | [root@Kylin-Server-01 ~]# groupadd sysadmin |
达梦基础
安装准备
创建dmdba用户并合理分配组
1 | groupadd dinstall -g 2001 |
修改文件打开最大数
使用root用户打开/etc/security/limits.conf文件进行修改
1 | vi /etc/security/limits.conf |
切换到dmdba查看生效是否
1 | su - dmdba |

目录规划分为实例保存目录、归档保存目录、备份保存目录
1 | // 实例保存目录 |
修改目录权限
1 | chown -R dmdba:dinstall /dmdata/data |
开始安装
在达梦官网下载DM8的镜像文件通过WinSCP拷入KylinOS中,存放到/opt目录下,挂载到/mnt上:
1 | cd /opt |

挂载之后应该是一个bin的文件与一个PDF文件,此处可以运行DMInstall.bin
1 | ./DMInstall.bin // 这里不少人会报错,报错提示硬盘不够,优先使用df -h来进行查看你安装的地方位置是否够 |
安装完成之后切换root用户执行命令/home/dmdba/dmdbms/script/root/root_installer.sh(此处的路径位置根据你安装的时候选择的位置来)

配置数据库
首先是初始化内容
使用dmdba用户进入到安装目录的bin目录中
1 | su - dmdba |
需要注意的是 页大小 (page_size)、簇大小 (extent_size)、大小写敏感 (case_sensitive)、字符集 (charset) 、空格填充模式 (BLANK_PAD_MODE) 、页检查模式(PAGE CHECK) 等部分参数,一旦确定无法修改,在初始化实例时确认需求后谨慎设置。
部分参数解释如下:
- page_size:数据文件使用的页大小。取值范围 4、8、16、32,单位:KB。缺省值为 8。可选参数。选择的页大小越大,则 DM 支持的元组长度也越大,但同时空间利用率可能下降。数据库创建成功后无法再修改页大小,可通过系统函数 SF_GET_PAGE_SIZE()获取系统的页大小。
- extent_size:数据文件使用的簇大小,即每次分配新的段空间时连续的页数。取值范围 16、32、64。单位:页数。缺省值为 16。可选参数。数据库创建成功后无法再修改簇大小,可通过系统函数 SF_GET_EXTENT_SIZE()获取系统的簇大小。
- case_sensitive: 标识符大小写敏感。当大小写敏感时,小写的标识符应用””括起,否则被系统自动转换为大写;当大小写不敏感时,系统不会转换标识符的大小写,系统比较函数会将大写字母全部转为小写字母再进行比较。取值:Y、y、1 表示敏感;N、n、0 表示不敏感。缺省值为 Y。可选参数。此参数在数据库创建成功后无法修改,可通过系统函数 SF_GET_CASE_SENSITIVE_FLAG()或 CASE_SENSITIVE()查询设置的参数值。
- charset:字符集选项。取值范围 0、1、2。0 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-KR。缺省值为 0。可选参数。此参数在数据库创建成功后无法修改,可通过系统函数 SF_GET_UNICODE_FLAG()或 UNICODE()查询设置的参数值。
- BLANK_PAD_MODE:设置字符串比较时,结尾空格填充模式是否兼容 ORACLE。1:兼容;0:不兼容。缺省值为 0。可选参数。此参数在数据库创建成功后无法修改,可通过查询 V$PARAMETER 中的 BLANK_PAD_MODE 参数名查看此参数的设置值。
- PAGE_CHECK:PAGE_CHECK 为页检查模式。取值范围 0、1、2、3。0:禁用页校验;1:开启页校验并使用 CRC 校验;2:开启页校验并使用指定的 HASH 算法进行校验;3:开启页校验并使用快速 CRC 校验。缺省值为 3。可选参数。在数据库创建成功后无法修改。
注册服务
注册服务需要使用root用户进行注册
1 | cd /home/dmdba/dmdbms/script/root/ |

检查注册状态
1 | cd /home/dmdba/dmdbms/bin |

启动与停止数据库
注册完成之后启动数据,使用dmdba进行启动即可
1 | [dmdba@localhost ~]$ cd /home/dmdba/dmdbms/bin |

DM服务查看器
这里有个核心问题就是DM服务查看器需要桌面窗口支持的,这里使用xhost +命令可能会导致报错,明明有桌面窗口但是还是报错,使用命令
1 | systemctl start lightdm |
来进行窗口的启动(注意这里会导致窗口重启,注意保存数据),启动之后使用dmdba账户进行登录,切到root之后输入命令xhost +之后就不再报错,再切回dmdba账户使用export设置display参数即可
1 | [dmdba@localhost ~]$ export DISPLAY=:0.0 |
重点问题
可能到DM服务查看器的时候很多人无法启动达梦数据库实例服务,这是因为前面安装的时候使用[dmdba@localhost bin]$ ./DmServiceDMTEST start导致服务占用开启,返回去stop一下即可在DM服务查看器中正常启动运行,这里应该是达梦软件设计问题,导致后台与前台状态不统一

写入数据库内容
通过tools文件夹下的manager模块启动图形化界面进行数据写入
1 | [dmdba@Kylin-Server-01 dmdbms]$ cd tool/ |

共享服务器配置
指定其中1台服务器作为共享服务器(Server02)
NFS 服务端配置(Server02)
安装 启动NFS 服务端软件
1 | # 安装nfs-utils rpcbind |

创建共享目录并设置权限
1 | # 创建共享目录 |

配置共享规则(/etc/exports)
1 | sudo vim /etc/exports |
写入内容:
1 | # 格式:目录 客户端IP(权限,安全选项) |

参数解释(安全关键):
rw:读写权限(ro为只读)sync:同步写入,保证数据一致性no_root_squash:保留root权限(慎用,仅限备份目录)anonuid/anongid:匿名用户映射到指定UID(更安全)192.168.10.0/24:限制仅该网段访问
修改了 exports,需要重新加载
1 | exportfs -ra |
应用配置并验证
1 | # 重新导出共享列表 |

安全与权限加固
禁止匿名访问(默认已禁止)
确保 /etc/exports中没有使用 *(rw)这种开放全网的配置。
配置服务日志(用于监控)
编辑 /etc/nfs.conf,启用详细日志
修改内容:
1 | 1. [exportfs]模块 |


修改完成后保存文件并重启 nfs-server服务,并且验证日志
1 | systemctl restart nfs-server |

客户端挂载(Server01)
安装客户端工具
1 | yum install -y nfs-utils |
查看服务器Server02(服务端)共享列表
1 | sudo showmount -e 172.16.220.20 |

创建本地挂载点并挂载
1 | # 创建挂载点 |

在 Server-01 上手动挂载

开机自动挂载
1 | # 永久挂载(写入fstab) |
⚠️ _netdev参数表示等待网络就绪后再挂载,避免启动失败。
可用性测试与监控
基础读写测试
1 | # 在客户端(服务器Server01)测试 |
客户端(Server01)

服务端(Server02)

监控服务状态

1 | # 服务端查看连接状态 |
WEB服务器应⽤部署
安装 Nginx
1 | sudo yum install -y nginx-1.21.5-5.p06.ky10 |

项目部署
准备好相关项目文件
项目文件结构
| /webapp ├── app.py # 核心后端代码(包含数据库连接、接口、页面渲染,可扩展) └── templates # 页面模板目录(基础版本仅1个首页) └── index.html # 登录+基础查询页面(UI可自主美化) |
|---|
app.py
1 | from flask import Flask, render_template, request, jsonify |
templates/index.html
1 |
|
将/webapp目录上传到服务器并给予对应用户权限

安装 Python 及数据库驱动
1 | # 1. 安装系统依赖 |
配置 Systemd 托管 Flask 后端(开机自启)
创建 Systemd 服务文件
1 | sudo vim /etc/systemd/system/erp-app.service |
写入以下内容
1 | [Unit] |

启动后端服务
1 | sudo systemctl daemon-reload |
看到 active (running)表示后端启动成功。如果失败,请查看日志 journalctl -u erp-app -f。
配置 Nginx 反向代理
备份默认配置,新建站点配置
1 | # 备份默认配置(如果没有则跳过) |
写入内容
1 | server { |

这段配置的作用是:
/请求:直接交给 Nginx 读取/data/www/erp/templates/index.html(静态页面)。/api/请求:转发(Proxy)给后端的http://127.0.0.1:5000。
检查并重载 Nginx
1 | # 检查配置文件语法是否正确 |

权限收紧
Nginx 默认是用 nginx用户运行的,它只需要读取 /data/www/erp目录
1 | # 确保 nginx 用户能读取 webapp 目录 |

可用性测试
浏览器访问本机地址

达梦完全配置
介绍
紧接上文在KylinOS-Server-V10-SP3中配置好了达梦数据库DM8,创建了普通用户webapp来避开权限问题。同时配置了Nginx+Flask实现了一个基础的前后端交互网页。

按照剩余题目要求,需要实现以下内容
数据库集群搭建
- 主从集群搭建:完成达梦数据库主从集群搭建,实现主从节点数据实时同步,确保主节点故障时,从节点可正常切换,保障数据库⾼可⽤。
数据库配置与管理
- 数据库管理:创建数据库表空间、数据表、专⽤应⽤⽤⼾,分配合理权限;导⼊测试数据(数据量规模⾃定,需满⾜应⽤查询需求);配置数据库备份策略(备份⽅式、频率⾃定),确保数据安全,可正常完成备份与恢复操作。
先前准备
首先需要保证各项服务的正常运行与联通
1 | [root@Kylin-Server-02 erp]# systemctl status nfs |

配置数据库
首先配置数据库热备,也就是开启数据库归档模式,此时需要完全关闭达梦数据库
1 | ps -ef | grep dmserver |
修改dm.ini,找到/dmdata/data/DAMENG下的dm.ini打开,将ARCH_INI设置为1,保存退出

创建一个临时的归档目录(相当于中转站的形式)
1 | mkdir -p /dmarch |
使用mount的形式挂载数据库,这里其实感觉使用./dmservice.sh来启动数据库应该可以,笔者没有尝试,因为看路径来说调用的dm.ini是一致的,就是不清楚mount与非mount区别
1 | /home/dmdba/dmdbms/bin/dmserver /dmdata/DMDB/dm.ini mount |

使用命令行mount之后命令行暂时保持不关闭挂载到后台,此时使用dmdba用户进行登录
1 | [root@Kylin-Server-02 bin]# ./disql SYSDBA/SYSDBA |
这里还有一个问题,可能会有人遇到数据库属于普通打开模式,如下图红框所示,需要先改变数据库的状态,使用alter database MOUNT;切换数据库模式才能执行上面的步骤,注意Server1需要配置为主库也就是Primary,Server2则需要配置为备库Standby

注意最后运行备份可能会遇到报错创建失败以及权限不足问题,通过以下命令来纠正
1 | [root@Kylin-Server-02 tool]# chown -R dmdba:dinstall /data/backup/* |
脚本配置
来到达梦数据库的bin文件夹下创建新文件full_backup.sh,向脚本内写入以下内容,并赋予权限
full_backup.sh
1 | !/bin/bash |
赋予权限,chmod +x full_backup.sh并运行./full_backup.sh
1 | [dmdba@Kylin-Server-02 bin]$ ./full_backup.sh |
结果内容无误之后去往Server1查看NFS备份文件同步状态,一切正常,开始考虑将脚本放入自动计划

定时任务
使用定时器Crontab,进入定时器crontab -e,添加如下规则

可能有人问,为什么不用vim /etc/crontab来设置
- crontab -e 主要是用户级定时任务
- vim /etc/cronta 主要是系统级定时任务
收尾工作
理论上来说定为系统级定时任务更好,这里属于是笔者边做边写的,主要是还是按照个人需求来,配置完成之后设置开机自启并查看服务状态


整理文档保存到/backup/system_log下
