1、架构

2台虚拟机,一主一备,主库对外提供读写服务,备库试试同步主库数据,主库故障时可主备切换到备库提供服务。

主库172.20.10.2   DMOA

备库172.20.10.4   DMOABY

2、主备集群配置

初始化实例

主库执行

su - dmdba
cd /home/dmdba/dmdbms/bin

./dminit path=/dmdata/data PAGE_SIZE=16 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=0 DB_NAME=DMOA INSTANCE_NAME=DMOA PORT_NUM=5236 SYSDBA_PWD=Dameng@123 SYSAUDITOR_PWD=Dameng@123

# 启动一次数据库(使配置生效)
./dmserver /dmdata/data/DAOA/dm.ini
# 看到 "system is ready" 后正常退出(输入exit)

备库执行

su - dmdba
cd /home/dmdba/dmdbms/bin

./dminit path=/dmdata/data PAGE_SIZE=16 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=0 DB_NAME=DMOABY INSTANCE_NAME=DMOABY PORT_NUM=5236 SYSDBA_PWD=Dameng@123 SYSAUDITOR_PWD=Dameng@123

# 注意:备库初始化后不要正常启动,后面直接mount

主备库均修改dm.ini文件

INSTANCE_NAME = DMOA/DMOABY

MAL_INI = 1

ARCH_INI = 1

ALTER_MODE_STATUS = 0

ENABLE_OFFLINE_TS = 2

RLOG_APPEND_LOGIC = 1

配置归档文件 dmarch.ini

主备库均写入,以主库为例

vi /dmdata/data/DMOA/dmarch.ini

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DMOABY

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 102400

配置MAL系统 dmmal.ini

主备库均写入,以主库为例

vi /dmdata/data/DMOA/dmarch.ini

MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 15

[MAL_INST1]
MAL_INST_NAME = DMOA
MAL_HOST = 172.40.20.2
MAL_PORT = 7336
MAL_INST_HOST = 172.40.20.2
MAL_INST_PORT = 5236
MAL_DW_PORT = 7436
MAL_INST_DW_PORT = 7536

[MAL_INST2]
MAL_INST_NAME = DMOABY
MAL_HOST = 172.40.20.4
MAL_PORT = 7336
MAL_INST_HOST = 172.40.20.4
MAL_INST_PORT = 5236
MAL_DW_PORT = 7436
MAL_INST_DW_PORT = 7536

配置守护进程 dmwatcher.ini

主备库均写入,以主库为例

vi /dmdata/data/DMOA/dmwatcher.ini

[GRP_DW]
DW_TYPE = GLOBAL
DW_MODE = MANUAL        # MANUAL手动切换,AUTO自动切换
DW_ERROR_TIME = 30
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 20
INST_OGUID = 453331
INST_INI = /dmdata/data/DMOA/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/DmServiceDMOA start

以mount状态启动数据库

主备库分别执行

cd /home/dmdba/dmdbms/bin

# 主备库分别执行 ./dmserver /dmdata/data/DAMENG/dm.ini mount

设置OGUID和数据库模式

新开终端连接数据库(主备库分别执行)

-- 允许手动修改
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

-- 设置OGUID
sp_set_oguid(453331);

-- 主库执行:
ALTER DATABASE PRIMARY;

-- 备库执行:
ALTER DATABASE STANDBY;

-- 禁止手动修改
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

-- 退出
exit;

注册并启动服务

主备库分别执行(root用户)

cd /home/dmdba/dmdbms/script/root

# 注册守护进程服务
./dm_service_installer.sh -t dmwatcher -p DMOA -watcher_ini /dmdata/data/DMOA/dmwatcher.ini

# 注册数据库实例服务
./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DMOA/dm.ini -p DMOA

# 启动服务
systemctl start DmServiceDMOA
systemctl start DmWatcherServiceDMOA

测试主备同步:

-- 主库创建测试表

CREATE TABLE test (id int);

INSERT INTO test VALUES (1);

COMMIT;

-- 备库查询(切换为只读模式)

SELECT * FROM test;

达梦社区:达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