CentOS 7环境下DM8数据库的安装与配置

一、环境准备

首先,确保你的系统已经安装了CentOS 7,并且具有足够的磁盘空间和内存来支持DM8数据库的运行。此外,你还需要具备管理员权限,以便进行后续的安装和配置操作。

二、下载DM8安装包

访问达梦数据库官方网站,下载适用于CentOS 7的DM8安装包。你可以根据自己的需求选择合适的版本和安装包格式。下载完成后,将安装包传输到你的CentOS 7服务器上。

 **https://eco.dameng.com/download/**下载X86平台的dm8安装包,具有一年的试用期

 

2.1新建dmdba用户

(1)创建用户所在的组:groupadd dinstall
(2)创建用户:useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
(3)修改用户密码:passwd dmdba

2.2新建安装目录,并修改目录权限:

mkdir /dm8
mkdir -p /dm8/dmdata
mkdir -p /dm8/dmarch
mkdir -p /dm8/dmbak
mkdir -p /home/dmdba/dmsoft
mkdir -p /home/dmdba/dmdbms
chown dmdbaLdinstall -R /home/dmdba/
chown dmdba:dinstall -R /dm8/
chmod -R 755 /home/dmdba/
chmod -R 755 /dm8

2.3上传安装包至服务器

利用ftp或winscp工具上传安装包至/home/dmdba/dmsoft下:

2.4.安装目录磁盘管理

(1)创建pv
[root@centos7 ~]# pvcreate /dev/sdb
(2)创建vg
[root@centos7 ~]# vgcreate vg_dm /dev/sdb

(3)创建lv

[root@centos7 ~]# lvcreate -L 30G -n lv_dmdata vg_dm
[root@centos7 ~]# lvcreate -L 10G -n lv_dmarch vg_dm
[root@centos7 ~]# lvcreate -L 9.9G -n lv_dmbak vg_dm

(4)格式化逻辑卷LV

mkfs.ext4 /dev/mapper/vg_dm-lv_dmdata
mkfs.ext4 /dev/mapper/vg_dm-lv_dmbak
mkfs.ext4 /dev/mapper/vg_dm-lv_dmarch

(5)挂载安装目录:

mount /dev/vg_dm/lv_dmdata /dm8/dmdata
mount /dev/vg_dm/lv_dmarch /dm8/dmarch
mount /dev/vg_dm/lv_dmbak /dm8/dmbak

挂载后的目录:

 (6)设置/etc/fstab
vi /etc/fstab:
末尾加上这三行:

/dev/vg_dm/lv_dmdata /dm8/dmdata ext4 defaults 0 0
/dev/vg_dm/lv_dmarch /dm8/dmarch ext4 defaults 0 0
/dev/vg_dm/lv_dmbak /dm8/dmbak ext4 defaults 0 0

注意:/etc/fstab描述一定要正确,否则启动无法完成
2.5修改资源限制:
使用 vi 编辑器打开 /etc/security/limits.conf 文件,命令如下:
vi /etc/security/limits.conf
在最后添加四条语句,需添加的语句如下:

dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba hard nofile 65536
dmdba soft nofile 65536
dmdba hard stack 32768
dmdba soft stack 16384

该参数文件需要重启生效,reboot生效

参数说明:
core - 限制内核文件的大小(KB)
nproc 对每个用户创建的进程数的限制,默认的很小,泄露的时候多
nofile-一个进程能打开的文件数
stack堆大小,堆-存放变量的位置
重启后验证limit参数:
su - dmdba
ulimit -a

 

2.6.关闭防火墙和禁用SELINUX

2.7禁用透明大页:
(1)编辑/etc/sysconfig/grub文件,在GRUB_CMDLINE_LINUX那一行后面追加
transparent_hugepage=never

(2)再使用grub2-mkconfig生成grub.cfg配置文件。

grub2-mkconfig -o /boot/grub2/grub.cfg

(3)重启系统使配置生效。

reboot

(4)查看重启后,是否生效

cat /sys/kernel/mm/transparent_hugepage/enabled

2.8 挂载镜像,进行安装配置:
将上传的ISO文件,并挂载镜像

三.安装数据库:
3.1 启动命令行安装程序:
切换至 dmdba 用户下,在 /mnt 目录下使用命令行安装数据库程序,依次执行以下命令安装 DM 数据库。

su - dmdba
cd /mnt/
./DMInstall.bin -i

说明:–图形化安装方法
用当前用户执行 xhost +,切换到 dmdba 用户,执行 export DISPLAY=:0,再执行 xhost +命令
2.2安装步骤:
需求选择安装语言,默认为中文。
本地安装选择【不输入 Key 文件】,
选择【默认时区 21】。

 安装类型选择:【典型安装】
安装目录选择:【home/dmdata/dmdbms】
注意:该目录不为空,默认为/home/dmdba/dmdbms
是否确认安装:【y】
安装小结,是否确认安装:【y】

3.3安装完成后root执行命令:

/home/dmdba/dmdbms/script/root/root_installer.sh

需要root下创建 DmAPService,否则会影响数据库备份

 

四.安装数据库实例:
4.1设置环境变量:
su - dmdba
vi ~/.bash_profile

#添加如下三行
export DM_HOME="/home/dmdba/dmdbms"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DM_HOME/bin"
export PATH=”$PATH:$DM_HOME/bin:$DM_HOME/tool”

保存后,使环境变量生效:
source ~/.bash_profile
4.2初始化数据库实例:
其它参数默认,如需更改其它参数,请参考《dminit使用手册》

 在dmdba用户下执行以下命令:

cd /home/dmdba/dmdbms/bin
./dminit path=/dm8/dmdata PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DMDB INSTANCE_NAME=DBSERVER PORT_NUM=5237

