1部署规划
读写分离集群适合读多写少的应用环境。
Ip规划
主机名 |
服务ip |
数据库名 |
实例名 |
DM_Z |
192.168.48.131 |
DMSERVER |
DM01 |
DM_B |
192.168.48.131 |
DMSERVER |
DM02 |
目录规划:
数据库软件安装目录 |
/dm8/bin |
实例安装目录 |
/dm8/data |
归档日志存放目录 |
/dm8/fullbak |
备份文件存放目录 |
/dm8/data |
2 数据库软件安装
同 DM8 单机简易部署,执行到执行 DMInstall.bin 安装即可
3 初始化实例
2 个节点完成实例初始化
./dminit path=/dm8/data db_name=DMSERVER instance_name=DM01 port_num=5236
./dminit path=/dm8/data db_name=DMSERVER instance_name=DM02 port_num=5237
以主机 DM_1 为读写分离主库,启动实例
到 /dm8/bin
./dmserver /dm8/data/DMSERVER/dm.ini
出现 system is ready 后输入 exit 停止数据库。
4 脱机备份数据库
在主机DM_1 上执行以下命令,确认主库 dmap 服务已启动:
ps -ef|grep dmap
发现dmap 服务未启动,dmdba 到安装目录的 bin 下执行以下命令:
./DmAPService start
dmdba用户启动dmrman工具
./dmrman
执行 backup 全库:
backup database '/dm8/data/DMSERVER/dm.ini' backupset '/dm/dmbak/bakfull';
将数据库目录和备份文件从节点 01 分别拷贝到每个节点上
scp -r /dm8/data/DMSERVER 192.168.48.131:/dm8/data
scp -r /dm8/dmbak/bakfull 192.168. 48.131:/dm8/dmbak
5 备份还原备库
在DM_B上使用 dmrman 工具还原备库:
restore database '/dm8/data/DMSERVER/dm.ini' from backupset '/dm8/dmbak';
recover database '/dm8/data/DMSERVER/dm.ini' from backupset '/dm8/dmbak';
recover database '/dm8/data/DMSERVER/dm.ini' update db_magic;
6 修改dm.ini参数
所有节点都要修改
执行以下命令:
vim /dm8/data/DMSERVER/dm.ini
主库 DM_1 上修改以下参数值:
INSTANCE_NAME = DM01
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
备库 DM_2 上修改以下参数值:
INSTANCE_NAME = DM02
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
7 配置归档配置文件 dmarch.ini
在实例目录下新建文件 dmarch.ini,执行以下命令:
vim /dm8/data/DMSERVER/dmarch.ini
主库 DM_1 上添加以下内容:
ARCH_WAIT_APPLY=1
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DM02
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/dmarch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 76800
备库 DMSERVER02 上添加以下内容:
ARCH_WAIT_APPLY=1
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DM01
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCALARCH_DEST = /dm8/dmarch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 76800
8 配置 MAL 系统配置文件 dmmal.ini
在实例目录下新建文件 dmmal.ini,执行以下命令。
vim /dm8/data/DMSERVER/dmmal.ini
主备库 2 个节点文件内容要相同。
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 15
[MAL_INST1]
MAL_INST_NAME = DM01
MAL_HOST = 192.168.48.129
MAL_PORT = 5235
MAL_INST_HOST =192.168.48.129
MAL_INST_PORT =5236
MAL_DW_PORT =5237
MAL_INST_DW_PORT = 5238
[MAL_INST2]
MAL_INST_NAME = DM02
MAL_HOST = 192.168.48.131
MAL_PORT = 5245
MAL_INST_HOST = 192.168.48.131
MAL_INST_PORT = 5237
MAL_DW_PORT = 5238
MAL_INST_DW_PORT = 5248
9 配置守护进程配置文件 dmwatcher.ini
在实例目录下新建文件 dmwatcher.ini,执行以下命令:
vim /dm8/data/DMSERVER/dmwatcher.ini
主备库节点文件内容要相同。
[GRP_RW]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 30
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 20
INST_OGUID = 202269
INST_INI = /dm8/data/DMSERVER/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/dmdbms/bin/dmserver
以 mount 方式启动数据库实例
使用 dmdba 用户,执行以下命令(主备库都执行):
./dmserver /dm8/data/DMSERVER/dm.ini mount (无需关闭)
在新的终端使用 disql 工具连接数据库:
./disql SYSDBA/SYSDBA:5236
主备库都修改 oguid,执行以下命令:
sp_set_oguid(202269);
主库 DM_1 上修改数据库模式为 primary,执行以下命令:
alter database primary;
备库 DM_2 上修改数据库模式为 standby,执行以下命令:
alter database standby;
启动守护进程 dmdba 用户下,到数据库安装目录的 bin 下执行以下命令(主备库都执
行):
./dmwatcher /dm8/data/DMSERVER/dmwatcher.ini
守护进程启动后,会将 Mount 的实例 Open。启动监视器守护进程配置为自动切换时,必 须配置确认监视器。在主备服务器以外的服务器上(需安装有 DM 数据库软件,且与主备 心跳网络端口开放)。
新建确认监视器配置文件 dmmonitor.ini,执行以下命令:
vim /dm8/dmdbms/bin/dmmonitor.ini
添加以下内容:
MON_DW_CONFIRM = 1
MON_LOG_PATH = /dm8/dmdbms/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 200
MON_LOG_SPACE_LIMIT = 1024
[GRP_RW]
MON_INST_OGUID = 202269
MON_DW_IP = 192.168.48.129:5237
MON_DW_IP = 192.168.48.131:5238
执行以下命令,启动监视器。
./dmmonitor /home/dmdba/dmdbms/bin/dmmonitor.ini
启动后输入 show 命令查看集群状态。
10注册服务
在主和备数据库服务器上分别注册实例服务和守护进程服务。
在监视器所在服务器上注册监视器服务。
注册服务的脚本在安装目录下dmdbms的script/root下面。
使用root用户在主数据库服务器上执行以下命令:
注册主库实例服务:
./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DMSERVER/dm.ini -m mount -p DM01
注册主库守护进程服务:
./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/data/DMSERVER/dmwatcher.ini -p DM01
注册成功以后会在/opt/dmdbms/bin目录下生成对应的服务脚本。
使用root用户在备数据库服务器上执行以下命令
注册备库服务:
./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DMSERVER/dm.ini -m mount -p DM02
注册备库守护进程服务:
./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/data/DMSERVER/dmwatcher.ini -p DM02
在监视器服务器上使用root用户在备数据库服务器上执行以下命令。
注册监视器服务
./dm_service_installer.sh -t dmmonitor -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor.ini -p DM_RW
达梦社区地址:https://eco.dameng.com