国产数据库达梦Dm8部署

2023-11-01 19:49:50 浏览数 (1)

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文件

完成后重启数据库。

注:本文档参考官方手册进行整理,如有错误欢迎沟通交流

0 人点赞