4.3设置慢日志:
达梦数据库sql日志记录的内容主要由实例数据存放目录下的sqllog.ini配置文件决定,默认情况下达梦数据库不开启sql日志记录。修改该配置文件后,并且开启日志记录,可以达到控制达梦数据库sql日志记录我们想要的sql执行过程信息,比如记录执行计划时间超过1s以上的慢查询,有助于我们对数据库慢查询、操作语句进行重点优化。

su - dmdba
mkdir -p /home/dmdba/dmdbms/log/slog
cd /dm8/dmdata/DMDB/

配置sqllog.ini文件:

vi /dm8/dmdata/DMDB/sqllog.ini
BUF_TOTAL_SIZE = 10240
BUF_SIZE = 1024
BUF_KEEP_CNT = 6
[SLOG_ALL]
FILE_PATH = /home/dmdba/dmdbms/log/slog
PART_STOR = 1
SWITCH_MODE = 2
SWITCH_LIMIT = 512
ASYNC_FLUSH = 1
FILE_NUM = 20
ITEMS = 0
SQL_TRACE_MASK = 2:3:25
MIN_EXEC_TIME = 1500
USER_MODE = 0
USERS =

4.4注册数据库服务:
注册服务需使用 root 用户进行注册。使用 root 用户进入数据库安装目录的 /script/root下:
cd /home/dmdba/dmdbms/script/root
注册服务,如下所示:
./dm_service_installer.sh -t dmserver -dm_ini /dm8/dmdata/DMDB/dm.ini -p DMSERVER

3.5启动数据库服务:
服务注册成功后,启动数据库,

systemctl start DmServiceDMSERVER.service

查看数据库服务状态:

systemctl status DmServiceDMSERVER.service

如图所示,数据库服务启动成功:

 

相关启停命令:
停止数据库:

systemctl stop DmServiceDMSERVER.service

重启数据库:

systemctl restart DmServiceDMSERVER.service

4.6验证数据库实例是否启动:

[root@centos7 dmdba]# su - dmdba
Last login: Wed Apr 12 14:39:33 CST 2023 on pts/1
[dmdba@centos7 ~]$ cd /home/dmdba/dmdbms/bin
[dmdba@centos7 bin]$ ./disql SYSDBA/'"SYSDBA"'@localhost:5237

检查实例状态:

SQL> select name,instance_name,status$,start_time from v$instance;

4.7开启数据库慢sql日志记录:

SQL>sp_set_para_value(1,'SVR_LOG',1);

执行后立即生效

五.数据库标准化配置
5.1执行数据库调优脚本:
本工具适用于各种版本的DM7数据库和DM8数据库,在DM7运行前需要修改脚本内容,详见使用手册

1)根据数据库服务器cpu核数和物理内存大小调整脚本中v_mem_mb(数据库服务器物理内存大小)与v_cpus(数据库服务器cpu核数)值

 

图:修改后样例
2)将修改后的优化脚本使用disql或管理工具执行
使用disql执行优化脚本的操作如下:
【dmdba用户】
#1.在数据库服务器dmdba用户家目录下新建文件AutoParaAdj.sql
$ vi /home/dmdba/AutoParaAdj.sql
#拷贝修改后的优化脚本,并保存
#2.使用disql工具以SYSDBA用户进行登录
$ ./disql SYSDBA/SYSDBA@IP:端口

服务器[127.0.0.1:5236]:处于普通打开状态
登录使用时间 : 3.157(ms)
disql V8
SQL> set serveroutput on
SQL> start /home/dmdba/AutoParaAdj.sql

 #3.拷贝优化脚本的输出结果

#4.执行拷贝的输出结果

5.2开启数据库归档

alter database mount;
alter database add archivelog'dest=/dm8/dmarch ,TYPE=local,FILE_SIZE=1024,SPACE_LIMIT=10240';
alter database archivelog;
alter database open;

 5.3建立备份作业
5.3.1开启代理作业:
SP_INIT_JOB_SYS(1);
5.3.2每天全量备份:

call SP_CREATE_JOB('JOB_FULL_BAK_TIMELY',1,0,'',0,0,'',0,'定时全量备份');
call SP_JOB_CONFIG_START('JOB_FULL_BAK_TIMELY');

--设置备份job的路径
call SP_ADD_JOB_STEP('JOB_FULL_BAK_TIMELY', 'FULL_BAK', 6, '01000000/dm8/dmbak', 0, 0, 0, 0, NULL, 0);
--备份job执行的时间,从此时刻每天开始全备:
call SP_ADD_JOB_SCHEDULE('JOB_FULL_BAK_TIMELY', 'FULL_BAK', 1, 1, 1, 0, 0, '01:05:29', NULL, '2023-4-12 17:10:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB_FULL_BAK_TIMELY');
4.3.3删除3天前的备份文件
call SP_CREATE_JOB('JOB_DEL_BAK_TIMELY',1,0,'',0,0,'',0,'定时删除备份');
call SP_JOB_CONFIG_START('JOB_DEL_BAK_TIMELY');
call SP_ADD_JOB_STEP('JOB_DEL_BAK_TIMELY', 'STEP_DEL_BAK', 0, 'SP_DB_BAKSET_REMOVE_BATCH(NULL,SYSDATE-3);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB_DEL_BAK_TIMELY', 'SCHEDULE_DEL_BAK', 1, 1, 1, 0, 0, '00:05:56', NULL, '2022-06-02 21:05:57', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB_DEL_BAK_TIMELY');

至此,DM数据库安装完成!

达梦云适配技术社区
https://eco.dameng.com/document/dm/zh-cn/start/install-dm-linux-prepare.html