注册
达梦数据库安装前准备工作指南
技术分享/ 文章详情 /

达梦数据库安装前准备工作指南

肖庚 2026/08/14 72 0 0

1.安装前准备工作

1.1.沟通硬件与软件环境

1.数据库架构: 单机还是集群
2.操作系统情况: 版本情况,最小化安装,tar nmon perf 等工具。cat /etc/os-release; cat /etc/issue; cat /etc/redhat-release ; uname -a
3.cpu信息: lscpu
4.存储怎么划分:软件安装目录,实例目录,备份目录,归档目录。core目录. lsblk, fdisk -l, blkid
5.UPS和read卡电池:机房有没有UPS、存储read卡是否有电池,hdparm -W 1 /dev/sda,参数 1:开启,参数 0:关闭。
6.网络环境:心跳网络不低于1000M,网卡个数 2个以上,心跳做bond,划分在一个vlan里。
7.端口:端口是否有特殊要求,否则按默认处理。

1.2.数据库实例参数确认

字符集 : 3个字符集 0-GB18030, 1-UTF8, 2-EUC-KR
大小写是否敏感 : 标识符大小写敏感。当大小写敏感时,小写的标识符应用“括起,否则被系统自动转换为大写;当大小写不敏感时,系统不会转换标识符的大小写,在标识符比较时也不能区分大小写。 默认值 Y
varchar是否以字符为单位: 一个字符包含多个字节。以字符为单位,varchar(1)可以包含一个汉字,以字节为单位,varchar(1)不能包含一个汉字。
页大小: 建议32k 分配页数 32个。一个字段最大能写入页大小的一半。
兼容性要求: 如果从源端迁移过来的数据库,需要兼容源库。

1.3.操作系统名字检查

hostname
hostnamectl set-hostname dmdb

#方便 disql登入
vi /etc/hosts
192.168.10.10 dmdb

1.4.安装依赖包

yum clean all
yum list
yum install unzip tar xorg-x11-utils gtk2 xorg-x11-xauth net-tools

如果需要配置本地数据源

#配置本地yum源
##centos7

mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom

cd /etc/yum.repos.d 
rename repo old *

cat > /etc/yum.repos.d/yum.repo << !
[local]
name=local
baseurl=file:///mnt/cdrom/
gpgcheck=0
enabled=1
!

1.5.检查/tmp 空间

安装dm数据库时 /tmp 空间要求最少2G

sudo  vi  /etc/fstab
添加一行
tmpfs /tmp tmpfs mode=1777,nosuid,nodev,noexec,size=2G 0 0
生效:
sudo mount -o remount /tmp

1.6.检查操作系统时间

时间不正确会有以下问题
1.试用授权产品,会导致试用授权过期,无法使用。
2.集群自动切换场景,会可能导致集群检测节点服务异常,引发误切换。
3.数据库运行日志、数据库服务日志、归档日志、备份集等时间记录错误,导致相关分析、排查工作难度增大。

如果是集群环境 建议配置生产环境的时间同步服务。

timedatectl
timedatectl set-timezone Asia/Shanghai
同时修改了硬件时间
timedatectl set-time "2021-02-27 10:00:00"
##时间同步
##手动修改时间方法。 date -s "yyyy-mm-dd HH:MM:SS" 
##修改后复核。 
date -s 
##集群环境下各节点建议配置时间自动同步,在配置前需已有配置好的NTP服务器可以使用。 
##1、修改chrony.conf配置文件,将原配置文件中的server注释掉,换成NTP服务器地址。 
vi /etc/chrony.conf 
server 10.10.xxx.xxx iburst 
server 10.10.xxx.xxx iburst 
##2、修改完配置后重启chronyd服务。 
systemctl restart chronyd 
##3、并配置chronyd为开机启动。 
systemctl enable chronyd 
##4、检查chronyd服务状态。 
systemctl status chronyd 
##5、查看时间同步源。 
chronyc sources -v 
##6、集群各节点检查时间是否一致。 date

注意:集群运行时,直接跳跃的调整时间会导致数据库的重启。

1.7.安全软件防护

主要是针对 windows 服务器
不同防护软件,影响的情况不同,常见如下:
1.360软件,会将达梦数据库后台服务判断为非法的服务,会自动清理该数据库服务(windows环境)。
2.奇安信网神终端安全管理系统,会自动防护端口。

修改方案:
沟通添加白名单或直接卸载、关闭软件。

注意:如果防护软件导致了已经运行的数据库出现问题,那在卸载软件后,还需要检查配置信息,可能一些配置信息已经修改了,卸载软件后也是无法自动恢复的。需要手动处理。

1.8.网络检查

1.8.1.网络测速:

一拷贝一个文件到远程服务器的/opt目录下
[root@~]# scp -r xxx dmdba@ip:/opt/
一拷贝一个文件,指定端口到远程服务器的/opt目录下
[root@~]# scp -r-Рі#• xxx dmdba@ip:/opt/
--网络配置以及速度是否正常
ethtool eth1
--查看网络信息
sar -n DEV 1 100

