暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

从零开始学习DM之Linxu搭建单机DM8

原创 BinGoSTop 2025-05-08
274

Linxu搭建单机DM8

1 软件下载

官网地址:https://eco.dameng.com/download/

本次下载版本dm8_20250122_x86_rh7_64.zip

2 安装前环境检查及修改

2.1、CPU检查:lscpu

Architecture: x86_64

CPU op-mode(s): 32-bit, 64-bit

2.2、内存检查:free -m

内存 1g 以上

2.3、硬盘及空间检查:fdisk -l 、df -h

/tmp 要求2g 以上。

2.4、查看防火墙状态

1. 查看防火墙状态。

systemctl status firewalld

2. 暂时关闭防火墙。

systemctl stop firewalld

3. 永久关闭防火墙,防止自启动。

systemctl disable firewalld

4. 查看防火墙端口开放情况。

firewall-cmd --zone=public --list-ports

5. 添加端口到防火墙(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

注意:添加端口到防火墙时,使用 --permanent 后才能永久生效,否则重启后失效。

2.5、检查内核:uname -ar

内核要求2.6以上

2.6、服务器时间是否正确、是否有时钟同步服务:date

2.7、关闭numa检查

关闭的意义:

NUMA(Non-Uniform Memory Access)架构是为了解决多 CPU 下内存访问冲突,即不再将整个物理内存作为一个整体,而是根据不同的 CPU区分不同的内存块,如 2 颗 CPU 每颗 CPU 使用 64G 内存。当 NUMA 参数 zone_reclaim_mode 设置为 1 时,内核将要求多路 CPU 尽量从距离较近的系统内存节点(服务器的整体内存在 numa 架构下将被分成若干个节点)分配内存,而不是在整个服务器可访问内存的范围内进行内存分配。因此,在较高内存占用压力下,内存申请会触发内存频繁回收整理的机制,严重影响系统整体性能(长期处于内核态 sys 很高),进而可能导致 SQL卡顿问题的发生。

vi /etc/default/grub 如下图所示加上:numa=off

重新生成/etc/grub2.cfg配置文件。然后重启

grub2-mkconfig -o /etc/grub2.cfg

reboot

重启后确认

dmesg | grep -i numa

再次确认

cat /proc/cmdline

2.8、关闭透明大页

编辑/etc/sysconfig/grub 文件,在 GRUB_CMDLINE_LINUX 那一行后面追加 transparent_hugepage=never。

重新生成/etc/grub2.cfg配置文件。然后重启

grub2-mkconfig -o /etc/grub2.cfg

reboot

重启后查看是否生效

cat  /sys/kernel/mm/transparent_hugepage/enabled

2.9、SELinux检查

查看状态:getenforce Permissive

临时关闭:setenforce 0

临时开启:setenforce 1

永久关闭 SELinux 需修改配置文件:/etc/selinux/config,修改 SELINUX=disabled

2.10、调整system.conf 参数

system.conf 为系统和服务管理的配置文件,当运行系统实例时,systemd 将读取这个配置文件system.conf,相反读取user.conf。

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

1.DefaultLimitNOFILE:用户默认最大打开文件数。

2.DefaultLimitNPROC:用户默认最大进程数。

vi /etc/systemd/system.conf

DefaultLimitNOFILE=65536

DefaultLimitNPROC=10240

reboot – 重启后生效

2.11、sysctl.conf参数调整

为避免操作系统内存因大量使用SWAP内存而降低数据库性能,在安装部署时需检查设置相关变量来控制系统对swap的使用倾向,从而使系统最大限度发挥内存性能。swappiness的取值范围为1~100,当操作系统内存不足时,建议设置为1;当系统内存足够时,推荐设置为10。

– 查看你的系统里面的swappiness参数值

cat /proc/sys/vm/swappiness

– 永久修改:

vi /etc/sysctl.conf

– 在这个文件的最后加上这样一行:

vm.swappiness=10

2.12、core文件修改

core文件大小和数据库已使用内存基本相当,配置路径所在存储空间大小需满足core文件生成,建议大于服务器内存值。core文件剩余空间低于物理总内存80%,进行检查和清理core文件存放空间。

调整core文件路径

vi /etc/sysctl.conf 添加对应core文件参数

kernel.core_pattern =/dmdata/core/core-%e-%p-%s

执行 sysctl -p 进行生效

– 手动产生core文件,并查看core文件路径是否在/home/dmdba/core下

– 注意:core频繁发生可能会撑爆磁盘,建议对core生成目录设置清理策略,保证目录可用。

1.在bin目录下,执行./disql命令,打开disql工具。同时,在另一会话中,执行ps -ef|grep disql 查看disql进程号,执行kill -11 disql进程号,即可杀死disql进程,并生成core文件。

2.或者在问题报告单中查找对应版本的bug,利用bug验证core文件生成。

2.13、关闭swap分区

临时关闭 swap 分区,重启后失效

swapoff -a

永久关闭 swap 分区

vi /etc/fstab

注释掉swap分区那一行

sed -ri ‘s/.*swap.*/#&/’ /etc/fstab

重启操作系统后生效

[root@~]# reboot

再次确认[root@~]# free -m

2.14、查看挂在盘

[root@bingo ~]# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

sda 8:0 0 20G 0 disk

├─sda1 8:1 0 1G 0 part /boot

└─sda2 8:2 0 19G 0 part

├─centos-root 253:0 0 17G 0 lvm /

└─centos-swap 253:1 0 2G 0 lvm [SWAP]

sr0 11:0 1 70.7M 0 rom /mnt/cdrom

2.15、查看对应的调度算法

cat /sys/block/{DEVICE-NAME}/queue/scheduler,注意把{DEVICE-NAME}替换成数据库所使用的对应的磁盘名称。

[root@bingo ~]# cat /sys/block/sda/queue/scheduler

noop [deadline] cfq

 noop‌:适用于高负载环境,减少磁盘寻道时间,提高I/O性能。

 ‌deadline‌:适用于大多数场景,提供较好的平衡性能和公平性。

 ‌cfq‌:适用于多用户系统,确保公平分配I/O资源。

临地更改I/O调度方法,重启后失效:

echo deadline > /sys/block/sda/queue/scheduler

永久地更改I/O调度方法:

grubby --update-kernel=ALL --args=“elevator=deadline”

2.16、修改文件打开最大数

[root@bingo ~]# vim /etc/security/limits.conf

[root@bingo ~]# cat /etc/security/limits.conf |grep -v ^#

在文件最后添加以下内容,重启后生效。

dmdba soft data unlimited

dmdba hard data unlimited

dmdba soft fsize unlimited

dmdba hard fsize unlimited

dmdba soft nproc 10240

dmdba hard nproc 10240

dmdba soft nofile 65536

dmdba hard nofile 65536

dmdba soft core unlimited

dmdba hard core unlimited

dmdba soft nice 0

dmdba hard nice 0

dmdba soft as unlimited

dmdba hard as unlimited

dmdba soft memlock unlimited

dmdba hard memlock unlimite

2.17、用户、组创建

groupadd dinstall -g 1001

useradd -g dinstall -m -d /home/dmdba -s /bin/bash -u 1001 dmdba

passwd dmdma

2.18、规划安装目录

可根据实际需求规划安装目录。

mkdir -p /dmdata/core

##实例保存目录

mkdir -p /dmdata/data

##归档保存目录

mkdir -p /dmdata/arch

##备份保存目录

mkdir -p /dmdata/dmbak

##日志目录

mkdir -p /dmdata/log

修改目录权限

chown -R dmdba:dinstall /dmdata/core

chown -R dmdba:dinstall /dmdata/data

chown -R dmdba:dinstall /dmdata/arch

chown -R dmdba:dinstall /dmdata/dmbak

chown -R dmdba:dinstall /dmdata/log

2.19、依赖及运维包安装

yum -y install tar unzip perf gdb nmon pstack iotop unixODBC telnet netstat ethtool unixODBC-devel sysstat strace nc net-tools libaio libaio-devel tcpdump traceroute java vim

3 数据库安装

3.1、解压得到IOS文件

unzip dm8_20250122_x86_rh7_64.zip

3.2、挂载镜像

mount -o loop dm8_20250122_x86_rh7_64.iso /mnt

3.3、数据库安装

[root@bingo ~]# su - dmdba

[root@bingo ~]# su - dmdba

[dmdba@bingo ~]$ cd /mnt

[dmdba@bingo mnt]$ ./DMInstall.bin -i

4 配置实例

4.1、配置环境变量

[dmdba@bingo ~]$ vim .bash_profile

添加 export PATH=PATH:PATH:DM_HOME/bin:$DM_HOME/tool

应用环境变量

source .bash_profile

4.2、初始化实例

su - dmdba

cd /home/dmdba/dmdbms/bin

可用help查看参数

./dminit help

需要注意的是

页大小 (page_size)

簇大小 (extent_size)

大小写敏感 (case_sensitive)

字符集 (charset)

空格填充模式 (BLANK_PAD_MODE)

页检查模式(PAGE CHECK)

等部分参数,一旦确定无法修改,在初始化实例时确认需求后谨慎设置。

可以使用默认参数初始化实例

./dminit path=/dmdata/data

需要给 SYSDBA和 SYSAUDITOR 设置密码

部分参数解释如下:

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。可选参数。在数据库创建成功后无法修改。

本次使用:

./dminit path=/dmdata/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DMTEST INSTANCE_NAME=DBSERVER PORT_NUM=5236 SYSDBA_PWD=DMdbatest1 SYSAUDITOR_PWD=DMauditortest1

5 注册服务

注册服务脚本为 dm_service_installer.sh,用户可以使用注册服务脚本将服务脚本注册成为操作系统服务。注册服务需使用 root 用户进行注册,使用 root 用户进入数据库安装目录的 /script/root 下

[root@bingo ~]# cd /home/dmdba/dmdbms/script/root/

[root@bingo root]# ./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DMTEST/dm.ini -p DMTEST

进入数据安装目录下 bin 目录中可以看到已经注册好的服务 DmServiceDMTEST。

cd /home/dmdba/dmdbms/bin

ls

6 数据库启停

cd /home/dmdba/dmdbms/bin

./DmServiceDMTEST start

./DmServiceDMTEST stop、restart、status

7 数据库登录

disql sysdba/DMdbatest1

disql sysdba/DMdbatest1@192.168.157.11:5236

disql sysdba/DMdbatest1@DMTEST

……

关于达梦数据库更多的相关问题请浏览达梦云适配技术社区

达梦云适配技术社区

https://eco.dameng.com/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论