1. 部署前工作
1.1 介质下载
结合服务器类型选择对应版本:
1.2 环境检查
硬件环境要求
用户应根据 DM 及应用系统的需求来选择合适的硬件配置,如 CPU 的指标、内存及磁盘容量等。档次一般应尽可能高一些,尤其是作为数据库服务器的机器,基于 Java 的程序运行时最好有较大的内存。其它设备如 UPS 等在重要应用中也应考虑。下面给出安装 DM 所需的硬件基本配置:
名称 | 要求 |
---|---|
CPU | Intel Pentium4(建议 Pentium 41.6G 以上)处理器 |
内存 | 256M(建议 512M 以上) |
硬盘 | 5G 以上可用空间 |
网卡 | 10M 以上支持 TCP/IP 协议的网卡 |
光驱 | 32 倍速以上光驱 |
软件环境要求
名称 | 要求 |
---|---|
操作系统 | Windows(简体中文服务器版 sp2 以上)/Linux(glibc2.3 以上,内核 2.6,已安装 KDE/GNOME 桌面环境,建议预先安装 UnixODBC 组件) |
网络协议 | TCP/IP |
系统盘 | 至少 1G 以上的剩余空间 |
检查 Linux(Unix)系统信息
如果用户的 DM 软件安装包是经过数字签名的,请参照以下步骤进行操作,其他情况请忽略此步骤。
软件安装包的数字签名校验:
导入达梦公司的公钥,命令如下:
代码语言:javascript复制gpg --import dm-pub-key
代码语言:javascript复制
将达梦公司的公钥添加到绝对信任列表:
代码语言:javascript复制gpg --edit-key 武汉达梦数据库有限公司 trust
代码语言:javascript复制
验证达梦安装包的数字签名
代码语言:javascript复制gpg --verify dm.sign dm8_setup_xxx.iso
代码语言:javascript复制
输出结果是“完好的签名”(“Good Signature”)则表示安装包文件完好无损。
用户在安装 DM 前,需要检查当前操作系统的相关信息,确认 DM 安装程序与当前操作系统匹配,以保证 DM 能够正确安装和运行。用户可以使用以下命令检查操作系统基本信息。如下图所示:
获取系统位数:getconf LONG_BIT
查询操作系统release信息:lsb_release -a
查询系统信息:cat /etc/issue
查询系统名称:uname -a
1.3 创建安装用户
为了减少对操作系统的影响,用户不应该以 root 系统用户来安装和运行 DM。用户可以在安装之前为 DM 创建一个专用的系统用户。
创建安装用户组 dinstall
代码语言:javascript复制groupadd -g 12349 dinstall
代码语言:javascript复制
创建安装用户 dmdba
代码语言:javascript复制useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
代码语言:javascript复制
初始化用户密码
代码语言:javascript复制passwd dmdba
代码语言:javascript复制
注意:创建安装系统用户完成后,安装手册之后的操作默认使用安装系统用户进行操作。
1.4 Linux(Unix)下检查操作系统限制
运行 ulimit -a 进行查询
参数使用限制:
data seg size
代码语言:javascript复制data seg size (kbytes, -d)
建议用户设置为 1048576(即 1GB)以上或 unlimited(无限制),此参数过小将导致数据库启动失败。
file size
代码语言:javascript复制file size(blocks, -f)
建议用户设置为 unlimited(无限制),此参数过小将导致数据库安装或初始化失败。
open files
代码语言:javascript复制open files(-n)
建议用户设置为 65536 以上或 unlimited(无限制)。
virtual memory
代码语言:javascript复制virtual memory (kbytes, -v)
建议用户设置为 1048576(即 1GB)以上或 unlimited(无限制),此参数过小将导致数据库启动失败。
如果用户需要为当前安装用户更改 ulimit 的资源限制,请修改文件/etc/security/limits.conf。
1.5 检查系统内存与存储空间
检查内存
为了保证 DM 的正确安装和运行,要尽量保证操作系统至少 1GB 的可用内存(RAM)。如果可用内存过少,可能导致 DM 安装或启动失败。用户可以使用以下命令检查操作内存:
代码语言:javascript复制获取内存总大小
代码语言:javascript复制grep MemTotal /proc/meminfo
代码语言:javascript复制获取交换分区大小
代码语言:javascript复制grep SwapTotal /proc/meminfo
代码语言:javascript复制获取内存使用详情
代码语言:javascript复制free
代码语言:javascript复制
1.6 .检查存储空间
DM 完全安装需要 1GB 的存储空间
代码语言:javascript复制查询目录/mount_point/dir_name可用空间
代码语言:javascript复制df -h /data/dm
代码语言:javascript复制
DM 安装程序在安装时将产生临时文件,临时文件需要 1GB 的存储空间,临时文件目录默认为**/tmp**。用户可以使用以下命令检查存储空间。如下图所示:
如果/tmp 目录不能保证 1GB 的存储空间,用户可以扩展/tmp 目录存储空间或者通过设置环境变量 DM_INSTALL_TMPDIR 指定安装程序的临时目录。具体命令如下所示:
代码语言:javascript复制mkdir -p /data/dm/dminstall
DM_INSTALL_TMPDIR=/data/dm/dminstall
export DM_INSTALL_TMPDIR
1.7 检查 NUMA
操作步骤
步骤 1: 以 root 用户登陆。
步骤 2: 检查操作系统版本。
代码语言:javascript复制# numastat
# numactl --hardware
步骤 3: 查看 CPU。
代码语言:javascript复制# lscpu
步骤 4: 关闭 NUMA。
代码语言:javascript复制# vi /etc/default/grub
在 GRUB_CMDLINE_LINUX 参数的末尾增加 :numa=off
代码语言:javascript复制# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root
rd.lvm.lv=centos/swap rhgb quiet transparent_hugepage=never numa=off "
GRUB_DISABLE_RECOVERY="true"
步骤 5: 重置 grub 配置文件。
代码语言:javascript复制# grub2-mkconfig -o /boot/grub2/grub.cfg
步骤 6: 重启操作系统。
代码语言:javascript复制# reboot
1.7 检查 SELinux
操作步骤
步骤 1: 以 root 用户登陆。
步骤 2: 检查操作系统 selinux。
代码语言:javascript复制# vi /etc/selinux/config
# SELINUX=disabled
步骤 3: 生效。
代码语言:javascript复制# etenforce 0
1.8 检查 Transparent HugePages
步骤 1: 以 root 用户登陆。
步骤2:检查是否开启 TH。
代码语言:javascript复制# grep AnonHugePages /proc/meminfo
# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
# cat /sys/kernel/mm/redhat_transparent_hugepage/defrag
步骤 3: 关闭透明大页。
代码语言:javascript复制# grubby --update-kernel=ALL --args="transparent_hugepage=never"
步骤 4: 重启服务器。
1.9 检查 sysctl.conf
操作步骤
步骤 1: 以 root 用户登陆。
步骤 2: 检查操作系统版本。
# vi /etc/sysctl.conf
代码语言:javascript复制fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576vm.swappiness = 0
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
参考参数:
# kernel.shmall = _PHYS_PAGES / 2 # See Shared Memory Pages
kernel.shmall = 197951838
# kernel.shmmax = kernel.shmall * PAGE_SIZE
kernel.shmmax = 810810728448
kernel.shmmni = 4096
vm.overcommit_memory = 2 # See Segment Host Memory 确定可以为进程分配多少内
存
vm.overcommit_ratio = 95 # See Segment Host Memory 用于应用程序进程的 RAM 的
百分比,其余部分保留给操作系统。在 Red Hat Enterprise Linux 上,默认值为 50
net.ipv4.ip_local_port_range = 10000 65535 # See Port Settings
kernel.sem = 500 2048000 200 4096
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.swappiness = 10
vm.zone_reclaim_mode = 0
vm.dirty_expire_centisecs = 500vm.dirty_writeback_centisecs = 100
#more than 64GB of memory
vm.dirty_background_ratio = 0
vm.dirty_ratio = 0
vm.dirty_background_bytes = 1610612736 #1.5GB
vm.dirty_bytes = 4294967296 # 4GB
#64GB of memory or less
vm.dirty_background_ratio = 3
vm.dirty_ratio = 10
计算方式:
代码语言:javascript复制kernel.shmall = ( _PHYS_PAGES / 2)
kernel.shmmax = ( _PHYS_PAGES / 2) * PAGE_SIZE
echo $(expr $(getconf _PHYS_PAGES) / 2)
echo $(expr $(getconf _PHYS_PAGES) / 2 * $(getconf PAGE_SIZE))
步骤 3: 生效。
代码语言:javascript复制# sysctl -p
1.10 检查 limit.conf
操作步骤
步骤 1: 以 root 用户登陆。
步骤 2: 修改配置文件。
代码语言:javascript复制# vi /etc/security/limits.conf
* soft nproc 65536
* hard nproc 65536
* soft nofile 65536
* hard nofile 65536
dmdba soft nofile 4096
dmdba hard nofile 65536
2. 部署Dm8(开发版)
2.1 执行软件安装
步骤1:安装包准备
代码语言:javascript复制mkdir -p /data/dm/dm_iso
unzip dm8_20231011_x86_rh6_64.zip
mount dm8_20231011_x86_rh6_64.iso dm_iso
2.2 命令行安装
步骤1:选择安装语言
步骤2:是否输入Key文件路径
步骤3:是否设置时区
步骤4:安装类型选择:选择自定义安装
步骤5:选择安装目录
步骤6:安装过程
步骤7:使用root命令执行脚本
2.3 创建数据库
使用dminit 工具创建数据库,数据页 PAGE_SIZE 大小为 16 K,默认的数据库名为 db_name=DAMENG
cd /data/dm/dmdbms/bin
./dminit PATH=/data/dm/dmdbms PAGE_SIZE=16
2.4 创建服务
cd /data/dm/dmdbms/script/root
./dm_service_installer.sh -t dmserver -dm_ini /data/dm/dmdbms/DAMENG/dm.ini -p DMSERVER
2.5 启动数据库
systemctl start DmServiceDMSERVER
3. 兼容性参数修改
修改参数文件,部分兼容MySQL
修改/data/dm/dmdbms/DAMENG/dm.ini文件
完成后重启数据库。
注:本文档参考官方手册进行整理,如有错误欢迎沟通交流