目录
1.服务器硬件需求
按实际业务需求,选择合适的服务器,准备 2 台服务器,服务器参数建议如下:
硬件 | 要求 |
物理内存 | >=4GB |
交换区 | 8192M |
/tmp大小 | > 1000 MB |
网络 | 物理机器需要 4 个网卡,2 个 public 网卡做 band,2 个 private 网卡做 band |
磁盘 | 根据实际应用系统需要挂载合适大小磁盘 |
时间服务器 | 按机房要求配置连接时间服务器 |
2.操作系统要求
2.1.操作系统版本安装
DM 数据库安装在 Linux 操作系统所需条件:glibc 2.3 以上,内核 2.6,预先安装 UnixODBC,系统性能监控等组件。
2.2.目录与存储规划
用途 | 目录路径 | 备注 |
数据库软件安装目录 | /dm/dmdbms/dm8 | 可用空间>50 GB |
实例安装目录 | /dm/dmdata | 单独挂载性能最好的磁盘建议 SSD |
归档日志存放目录 | /dm/dmarch | 单独挂载磁盘 |
备份文件存放目录 | /dm/dmback | 单独挂载磁盘 |
2.3.用户与组
DM 数据库不应该使用 root 用户安装和维护。需要在安装之前为 DM 数据库创建一个专用的系统用户 (dmdba) 和用户组 (dinstall)。
执行以下命令,新建用户组 dinstall:
groupadd dinstall |
执行以下命令,新建用户 dmdba:
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba |
执行以下命令,修改 dmdba 用户密码。
passwd dmdba |
输入密码并确认。
2.4.用户资源限制
执行以下命令,修改 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 |
2.5.用户环境变量
执行以下命令,修改 dmdba 用户环境变量:
vi /home/dmdba/.bash_profile |
文件末尾添加如下内容:
export DM_HOME=/dm/dmdbms/dm8 export PATH=$PATH:$DM_HOME/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin |
2.6.防火墙设置
2.6.1.端口规划
搭建 2 节点大规模并行集群,端口规划如下:(实际中可以按需要修改端口号)
主机名 | public ip | private ip | 实例名 | 端口 | 用途 |
dmdsc1 | 192.168.25.94 | 10.10.10.94 | dmmpp1 | 5236 | 数据库实例 dmmpp1 监听端口 |
dmdsc1 | 192.168.25.94 | 10.10.10.94 | dmmpp1 | 7236 | MAL 系统监听 TCP 连接的端口 |
dmdsc2 | 192.168.25.95 | 10.10.10.95 | dmmpp2 | 5236 | 数据库实例 dmmpp2 监听端口 |
dmdsc2 | 192.168.25.95 | 10.10.10.95 | dmmpp2 | 7236 | MAL 系统监听 TCP 连接的端口 |
防火墙集群之间需开放以上所有端口, 集群对客户端只需要开通数据库实例监听端口。
2.6.2.关闭防火墙
设置系统安全策略 SELinux echo "SELINUX=disabled" > /etc/selinux/config echo "SELINUXTYPE=targeted" >> /etc/selinux/config cat /etc/selinux/config setenforce 0 关闭防火墙 systemctl status firewalld.service systemctl stop firewalld.service systemctl disable firewalld.service |
4.安装数据库
4.1.使用root用户挂载数据库软件的iso文件
mount -t cifs -o username="administrator",password="best_7890",gid="66000",uid="66000" //192.168.27.253/H /mnt
mkdir -p /dmiso mount -oloop dm8_20211112_x86_rh6_64_ent_8.1.2.94.iso /dmiso |
4.2.使用dmdba用户安装软件
su - dmdba |
执行以下命令,切换到 /dmiso 目录下
cd /dmiso |
执行 DMInstall.bin 文件开始安装,选择【-i】参数以命令行方式安装。
./DMInstall.bin -i |
选择安装程序的语言 c/C 为中文,e/E 为英文。
提示是否安装 key 文件,输入 N 跳过。
选择时区,21 即东 8 区。
选择安装类型,默认典型安装(包含所有内容)。
选择软件安装目录,: /dm/dmdbms/dm8
确认安装
安装完成提示使用root执行脚本:
/dm/dmdbms/dm8/script/root/root_installer.sh
[root@dm94 ~]# /dm/dmdbms/dm8/script/root/root_installer.sh 移动 /dm/dmdbms/dm8/bin/dm_svc.conf 到/etc目录 修改服务器权限 创建DmAPService服务 Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service. 创建服务(DmAPService)完成 启动DmAPService服务 [root@dm94 ~]# |
5.初始化数据库
软件安装目录为 /dm/dmdbms/dm8 ,实例初始化目录 /dm/dmdata/dmmpp ,初始化脚本如下:
./dminit path=/dm/dmdata page_size=32 extent_size=32 case_sensitive=1 LENGTH_IN_CHAR=0 charset=0 log_size=2048 db_name=dmmpp instance_name=dmmpp SYSDBA_PWD="dameng123" SYSAUDITOR_PWD="dameng123" |
5.1.配置实例的配置文件 dm.ini
修改实例的 dm.ini 文件参数,执行以下命令:
vi /dm/dmdata/dmmpp/dm.ini |
dmmpp1 实例修改以下参数值:
INSTANCE_NAME = dmmpp1 MAL_INI = 1 MPP_INI = 1 |
dmmpp2 实例修改以下参数值:
INSTANCE_NAME = dmmpp2 MAL_INI = 1 MPP_INI = 1 |
5.2.配置MAL系统配置文件dmmal.ini
执行以下命令,在实例目录下新建文件 dmmal.ini :
vi /dm/dmdata/dmmpp/dmmal.ini |
所有节点文件内容要相同
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔 MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间 [MAL_INST1] MAL_INST_NAME = dmmpp1 #与 dm.ini 中的 INSTANCE_NAME 一致 MAL_HOST = 10.10.10.94 #MAL 系统监听 TCP 内部网络 IP MAL_PORT = 7236 #MAL 系统监听 TCP 连接的端口 MAL_INST_HOST = 192.168.25.94 #实例的对外服务 IP 地址 MAL_INST_PORT = 5236 #与 dm.ini 中的 PORT_NUM 一致 [MAL_INST2] MAL_INST_NAME = dmmpp2 #与 dm.ini 中的 INSTANCE_NAME 一致 MAL_HOST = 10.10.10.95 # MAL 系统监听 TCP 内部网络 IP MAL_PORT = 7236 #MAL 系统监听 TCP 连接的端口 MAL_INST_HOST = 192.168.25.95 #实例的对外服务 IP 地址 MAL_INST_PORT = 5236 #与 dm.ini 中的 PORT_NUM 一致 |
5.3.配置 MPP 控制文件 dmmpp.ctl
在其中一个节点新建 dmmpp.ini 配置文件,执行以下命令:
vi /dm/dmdata/dmmpp/dmmpp.ini |
添加以下内容:
[SERVICE_NAME1] MPP_SEQ_NO = 0 MPP_INST_NAME = dmmpp1 [SERVICE_NAME2] MPP_SEQ_NO = 1 MPP_INST_NAME = dmmpp2 |
使用 dmctlcvt 工具将 dmmpp.ini文件转化为 dmmpp.ctl,在数据库安装的 bin 目录下执行以下命令:
./dmctlcvt TYPE=2 SRC=/dm/dmdata/dmmpp/dmmpp.ini DEST=/dm/dmdata/dmmpp/dmmpp.ctl |
将生成的 dmmpp.ctl 控制文件复制到另一个节点的实例目录下。
[dmdba@dm94 dmmpp]$ scp dmmpp.ctl 192.168.25.95:/dm/dmdata/dmmpp/ dmdba@192.168.25.95's password: dmmpp.ctl 100% 41KB 11.6MB/s 00:00 [dmdba@dm94 dmmpp]$ |
6.启动集群
正常启动实例即可,在数据库安装的 bin 目录下执行以下命令:
./dmserver /dm/dmdata/dmmpp/dm.ini [dmdba@dm94 dmmpp]$ dmserver /dm/dmdata/dmmpp/dm.ini file dm.key not found, use default license! version info: develop DM Database Server x64 V8 1-2-94-21.11.11-150650-10038-ENT startup... Normal of FAST Normal of DEFAULT Normal of RECYCLE Normal of KEEP Normal of ROLL Database mode = 0, oguid = 0 License will expire on 2022-11-11 file lsn: 0 ndct db load finished ndct second level fill fast pool finished ndct third level fill fast pool finished ndct fill fast pool finished iid page's trxid[1002] NEXT TRX ID = 1003 pseg_collect_mgr_items, total collect 0 active_trxs, 0 cmt_trxs, 0 pre_cmt_trxs, 0 active_pages, 0 cmt_pages, 0 pre_cmt_pages, 0 mgr pages, 0 mgr recs! iid page's trxid[2004] NEXT TRX ID = 3006. total 0 active crash trx, pseg_crash_trx_rollback sys_only(0) begin ... pseg_crash_trx_rollback end, total 0 active crash trx, include 0 empty_trxs, 0 empty_pages which only need to delete mgr recs. pseg_crash_trx_rollback end pseg recv finished nsvr_startup end. aud sys init success. aud rt sys init success. trx: 3006 purged 1 pages trx: 3025 purged 1 pages trx: 3026 purged 1 pages trx: 3027 purged 1 pages trx: 3028 purged 1 pages trx: 3029 purged 1 pages trx: 3039 purged 1 pages trx: 3159 purged 1 pages trx: 3172 purged 1 pages trx: 3173 purged 1 pages trx: 3174 purged 1 pages trx: 3175 purged 1 pages trx: 3176 purged 1 pages trx: 3178 purged 1 pages trx: 3179 purged 1 pages trx: 3181 purged 1 pages trx: 3183 purged 1 pages trx: 3189 purged 1 pages trx: 3195 purged 1 pages trx: 3205 purged 1 pages trx: 3218 purged 1 pages trx: 3219 purged 1 pages trx: 3220 purged 1 pages trx: 3221 purged 1 pages trx: 3233 purged 1 pages trx: 3235 purged 1 pages trx: 3236 purged 1 pages trx: 3237 purged 1 pages trx: 3282 purged 6 pages trx: 3309 purged 1 pages trx: 3310 purged 1 pages trx: 3311 purged 1 pages trx: 3312 purged 1 pages trx: 3318 purged 1 pages trx: 3320 purged 1 pages trx: 3322 purged 1 pages trx: 3327 purged 1 pages trx: 3332 purged 1 pages trx: 3337 purged 1 pages trx: 3339 purged 1 pages trx: 3342 purged 1 pages trx: 3344 purged 1 pages trx: 3350 purged 1 pages trx: 3351 purged 1 pages trx: 3500 purged 1 pages trx: 3512 purged 1 pages trx: 3517 purged 1 pages trx: 3522 purged 1 pages trx: 3541 purged 8 pages trx: 3566 purged 1 pages systables desc init success. ndct_db_load_info success. nsvr_process_before_open begin. nsvr_process_before_open success. total 0 active crash trx, pseg_crash_trx_rollback sys_only(0) begin ... pseg_crash_trx_rollback end, total 0 active crash trx, include 0 empty_trxs, 0 empty_pages which only need to delete mgr recs. pseg_crash_trx_rollback end SYSTEM IS READY. |
注意 需要所有节点都启动后,集群才能访问。 |
7.注册服务
root 用户下切换到 /dm/dmdbms/dm8/script/root/,执行以下命令:
cd /dm/dmdbms/dm8/script/root/ |
脚本注册服务,执行以下命令:
./dm_service_installer.sh -t dmserver -p dmmpp -dm_ini /dm/dmdata/dmmpp/dm.ini |
以服务方式启动实例,执行以下命令:
systemctl start DmServicedmmpp |
8.验证集群
客户端登录任意节点。
[dmdba@dm94 ~]$ disql sysdba/dameng123 服务器[LOCALHOST:5236]:处于普通打开状态 登录使用时间 : 5.443(ms) disql V8 SQL> select instance_name from v$instance; 行号 INSTANCE_NAME ---------- ------------- 1 DMMPP1 2 DMMPP2 已用时间: 8.847(毫秒). 执行号:194732. SQL> |
查询可以看到所有节点实例信息。
9.参数优化
集群部署完成后,需要优化 dm.ini 参数,主备库都需要修改,参数值优化详见参数优化部分。
参考链接:单机规范化部署 | 达梦技术文档 (dameng.com)
11.重启集群
所有节点重启实例,执行以下命令:
systemctl restart DmServicedmmpp |
12.定制备份策略
上线前必须规划好备份策略,可以使用 DM 作业系统,定时备份。
根据应用需求,定制备份策略如下所示:
备份类型 | 备份周期 | 备份时间 |
全量备份 | 每周 | 每周五 23 点 |
增量备份 | 每天 | 除周五外每天 23 点 |
删除备份 | 每天 | 每天 23 点 30 |
备份参考地址:单机规范化部署 | 达梦技术文档 (dameng.com)
13.客户端连接集群
客户端主机上需要配置 dm_svc.conf 文件(未安装 DM 数据库的机器新建即可),文件路径:
32 位的 DM 安装在 Win32 操作平台下,此文件位于 %SystemRoot%\system32 目录;
64 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\system32 目录;
32 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\SysWOW64 目录;
在 Linux 平台下,此文件位于/etc 目录。
文件内容:
# 以#开头的行表示是注释 # 全局配置区 DMMPP=(192.168.25.94:5236,192.168.25.95:5236) TIME_ZONE=(+480) #表示+8:00时区 LOGIN_ENCRYPT=(0) DIRECT=(Y) # 服务配置区 [DMMPP] TIME_ZONE=(+540) #表示+9:00时区 #LOGIN_MODE=(2) SWITCH_TIME=(3) #在服务器之间切换的次数 SWITCH_INTERVAL=(10) #在服务器之间切换的时间间隔,单位为毫秒 |
客户端程序连接数据库时,需要指定 IP 端口处替换为 服务名 即可,例如: disql SYSDBA/dameng123@DMMPP
[dmdba@dm94 bin]$ ./disql SYSDBA/dameng123@DMMPP 服务器[192.168.25.95:5236]:处于普通打开状态 登录使用时间 : 3.660(ms) disql V8 SQL> |
注意 当修改了 dm_svc.conf 内容后,需要重启客户端程序,修改的配置才能生效。 |
24小时免费服务热线:400 991 6599
达梦技术社区:https://eco.dameng.com