测试命令:

1.服务器大于1台时使用,测试服务器间网络性能情况,上传netperf、netserver文件至服务器,并增加执行权限,其中netserver需复制到每台服务器。
chmod +x netperf netserver
2.在每台服务器均启动netserver服务并确认进程存在
./netserver -p 12306
ps -ef|grep netserver
3.在其中一台服务器使用netperf测试至所有服务器,并记录测试结果
[root@localhost ~]# ./netperf -H 172.16.93.12 -p 12306 -f M -| 60

1.8.2.ip配置

#centos9 修改网卡信息
#配置静态ip
cd /etc/NetworkManager/system-connections
vi ens160.nmconnection
[ipv4]
method=manual
address1=192.168.182.133/24,192.168.182.2
dns=192.168.182.2

# 重载全部网络配置
nmcli connection reload
# 重启ens256网卡生效
nmcli connection up ens256

# 生成新的网卡信息(添加了网卡但是nmcli中看不到,需要生成新的网卡信息)
nmcli connection add type ethernet con-name ens161 ifname ens161 autoconnect yes
#查看网卡信息
nmcli device show ens160

1.9.磁盘规划及挂载

如果使用多块盘的则尽量一块盘一个挂载点,多块盘尽量多个挂载点,数据分离处理,不会占用彼此资源。
归档、备份和数据分开存储,备份也可以存放到nas上,实现异地备份。
1.磁盘写入数据时会产生较少的资源占用和冲突,有利于提高数据库的性能。
2.可以很容易的监测各类的使用和剩余空间。
3.避免减少误删或者磁盘毁坏造成的损失。
4.不会抢占数据库的磁盘使用空间。

磁盘格式:
xfs的特点
数据完整性:采用XFS文件系统,当意想不到的宕机发生后,首先,由于文件系统开启了日志功能,所以磁盘上的文件不再会意外宕机而遭到破坏了。
传输特性:XFS文件系统采用优化算法,日志记录对整体文件操作影响非常小。XFS查询与分配存储空间非常快。xfs文件系统能连续提供快速的反应时间。
可扩展性:XFS是一个全64-bit的文件系统,可以支持上百万T字节的存储空间。这个格式的不能缩小空间

ext4:支持在线扩容、离线缩容
XFS:仅支持在线扩容,不支持缩容(缩容只能重建 LV 备份数据)

1.9.1.磁盘测速

磁盘的运作是磁盘读写前寻找磁道的过程。磁盘自带的读写缓存大小,对于磁盘读写速度至关重要。如果 dd 只有几M或者 10几M 就要反馈 可能有风险。

##真实模拟 20K 次磁盘写入(IO)
dd bs=32k count=20k if=/dev/zero of=/opt/dmdbms/test oflag=dsync

1.bs=设置块的读写大小
1.if=文件名:输入文件名
2.of=文件名:输出文件名
3.count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数
4.oflag指定写的方式,dsync读写数据采用同步IO

1.9.2.lvm创建

第一步:磁盘分区
磁盘 /dev/sdb,分一整个 LVM 分区
fdisk /dev/sdb
# n 新建分区 → p主分区 → 默认起始扇区 → 全部空间
# t 修改分区类型 → 输入 8e (LVM类型)
# w 保存退出
第二步:创建 PV 物理卷
# 分区方式
pvcreate /dev/sdb1
# 整块磁盘直接用(无需分区)
pvcreate /dev/sdc

# 查看PV
pvdisplay / pvs
第三步:创建 VG 卷组
vgcreate vg_data /dev/sdb1
# 查看VG
vgdisplay / vgs
第四步:创建 LV 逻辑卷
#指定大小
# 创建 20G lv,lv名称 lv01,归属vg_data
lvcreate -L 20G -n lv01 vg_data
# 查看LV
lvdisplay / lvs
# 设备路径:/dev/vg_data/lv01
#按剩余百分比
# 使用VG全部剩余空间
lvcreate -l 100%FREE -n lv02 vg_data
第五步:格式化文件系统 & 挂载
# ext4格式化
mkfs.ext4 /dev/vg_data/lv01

#xfs格式化
mkfs.xfs /dev/vg_data/lv01

lsblk /dev/vg_data/lv01
根据uuid 写入到 /etc/fstab 自动挂载
mount -a

1.9.3.lvm扩容

1. 新磁盘创建 PV
pvcreate /dev/sdc1
2. 扩展 VG 卷组
vgextend vg_data /dev/sdc1
3. 扩容逻辑卷(lvextend)
# 增加10G
lvextend -L +10G /dev/vg_data/lv01
# 直接扩到总容量50G
lvextend -L 50G /dev/vg_data/lv01
# 使用VG所有剩余空间
lvextend -l +100%FREE /dev/vg_data/lv01
4. 扩容文件系统(区分 ext4 / XFS)
# ext4 在线扩容(无需卸载)
resize2fs /dev/vg_data/lv01

