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

DM8达梦数据库单机规范化部署

原创 达梦 2021-01-31
509

本章节主要介绍在生产环境中(Linux 系统)规范化部署 DM 数据库单机环境。

服务器硬件需求

按实际业务需求,选择合适的服务器,参考如下:

硬件 要求
物理内存 >= 16 GB
交换区 Swap 空间>=物理内存
/tmp大小 > 1000 MB
网络 物理机器需要 2 个网卡,2 个网卡做 band
磁盘 根据实际应用系统需要挂载合适大小磁盘
时间服务器 按机房要求配置连接时间服务器

操作系统要求

操作系统版本安装

DM 数据库安装在 Linux 操作系统所需条件:glibc 2.3 以上,内核 2.6,预先安装 UnixODBC,系统性能监控等组件。

目录与存储规划

用途 目录路径 备注
数据库软件安装目录 /dm8 可用空间> 50 GB
实例安装目录 /dmdata 单独挂载性能最好的磁盘建议 SSD
归档日志存放目录 /dmarch 单独挂载磁盘
备份文件存放目录 /dmbak 单独挂载磁盘

用户与组

DM 数据库不应该使用 root 用户安装和维护。需要在安装之前为 DM 数据库创建一个专用的系统用户 (dmdba) 和用户组 (dinstall)。

执行以下命令,新建用户组 dinstall。

groupadd dinstall

执行以下命令,新建用户 dmdba。

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

执行以下命令,修改 dmdba 用户密码。

passwd dmdba

输入密码并确认。

用户资源限制

执行以下命令,修改 dmdba 用户资源限制。

vim /etc/security/limits.conf

文件末尾添加如下内容:

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

用户环境变量

执行以下命令,修改 dmdba 用户环境变量。

vi /home/dmdba/.bash_profile

文件末尾添加如下内容:

export DM_HOME=/dm8
export PATH=$PATH:$DM_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin

防火墙设置

生产环境应该对特定客户端开放数据库监听端口,并修改 DM 数据库默认的 5236 监听端口。

安装数据库

软件申请

可访问达梦云适配中心下载试用,下载 DM8 数据库试用版,如需其他版本,请联系达梦销售人员。

查询操作系统(内核)版本,CPU 架构命令:uname -a

系统版本

如上图所示,需申请 rh7,x86 版本数据库软件。

以 iso 文件安装包为例,安装包命名规则如下:dm8_20200930_x86_rh6_64_ent_8.1.1.134.iso

dm8:数据库大版本为 dm8
20200930:数据库版本发布日期
x86:安装包匹配的 CPU 架构
rh6:安装包匹配的系统版本 (redhat6)
ent:数据库为企业版
8.1.1.134:数据库详细版本号

安装数据库软件

将安装包上传到服务器后使用 root 用户挂载 iso 安装包文件到 /mnt 目录下。

mount -oloop dm8_20200930_x86_rh6_64_ent_8.1.1.134.iso /mnt

挂载成功

执行以下命令,切换到 dmdba 用户。

su - dmdba

执行以下命令,切换到 /mnt 目录下。

cd /mnt

执行以下命令,查看文件。

ll

安装文件

执行 DMInstall.bin 文件开始安装,选择【-i】参数以命令行方式安装。

./DMInstall.bin -i
  1. 选择安装程序的语言 c/C 为中文,e/E 为英文。
  2. 提示是否安装 key 文件,输入 N 跳过。
  3. 选择时区,21 即东 8 区。
  4. 选择安装类型,默认典型安装(包含所有内容)。

安装过程

  1. 选择软件安装目录,为之前规划的目录 /dm8
  2. 确认安装目录。
  3. 确认安装概要。

安装过程

  1. 开始安装。

安装过程

  1. 安装完成后,按照系统提示使用 root 用户执行脚本。
/dm8/script/root/root_installer.sh

提示 DmAPService 服务启动成功,则安装完成。

使用 dminit 工具初始化实例

执行以下命令,切换到 /dm8/bin 目录。

cd /dm8/bin
./dminit path=/dmdata page_size=32

初始化实例

注意

初始化参数中除了 path 参数必须指定,其它参数都有默认值,如果需求与默认值不同,初始化的时候请指定需要的值。因为部分参数初始化后是无法修改的例如:page_size(页大小),charset(字符集),case_sensitive(大小写敏感)等。更多参数./dminit help 查看,是否无法修改的参数可以查询 v$dm_ini 视图,para_type=’READ ONLY’ 表示无法修改。

启动实例

以系统服务方式启动实例,DM 提供脚本将数据库实例注册为操作系统服务。

root 用户下切换到 /dm8/script/root/

cd /dm8/script/root/

执行以下命令,执行脚本注册服务。

./dm_service_installer.sh -t dmserver -p dmserver -dm_ini /dmdata/DAMENG/dm.ini

服务注册

服务名为 DmService+-p 参数后的内容,即 DmServicedmserver

提示

-t 指服务类型是 dmserver;-p 为服务名的后缀;-dm_ini 为实例的 dm.ini 文件的绝对路径。

执行以下命令,以服务方式启动实例。

systemctl start DmServicedmserver

关闭实例

对于以服务方式启动的实例,则以服务方式关闭实例。

systemctl stop DmServicedmserver
建议

每个实例都建议注册为操作系统服务,这样不仅方便启动和关闭实例,而且注册为服务后,在服务器重启时,实例将随系统启动而自动启动。

连接数据库

执行以下命令,切换到 /dm8/bin 目录。

