达梦数据库安装部署的规范

达梦数据库安装部署小记

在起初学习达梦数据库安装部署前,认为安装好数据库,创建好实例就可以正常使用了,但并非如此,安装一套完整的数据库,需要从服务器的环境准备、资源规划、安装包准备、目录规划、安装部署、创建实例、重启验证等方面进行规划部署。以linux环境以例,下面我将详细介绍整个部署的过程。

安装前,首先需要确认安装部署的环境情况
一、安装前准备工作
1.1 检查 Linux 系统信息
通过命令行方式,确认linux环境信息,在达梦官网下载达梦数据库对应的安装包。
1.获取系统位数

getconf LONG_BIT

2.查看操作系统信息

cat /etc/*lease*

3.查看具体系统名称

uname -a

4.查看GLIBC的版本

ldd --version

在这里插入图片描述

1.2 检查防火墙和selinux是否关闭

检查防火墙是否关闭,若没正常关闭则需要手动关闭,并设置禁止防火墙开机自启动。(会影响外部应用连接和外部管理工具连接问题)

–检查防火墙情况–

systemctl status firewalld    *#查看防火墙状态*
systemctl stop firewalld      *#关闭防火墙*
systemctl disable firewalld   *#禁止防火墙开机自启动*

–检查selinux情况–

sestatus     *#查看selinux情况*
vim /etc/sysconfig/selinux
把selinux=enforcing修改成selinux=disbaled  *#禁止selinux开机自启动*

1.3 检查磁盘挂载信息
如果部署的环境存在单独的数据盘,可以对数据盘进行格式化并且挂载到对应的目录下,设置开机自动挂载等操作,操作如下:

fdisk -l 或者lsblk -a    *#查看所有磁盘及磁盘挂载情况*
df -h                   *#查看已挂载的情况*

通常会单独分配一块盘或者几块盘专门给达梦数据库使用,如果发现fdisk -l或者lsblk -a的结果中有盘没有挂载使用,那么未挂载的盘多半是用来给达梦数据库使用的,则创建目录然后挂载此磁盘。

以未挂载的盘/dev/vdb为例,以下方法未采用lvm逻辑卷方式。如果需要做逻辑卷可以参考逻辑卷的方法执行。

mkdir /dmdata          *#创建达梦数据库的数据目录*
mount /dev/vdb /dmdata *#把磁盘/dev/vdb挂载到目录/dmdata

若此时报错超级块可能损坏等信息,则一般是此盘还没有格式化,实际上从lsblk -a的结果中也能看到,则还需要格式化一下。*

mkfs.ext4 /dev/vdb     *#把磁盘格式化为ext4格式*
mkfs.xfs /dev/vdb      *#把磁盘格式化为xfs格式*

两种格式任选一种,一般数据盘的格式和系统盘的格式保持一致就可以。

df -hT              *#查看系统盘格式*
lsblk -f            *#查看/dev/vdb的UUID*
vim /etc/fstab      *#将vdb磁盘挂载加入到开机自启动*

添加以下内容

UUID=xxxxx /dmdata  xfs   defaults  0 0
或者
UUID=xxxxx /dmdata  ext4  defaults  0 0

保存退出,具体添加哪种就看前面mkfs步骤中格式化的是哪种格式。
若数据盘已挂载则不需要再去操作挂载,但还是要注意看下在/etc/fstab中是否有加上数据盘开机自动挂载项,若没有则需要加上。

1.4 修改系统资源限制

在 Linux、Solaris、AIX 和 HP-UNIX 等系统中,操作系统默认会对程序使用操作系统资源进行限制。为了使达梦数据库能够正常运行, 建议用户对ulimit 的参数进行设置。

vi /etc/security/limits.conf #增加如下内容
dmdba soft nproc 10240
dmdba hard nproc 10240
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft core unlimited
若是国产arm架构,还需要执行以下命令进行资源限制设置。
vi /etc/systemd/system.conf #增加如下内容,需要重启服务器生效
DefaultLimitCORE=infinity
DefaultLimitNOFILE=65536
DefaultLimitNPROC=65536

1.5 配置core文件信息

大部分的国产环境中对于core文件的生成一般有2G的大小限制,在出现数据库异常时,会导致无法生成完整的core文件,这样就无法分析出具体的问题原因,我们需要对core文件的大小和生成路径做相应的调整。

1.调整core文件大小

vi /etc/systemd/coredump.conf

添加如下内容:(以下设置大小不能超过服务器的内存总大小)

ProcessSizeMax=200G
ExternalSizeMax=200G
JournalSizeMax=200G

添加完成后,保存
执行systemctl daemon-reload生效

2.调整CORE的生成路径
1)建立core文件路径

mkdir -p /dmdata/core_path

2)编辑/etc/sysctl.conf文件

vi /etc/sysctl.conf	
增加两行 
kernel.core_pattern = /dmdata/core_path/core_%e_%t.%p
kernel.core_uses_pid = 1

3)执行sysctl –p /etc/sysctl.conf生效

二、数据库安装

达梦数据库以前的版本可以直接在root下进行安装,但是现在最新的版本在安装过程中也做了限制,如果非dmdba用户情况下不能进行安装,所以必须要创建达梦的用户及用户组。

2.1 创建达梦用户和组

groupadd dinstall  #添加用户组
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba  #添加用户
echo 'xxxx' | passwd --stdin dmdba    #修改dmdba用户的密码,xxxx处换成dmdba用户修改的密码

备注说明:
useradd -g 组名称 用户名
-m 自动建立用户的登入目录
-d 指定用户登入时的指定目录
-s 指定用户登入后使用的shell

2.2 规划目录

安装数据库前,需要提前规划数据库的数据目录、归档目录、备份目录、日志目录等,并在安装过程中选择对应的目录。

mkdir -p /dmdata/dmdb #数据目录
mkdir -p /dmdata/dmarch/arch #归档目录
mkdir -p /dmdata/dmbak/bak #备份目录
mkdir -p /dmdata/dmlog/log #日志目录
chown -R dmdba:dinstall /dmdata #修改目录属主权限

2.3 安装包镜像挂载

创建镜像文件目录(dm8Iso),通过 SecureFX 将 dm8 的镜像文件包上传到服务器上。

1.创建挂载目录;

mkdir /home/dmdba/mnt 

2.执行挂载操作;

mount  /home/dmdba/dm8Iso/dm8_setup_rh6_ent_8.1.1.84_20200726.iso   /home/dmdba/mnt

其语法为:mount+镜像文件目录+挂载目录

3.进入挂载目录查看是否挂载成功

cd /mnt

4.列出目录下文件

ls -ltr

可以看到挂载目录下有 DMInstall.bin 和 DM_Install.pdf 两个文件,挂载成功。
在这里插入图片描述

2.4 软件安装

	安装达梦数据库软件,需要切换至安装的用户账户 dmdba 下执行(不建议使用 root 账户安装)

su - dmdba
1.授予 DMInstall.bin 执行权限;

chmod 755 /home/dmdba/mnt/DMInstall.bin 

2.通过命令行方式安装数据库,在可执行文件后面加“-i”;

./DMInstall.bin -i

备注:如果不加参数-i 就是图形化安装,这里不再介绍。

3.按照提示,选择安装语言,输入 Key 文件地址;
备注:可以暂时先不输入 Key 文件地址,后续再将 dm.key 文件放到安装目录的 bin 目录下。
在这里插入图片描述

4.选择时区(21为中国标准时间) 以及安装类型(一般选择典型安装,即同时安装客户端以及服务器端)
在这里插入图片描述

5.查看安装小结并确认;
在这里插入图片描述

6.安装完后,按照命令提示,切换至 root 用户执行语句
在这里插入图片描述
至此,数据库安装完成。

三、初始化数据库
3.1 初始化实例
根据用户实际的需求创建数据库的建库参数,但要注意PAGE_SIZE、EXTENT_SIZE、CASE_SENSITIVE、CHARSET这四个参数在初始化的时候就必须要规划好,因为一旦初始化完成后,这四个参数将不能再修改了,若想修改则只能再重新初始化一个新的实例。其他参数可在初始化完成后,通过修改安装目录下dm.ini文件中的参数进行修改。

注意:即使这些参数初始化的时候没有手动设置,初始化的时候系统也会给定一个默认的值,具体的可以通过命令./dminit help查看。

1.进入达梦安装bin 目录下,使用 dminit 工具初始化数据库;
查看 dminit 关键字
在这里插入图片描述path:初始数据库存放路径
page_size:页大小
extent_size:簇大小
case_sensitive:1代表大小写敏感(默认敏感),0代表大小写不敏感
charset/unicode_flag:字符集(默认是 0 代表 GB18030 ,1 为 UTF-8)
length_in_char:VARCHAR 类型长度是否以字符为单位(N),0 表示以字节为单位,1 表示以字符为单位。默认值为 0

其他参数可以查看安装目录doc下的《DM8_dminit使用手册》
注:尝试使用新版本安装时已经取消length_in_char这个参数。

例子:创建一个数据库实例为页大小32、簇大小32、大小写敏感、字符集UTF-8的库,数据库名DMDB,实例名DMDB,方法如下:
./dminit 参数名=参数值 参数名=参数值…

cd /home/dmdba/dmdbms/bin
./dminit path=/dmdata/dmdb  page_size=32 extent_size=32 case_sensitive=1 charset=1 db_name=DMDB instance_name=DMDB

2.启动一次数据库实例;
第一次创建完的数据库,需要前台启动一次数据库实例,否则无法正常运行;

./dmserver  /dmdata/dmdb/DMDB/dm.ini

当看到前台页面出现类似SYSTEM IS READY字样后,表示数据库启动成功,然后直接输入exit退出前台启动,此步骤是为了验证数据库服务是否正常

3.2 注册数据库服务
注册服务脚本为 dm_service_installer.sh ,用户可以使用注册服务脚 本将服务脚本注册成为操作系统服务。
(1)操作前,需要切换至 root 账户。
(2)找到注册脚本 dm_seivice_installer.sh 。(注册脚本和卸载脚本 都在安装目录的/script/root 文件夹下
(3)执行注册脚本命令。
在这里插入图片描述
注册脚本命令为:意思是注册类型为dmsever ,后缀名为DMSERVER的服务。
注册数据库实例服务
cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmserver -dm_ini /dmdata/dmdb/DMDB/dm.ini -p DMSERVER

注:-t 为服务类型,注册服务类型,支持以下服务类型:dmap、 dmamon  、 dmserver   、 dmwatcher  、 dmmonitor   、 dmasmsvr  、 dmcss 、dmcssm 、dmdrs 、dmdras 、dmdcs 、dmdss。
-p 为服务名后缀,指定服务名后缀,生成的操作系统服务名为“服务脚本模板名称+服务名后缀”。
-dm_ini 指定服务所需要的 dm.ini 文件路径。

3.3 启动数据库服务
注册数据库服务后,进入安装目录的 bin 文件下,通过服务脚本的方式启动达梦数据库服务。
1.进入安装目录的 bin 文件;

cd /home/dmdba/dmdbms/bin

2.启动数据库服务;

./DmServiceDMSERVER start

3.查看数据库服务状态;

./DmServiceDMSERVER status

在这里插入图片描述

四、数据库配置
4.1 扩充redolog
达梦数据库服务启动后,disql或者manager图形化工具连接,然后执行以下命令扩充redolog,注意根据实际情况修改SQL中的log名,如果不确认,先进入数据目录查看,比如初始化的实例数据目录为/dmdata/dmdb/DMDB/,则此目录下默认会有xx01.log和xx02.log的两个文件,这两个文件就是需要操作的redolog文件。

通过管理工具登录到SYSDBA用户下执行:
1.扩充当前日志

ALTER DATABASE RESIZE LOGFILE 'xx01.log' TO   2048;
ALTER DATABASE RESIZE LOGFILE 'xx02.log' TO   2048;

2.增加2个2G的日志文件

ALTER DATABASE ADD    LOGFILE 'xx03.log' SIZE 2048;
ALTER DATABASE ADD    LOGFILE 'xx04.log' SIZE 2048;

4.2 设置数据库的归档

设置数据库的归档,可以在数据丢失的情况下,通过备份文件和归档文件去基于指定时间还原数据库,并找回数库,这一步在生产上面一定要开启。

通过disql或者管理工具连接数据库,然后执行以下命令:
示例:配置单个归档文件大小为512M,归档日志空间上限上500G(512000M),归档文件存放目录为/dmdata/dmarch/arch,这些都可根据自己实际规划的大小和路径进行自定义修改。

alter database mount;
alter database add archivelog 'dest=/dmdata/dmarch/arch,TYPE=local,FILE_SIZE=512,SPACE_LIMIT=512000';
alter database archivelog;
alter database open;

4.3 设置定时备份作业
设置每周六凌晨12点全量备份,每周除周六外,其他时间每天凌晨12点增量备份,每天凌晨12点定时运行删除30天前的全量和增量备份,注意修改脚本中的路径为实际规划好的备份文件的路径
方法一:如果能打开manager图形化管理工具,则直接复制框中的内容,执行;
方法二:若不能打开manager图形化管理工具,则可以disql连接用执行脚本的方式执行,具体方法如下:
找一个目录创建SQL脚本,比如touch /home/dmdba/dmdbms/bak.sql,修改脚本权限chown dmdba:dinstall bak.sql,把下面框中的内容全部复制然后填入到bak.sql脚本中,保存退出,然后disql连接数据库,执行start /home/dmdba/dmdbms/bak.sql,这样定时备份和定时删除的作业就都创建好了
1.创建作业系统表;

SP_INIT_JOB_SYS(1);

2.定时每周六运行,进行全量备份;

call SP_CREATE_JOB('JOB_FULL_BAK_TIMELY',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('JOB_FULL_BAK_TIMELY');
call SP_ADD_JOB_STEP('JOB_FULL_BAK_TIMELY', '定时全量备份', 6, '01000000/dmdata/dmbak/bak', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB_FULL_BAK_TIMELY', 'JOB_FULL_BAK_TIMELY', 1, 2, 1, 64, 0, '00:00:08', NULL, '2020-07-07 12:06:08', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB_FULL_BAK_TIMELY');

3.定时每天运行,进行增量备份(晚上,周六除外);

call SP_CREATE_JOB('JOB_INCREMENT_BAK_TIMELY_NIGHT',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('JOB_INCREMENT_BAK_TIMELY_NIGHT');
call SP_ADD_JOB_STEP('JOB_INCREMENT_BAK_TIMELY_NIGHT', '定时增量备份', 6, '11000000/dmdata/dmbak/bak|/dmdata/dmbak/bak', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB_INCREMENT_BAK_TIMELY_NIGHT', 'JOB_INCREMENT_BAK_TIMELY_NIGHT', 1, 2, 1, 63, 0, '00:00:07', NULL, '2020-07-07 12:08:07', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB_INCREMENT_BAK_TIMELY_NIGHT');

4.定时每周日运行,删除前30天的备份,包括全量和增量;

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', '定时删除备份', 0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/dmdata/dmbak/bak'');
CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'',SYSDATE - 30);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB_DEL_BAK_TIMELY', 'JOB_DEL_BAK_TIMELY', 1, 1, 1, 0, 0, '00:10:10', NULL, '2020-07-07 12:13:10', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB_DEL_BAK_TIMELY');

4.4 做一次全库备份
达梦数据库的增量备份是基于全量备份进行执行,所以我们在第一搭建完成数据库之后,可以手动对数据库做一个物理的全库备份,这样可以确保第二天的增量备份文件顺利生成。
通过disql或者管理工具登录到SYSDBA系统管理员用户下,联机状态下做一个物理备份;

./disql SYSDBA/SYSDBA
backup database backupset ‘/dmdata/dmbak/bak’

执行完成后,进入到备份目录下确认备份文件生成,另外也可以通过达梦的dmrman校验备份的有效性,命令行如下:

RMAN>CHECK BACKUPSET '/home/dm_bak/FULL_BAK';

4.5 开启SQL日志(可选)
开启数据库的SQL日志,可以记录应用层面或者数据库层面执行的sql语句,如果空间足够可以设置打开SQL日志,若不需要则可以跳过此步。
1.通过修改sqllog.ini设置SQL日志的相关策略;
操作方法为修改sqllog.ini文件,里面没有的参数可以去掉,此处日志文件上限配置的是500G,即switch_limit * file_num / 1024 =500G,注意修改配置文件中的路径.

cd /dmdata/dmdb/DMDB/
vi sqllog.ini
BUF_TOTAL_SIZE         = 10240   
BUF_SIZE                = 1024          
BUF_KEEP_CNT           = 6          
[SLOG_ALL]
    FILE_PATH  =  /dmdata/dmlog/log
    PART_STOR  =  0
    SWITCH_MODE  =  2
    SWITCH_LIMIT  =  2000
    ASYNC_FLUSH  = 1
    FILE_NUM  =  256

2.sqllog.ini文件配置完成后,在命令行中调用存储过程开启监控;

CALL SP_REFRESH_SVR_LOG_CONFIG();
SP_SET_PARA_VALUE(1,'SVR_LOG',2);

3.若已配置,再次修改sqllog.ini文件后,则需要重新打开;

SP_SET_PARA_VALUE(1,'SVR_LOG',0);
CALL SP_REFRESH_SVR_LOG_CONFIG();
SP_SET_PARA_VALUE(1,'SVR_LOG',2);

五、重启服务器
数据库全部调整部署完成后,可以通过对数据库服务器执行一次reboot服务器重启的操作,主要是检查前面设置的相关配置是否生效,防火墙开机是否自动关闭、数据盘开启是否开机自动挂载、IP网卡是否自动开启、操作系统资源限制是否生效、数据库服务是否开机自动启动,数据库优化参数是否生效等。
1.查看防火墙策略开机自动关闭;
执行:systemctl status firewalld #查看防火墙状态

2.查看数据盘开机自动挂载;
执行linux命令:df -h #确认之前手动挂载的存储是否显示在执行的命令中

3.查看IP网卡开机自启;
执行linux命令:ifconfig或者ip r #查看业务ip地址是否存在

4.操作系统资源限制信息;
执行linux命令:ulimit -a #查看dmdba用户下对应的资源限制是否生效

5.查看数据库服务开机自动启动;
执行ps -ef| grep dmserver #查看数据库进程是否存在

6.查看数据库参数是否生效;
disql连接数据库,执行以下SQL检查优化的参数是否都已生效了

select * from v$dm_ini where para_name in ( 'MAX_OS_MEMORY','BUFFER','MAX_SESSIONS','ADAPTIVE_NPLN_FLAG','COMPATIBLE_MODE');

六、验证备份作业
若具备条件,可以第二天查看一下备份目录/dmdata/dmbak/bak下是否有凌晨的定时备份文件生成,若有文件生成则表示自动备份作业是正常的,若没有,则可以通过manager图形化管理工具连接数据库,然后到作业栏去检查、修正备份作业的设置。

以上就是达梦数据库安装部署的整个过程,仅代表个人的理解,我们通过实践去熟悉达梦数据库的部署规范,各位小伙伴多加练习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值