# XFS 在线扩容(必须挂载状态执行)
xfs_growfs /data

1.10.关闭SELinux

SELinux是安全增强型linux系统,它是一个linux内核模块,也是linux的一个安全子系统。
关闭的意义:
selinux,是用来加强安全性的一个组件,但非常容易出错且难以定位,它在本来已经很安全的Linux上,凌驾于root权限之上,设置了很多额外的条条框框;
如果了解这些条条框框,那还好,但如果不了解,那SELinux可能并没有帮什么忙,却给带来很多不确定因素。

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0

1.11.关闭swap

Swap的关闭需要视情况而定,内存充裕较大就关闭,内存太小不关闭。

##临时关闭 swap 分区,重启后失效
[root@~]# swapoff  -a

##永久关闭 swap 分区
[root@~]# sed -ri 's/.*swap.*/#&/' /etc/fstab  
##可以最后重启操作系统
[root@~]# reboot
##再次确认
[root@~]# free -m

1.12.防火墙检查

关闭防火墙

#centos
systemctl stop firewalld 
systemctl disable firewalld

添加端口到白名单:

--查看防火墙端口开放情况:
--redhat 7/8
firewall-cmd -zone=public --list-ports
--redhat 6
iptables -L

Redhat6添加端口到防火墙(iptables):
-修改系统文件,永久更改,需重启防火墙服务:
[root@~]# vi /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp -dport 5236 j ACCEPT --添加5236端口到防火墙
[root@~I# service iptables save;service iptables restart;-保存后重启防火墙

Redhat7/8添加端口到防火墙 (Firewall):
--添加(-permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public -add-port=5236/tcp --permanent
--重新载入
firewall-cmd --reload
--查看
firewall-cmd --zone=public --query-port=5236/tcp
--删除
firewall-cmd --zone=public -remove-port=5236/tcp --permanent

1.13.磁盘的调度算法&透明大页&numa

适用centos7+的系统修改 grub
vi /etc/default/grub
找到 GRUB_CMDLINE_LINUX_DEFAULT,在最后 追加

numa=off transparent_hugepage=never elevator=mq-deadline

grub2-mkconfig -o /boot/grub2/grub.cfg
#uefi启动
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

1.14.创建用户和组和目录

groupadd dinstall -g 2001
useradd -g dinstall -u 1001 -m -d /home/dmdba -s /bin/bash dmdba 
echo dmdba| passwd  --stdin dmdba

mkdir -p /dm8 /dm8/dmdata /dm8/dmarch /dm8/dmsql
chown dmdba:dinstall -R /dm8
chmod 777 -R /dm8

1.15.调整profile参数

vi /home/dmdba/.bash_profile
export DM_HOME="/dm8/dmdbms"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm8/bin"
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
export MALLOC_ARENA_MAX=4

1.16.调整sysctl.conf参数

vm.overcommit_memory的0:表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。

cat >> /etc/sysctl.conf << !
#DM8
vm.swappiness = 10
vm.overcommit_memory=0
kernel.core_pattern =/dm/dmcore/core-%e-%p-%s
!
sysctl -p

1.17.调整limits.conf参数

1.core file size 建议设置为 unlimited。并将 core 文件目录放到大的空间目录存放。
2.data seg size 建议设置为 1048576 以上或 unlimited,此参数过小将导致数据库启动失败。
3.file size 建议设置 unlimited (无限制),此参数过小导致数据库安装或初始化失败。
4.open files 建议设置为 65536 以上或 unlimited。
5.virtual memory 建议设置为 1048576 以上或 unlimited,此参数过小将导致数据库启动失败。
6.max user processes 最大线程数这个参数建议修改为 10240。

cat >> /etc/security/limits.conf << !

* soft nproc 65536
* hard nproc 65536
* soft nofile 65536
* hard nofile 65536
dmdba soft nice 0
dmdba hard nice 0
dmdba soft as unlimited
dmdba hard as unlimited
dmdba soft fsize unlimited
dmdba hard fsize unlimited
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft data unlimited
dmdba hard data unlimited
!

ulimit -a

1.18.调整system.conf参数

达梦数据库服务注册为系统服务的进程,如通过systemctl或者service方式设定随机自启动的数据库服务,其能打开的最大文件描述符、proc数量等不受limits.conf控制,需要修改/etc/systemd/system.conf文件才有效果。

cat >> /etc/systemd/system.conf << !
 
DefaultLimitNOFILE=65536 
DefaultLimitNPROC=10240
!

1.19.RemoveIPC 参数检查

vi /etc/systemd/logind.conf 
RemoveIPC=no

systemctl daemon-reload 
systemctl restart systemd-logind

grep RemoveIPC /etc/systemd/logind.conf

https://eco.dameng.com

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服