cd /dm8/bin

执行以下命令,使用 disql 工具连接数据库。

./disql SYSDBA/SYSDBA@localhost:5236

登录成功,如下图所示:

dsiql登陆成功

提示

默认创建的实例,管理员用户 SYSDBA 的密码为 SYSDBA ,实例端口为 5236,字符集为 GB18030,大小写敏感。

参数优化

安装完成需要调整 dm.ini 文件参数。

参数名称 参数含义 参数默认值 参数建议
BUFFER 系统缓冲区大小,以 MB 为单位 100 系统物理内存的 60%~80%
BUFFER_POOLS BUFFER 系统分区数 19 物理内存 64 GB 以下 53 GB 以上
HJ_BUF_GLOBAL_SIZE HASH 连接操作符的数据总缓存大小,以 MB 为单位 500 5000
HJ_BUF_SIZE 单个 HASH 连接操作符的数据总缓存大小,以 MB 为单位 50 500
DICT_BUF_SIZE 字典缓冲区大小,以 MB 为单位 5 100
TASK_THREADS 任务线程个数 4 cpu 核数
IO_THR_GROUPS 非 Windows 下有效,表示 IO 线程组个数 2 cpu 核数/2
MAX_SESSIONS 系统允许同时连接的最大数 100 1000
MAX_SESSION_STATEMENT 单个会话上允许同时打开的语句句柄最大数 100 20000
CACHE_POOL_SIZE SQL 缓冲池大小,以 MB 为单位 20 200

参考脚本如下:


SP_SET_PARA_VALUE (2,'HJ_BUF_GLOBAL_SIZE',5000);
SP_SET_PARA_VALUE (2,'HJ_BUF_SIZE',500);
SP_SET_PARA_VALUE (2,'MAX_SESSIONS',1000);
SP_SET_PARA_VALUE (2,'MAX_SESSION_STATEMENT',20000);
SP_SET_PARA_VALUE (2,'CACHE_POOL_SIZE',200);
SP_SET_PARA_VALUE (2,'DICT_BUF_SIZE',100);

declare
v_mem_mb int;
v_cpus int;
BUFFER int;
BUFFER_POOLS INT;
begin
SELECT TOP 1 N_CPU,TOTAL_PHY_SIZE/1024/1024 INTO v_cpus,v_mem_mb FROM V$SYSTEMINFO;

v_mem_mb=round(v_mem_mb,-3);
SP_SET_PARA_VALUE(2,'TASK_THREADS',v_cpus);
SP_SET_PARA_VALUE(2,'IO_THR_GROUPS',v_cpus/2);
IF v_mem_mb >= 64000 THEN
BUFFER_POOLS :=101;
ELSE
BUFFER_POOLS :=53;
END IF;

BUFFER := round(cast(v_mem_mb * 0.8 as int),-3);
SP_SET_PARA_VALUE(2,'BUFFER', BUFFER);
SP_SET_PARA_VALUE(2,'BUFFER_POOLS', BUFFER_POOLS);
end;
注意

修改完参数后,需要重启数据库生效。

归档配置

生产环境必须开启归档日志,且必须限制归档日志保留量,限制方法:

  1. 设置归档空间大小限制即指定 SPACE_LIMIT 参数(单位是 MB)。
  2. 定期删除归档日志(设置定时作业)。

例如开启归档并限制归档空间为 100 GB,如下所示:

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

定制备份策略

上线前必须规划好备份策略,可以使用 DM 作业系统,定时备份。

根据应用需求,定制备份策略如下所示:

备份类型 备份周期 备份时间
全量备份 每周 每周五23点
增量备份 每天 除周五外每天23点
删除备份 每天 每天23点30

执行以下命令,创建作业系统表。

SP_INIT_JOB_SYS(1);

全量备份(每周五23点全备)

call SP_CREATE_JOB('bakfull',1,0,'',0,0,'',0,'');

call SP_JOB_CONFIG_START('bakfull');

call SP_ADD_JOB_STEP('bakfull', 'bak01', 6, '01000000/dmbak', 1, 2, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('bakfull', 'bak01', 1, 2, 1, 32, 0, '23:00:00', NULL, '2020-11-02 14:42:15', NULL, '');

call SP_JOB_CONFIG_COMMIT('bakfull');

增量备份(每周除周五外每天23点增量备份)

call SP_CREATE_JOB('bakincr',1,0,'',0,0,'',0,'');

call SP_JOB_CONFIG_START('bakincr');

call SP_ADD_JOB_STEP('bakincr', 'bak02', 6, '11000000/dmbak', 1, 2, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('bakincr', 'bak2', 1, 2, 1, 95, 0, '23:00:00', NULL, '2020-11-02 14:44:30', NULL, '');

call SP_JOB_CONFIG_COMMIT('bakincr');

备份定期删除(每天23:30删除14天前备份)

call SP_CREATE_JOB('delbak',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('delbak');
call SP_ADD_JOB_STEP('delbak', 'bak1', 0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/dmbak'');call sp_db_bakset_remove_batch(''DISK'',now()-14);', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('delbak', 'del01', 1, 1, 1, 0, 0, '23:30:00', NULL, '2020-11-02 14:48:41', NULL, '');
call SP_JOB_CONFIG_COMMIT('delbak');
注意

备份的基本要求是:保留最少一次全备+全备(或者全备后的增备)时间点到当前的全部归档日志。删除备份前尽量将备份文件拷贝到单独的备份服务器上。

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

评论