达梦数据库的主备搭建全过程
服务器硬件需求按实际业务需求,选择合适的服务器,准备3 台服务器,一台主库服务器,一台备库服务器,一台监视器服务器,服务器参数建议如下:操作系统要求操作系统版本安装DM 数据库安装在 Linux 操作系统所需条件:glibc 2.3 以上,内核 2.6,预先安装 UnixODBC,系统性能监控等组件。目录与存储规划用户与组DM 数据库不应该使用 root 用户安装和维护。需要在安装之前为 DM 数
服务器硬件需求
按实际业务需求,选择合适的服务器,准备 3 台服务器,一台主库服务器,一台备库服务器,一台监视器服务器,服务器参数建议如下:
操作系统要求
操作系统版本安装
DM 数据库安装在 Linux 操作系统所需条件:glibc 2.3 以上,内核 2.6,预先安装 UnixODBC,系统性能监控等组件。
目录与存储规划
用户与组
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 用户环境变量:
vi /home/dmdba/.bash_profile |
文件末尾添加如下内容:
export DM_HOME=/home/dmdba/dmdbms |
防火墙设置
搭建 2 节点主备集群,端口规划如下:(实际中可以按需要修改端口号)
防火墙集群之间需开放以上所有端口,集群对客户端只需要开通数据库实例监听端口。
安装数据库
数据库软件安装详见单机规范化部署。
软件安装目录:/home/dmdba/dmdbms,实例初始化目录:/home/dmdba/dmdbms/dmrw,
初始化脚本如下(主备都需初始化):
./dminit path=/home/dmdba/dmdbms db_name=dmrw page_size=32 ./dminit path=/dm8/data page_size=32 instance_name=RAC1 ./dminit path=/dm8/data page_size=32 instance_name=RAC2 |
注意
初始化的实例必须先启动一次,才能脱机备份。
主库脱机备份
确认主库 DMAP 服务已启动,执行以下命令:
ps -ef|grep dmap |
若未启动,则先启动 DMAP 服务,dmdba 到安装目录的 bin 下执行以下命令:
./DmAPService start |
关闭数据库后,使用 dmrman 工具脱机备份主库,dmdba 用户到安装目录的 bin 下执行以下命令:
./dmrman |
执行 backup 全库。
backup database '/home/dmdba/dmdbms/dmrw/dm.ini' backupset '/home/dmdba/bakfull'; |
备库还原
拷贝主库备份到备库合适目录,执行以下命令:
scp -r /home/dmdba/bakfull 192.168.56.12:/home/dmdba |
关闭数据库后,使用 dmrman 工具还原备库,dmdba 用户到安装目录的 bin 下执行以下命令:
./dmrman |
执行 restore。
restore database '/home/dmdba/dmdbms/dmrw/dm.ini' from backupset '/home/dmdba/bakfull'; |
执行 recover。
recover database '/home/dmdba/dmdbms/dmrw/dm.ini' from backupset '/home/dmdba/bakfull'; |
执行 recover update db_magic。
recover database '/home/dmdba/dmdbms/dmrw/dm.ini' update db_magic; |
配置实例的配置文件 dm.ini
修改实例的 dm.ini 文件参数,执行以下命令:
vi /home/dmdba/dmdbms/dmrw/dm.ini |
主库修改以下参数值:
INSTANCE_NAME = dmrw1 |
备库修改以下参数值:
INSTANCE_NAME = dmrw2 |
配置归档配置文件 dmarch.ini
在实例目录下新建文件 dmarch.ini,执行以下命令:
vi /home/dmdba/dmdbms/dmrw/dmarch.ini |
主库添加以下内容:
[ARCHIVE_REALTIME] |
备库添加以下内容:
[ARCHIVE_REALTIME] |
配置MAL系统配置文件 dmmal.ini
在实例目录下新建文件 dmmal.ini,执行以下命令:
vi /home/dmdba/dmdbms/dmrw/dmmal.ini |
主备库文件内容要相同。
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔 |
配置守护进程配置文件 dmwatcher.ini
在实例目录下新建文件 dmwatcher.ini,执行以下命令:
vi /home/dmdba/dmdbms/dmrw/dmwatcher.ini |
主备库文件内容要相同。
[GRP_RW] |
以 Mount 方式启动数据库实例
使用 dmdba 用户,到数据库安装目录的 bin 下执行(主备库都执行)
./dmserver /home/dmdba/dmdbms/dmrw/dm.ini mount |
在新的终端使用 disql 工具连接数据库,执行以下命令:
./disql SYSDBA/SYSDBA |
主备库都修改 oguid,执行以下命令:
sp_set_oguid(453331); |
主库修改数据库模式为 primary,执行以下命令:
alter database primary; |
备库修改数据库模式为 standby,执行以下命令:
alter database standby; |
启动守护进程
dmdba 用户下,到数据库安装目录的 bin 下执行(主备库都执行)。
./dmwatcher /home/dmdba/dmdbms/dmrw/dmwatcher.ini |
守护进程启动后,会将 Mount 的实例 Open
启动确认监视器
守护进程配置为自动切换时,必须配置确认监视器。在主备服务器以外的服务器上(需安装有 DM 数据库软件,且与主备心跳网络端口开放)。
新建确认监视器配置文件 dmmonitor.ini,执行以下命令:
vi /home/dmdba/dmdbms/dmmonitor.ini |
添加以下内容:
MON_DW_CONFIRM = 1 #确认监视器模式 |
启动监视器,执行以下命令:
./dmmonitor /home/dmdba/dmdbms/dmmonitor.ini |
启动后输入 show 命令查看集群状态。
注册服务
以上启动为前台方式启动,仅用户搭建过程中验证配置。配置没问题后需要将实例,守护进程和确认监视器注册为系统服务。使用 root 用户,到数据库安装目录的 script/root 下,执行。
注册守护进程服务(主备库都执行)。
./dm_service_installer.sh -t dmwatcher -p dmrw -watcher_ini /home/dmdba/dmdbms/dmrw/dmwatcher.ini |
注册数据库实例服务(主备库都执行)。
./dm_service_installer.sh -t dmserver -p dmrw -dm_ini /home/dmdba/dmdbms/dmrw/dm.ini |
注册监视器服务(只需在监视器服务器上执行),执行以下命令:
./dm_service_installer.sh -t dmmonitor -p confirm -monitor_ini /home/dmdba/dmdbms/dmmonitor.ini |
以服务方式启动
启动数据库实例,执行以下命令:
systemctl start DmServicedmrw |
启动守护进程,执行以下命令:
systemctl start DmWatcherServicedmrw |
启动监视器,执行以下命令:
systemctl start DmMonitorServiceconfirm |
验证主备集群同步状态
监视器查看读写分离集群状态(无三台服务器可部署备库服务器)
集群任意节点,配置普通监视器配置文件 dmmonitor.ini,执行以下命令:
vi /home/dmdba/dmmonitor.ini |
添加以下内容:
Copy
MON_DW_Confirm = 0 #普通监视器模式 |
启动监视器,执行以下命令:
./dmmonitor /home/dmdba/dmmonitor.ini |
输入 show 命令查看集群状态,执行以下命令:
其中守护进程状态 WSTATUS 为 OPEN,实例状态 ISTATUS 为 OPEN,归档类型 RTYPE 为 REALTIME,归档状态 RSTAT 为VALID。
disql 客户端验证
使用 disql 客户端登录主库,创建测试表,插入数据,执行以下命令:
./disql SYSDBA/SYSDBA@192.168.56.11:5236 |
SQL 提示符下执行以下命令:
create table test(id int); |
使用 disql 客户端登录备库,查询测试表验证,执行以下命令:
./disql SYSDBA/SYSDBA@192.168.56.12:5236 |
SQL 提示符下执行以下命令:
select * from test; |
参数优化
集群部署完成后,需要优化 dm.ini 参数,主备库都需要修改。参数值优化详见参数优化部分。
重启集群
主备集群重启有顺序要求:
关闭
关闭监视器:systemctl stop DmMonitorServiceconfirm
关闭主库守护进程:systemctl stop DmWatcherServicedmrw
关闭备库守护进程:systemctl stop DmWatcherServicedmrw
关闭主库实例:systemctl stop DmServicedmrw
关闭备库实例:systemctl stop DmServicedmrw
启动
启动主库实例:systemctl start DmServicedmrw
启动备库实例:systemctl start DmServicedmrw
启动主库守护进程:systemctl start DmWatcherServicedmrw
启动备库守护进程:systemctl start DmWatcherServicedmrw
启动监视器:systemctl start DmMonitorServiceconfirm
定制备份策略
备份与单机部署相同,详见定制备份策略部分。
客户端连接集群
客户端主机上需要配置 dm_svc.conf 文件(未安装 DM 数据库的机器新建即可),文件路径:
- 32 位的 DM 安装在 Win32 操作平台下,此文件位于 %SystemRoot%\system32 目录;
- 64 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\system32 目录;
- 32 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\SysWOW64 目录;
- 在 Linux 平台下,此文件位于/etc 目录。
文件内容:
# 以#开头的行表示是注释 |
客户端程序连接数据库时,需要指定 IP 端口处替换为服务名即可,例如:
disql SYSDBA/SYSDBA@DMRW
注意
当修改了 dm_svc.conf 内容后,需要重启客户端程序,修改的配置才能生效。
关于达梦数据库更多的相关问题请浏览达梦云适配技术社区
达梦云适配技术社区
https://eco.dameng.com/
更多推荐
所有评论(0)