注册
单机在线转主备集群
专栏/培训园地/ 文章详情 /

单机在线转主备集群

guangluo 2026/11/05 35 0 0
摘要

目前版本(2025 年第一季度版本 - 8.1.4.80)已经支持单机在线转变为主备集群。

实例名 MAL_HOST PORT_NUM MAL_INST_DW_PORT MAL_PORT MAL_DW_PORT
DM01 10.76.11.205 65237 65337 65437 65137
DM02 10.76.11.205 65238 65338 65438 65138

安装单机

初始化单机实例:

./dminit path=data instance_name=DM01 db_name=DM01 port_num=65237 page_size=32 extent_size=32 log_size=2048 SYSDBA_PWD=DMDBA_hust4400 SYSAUDITOR_PWD=DMDBA_hust4400

使用 normal/open 状态启动单机实例:

./dmserver data/DM01/dm.ini

如出现以下截图即代表启动成功:

1751957599512023286801bb9433f8f5ba027f6e2a497.png

开启归档

正常安装的时候都会开启归档,所以在这里,我们模拟正常运行过一段时间的单机实例,将归档也打开。
执行如下命令:

--开启归档: alter database mount; alter database archivelog; alter database add archivelog 'TYPE=LOCAL,DEST=/data/DM01/arch,FILE_SIZE=2048,SPACE_LIMIT=102400'; alter database open;

联机备份

与离线操作相同,在线操作也需要备份还原一个备库。

联机备份的操作如下:

BACKUP DATABASE FULL BACKUPSET 'FULL_BAK_20250706' COMPRESSED LEVEL 1 PARALLEL 4;

新建实例并还原

我们需要还原一个实例作为备库。

操作如下:

## 先初始化实例 ./dminit path=data instance_name=DM02 db_name=DM02 port_num=65238 page_size=32 extent_size=32 log_size=2048 SYSDBA_PWD=DMDBA_hust4400 SYSAUDITOR_PWD=DMDBA_hust4400 ## 备份还原 ./dmrman CTLSTMT="RESTORE DATABASE '/data/DM02/dm.ini' FROM BACKUPSET '/data/DM02/bak/FULL_BAK_20250706'" ./dmrman CTLSTMT="RECOVER DATABASE '/data/DM02/dm.ini' FROM BACKUPSET '/data/DM02/bak/FULL_BAK_20250706'" ./dmrman CTLSTMT="RECOVER DATABASE '/data/DM02/dm.ini' UPDATE DB_MAGIC"

在线添加 dmmal

需要将单机实例与备份实例连接起来,就需要在线添加 dmmal 通讯。

CALL SF_MAL_INST_ADD_APPLY('MAL_INST','DM01','10.76.11.205',65437,'10.76.11.205',65237,65137,0,65337); CALL SF_MAL_INST_ADD_APPLY('MAL_INST1','DM02','10.76.11.205',65438,'10.76.11.205',65238,65138,0,65338); CALL SP_SET_PARA_VALUE(1,'MAL_INI',1);

出现以下截图则代表操作成功:

1751957894378fe0af4d71ada4b7d819c055b9d025008.png

添加 REALTIME 归档

将 DM01 的归档发送到 DM02 去,需要在 DM01 上配置 DM02 的 REALTIME 归档。
命令可以在 normal/open 状态下执行。

ALTER DATABASE ADD ARCHIVELOG 'TYPE=REALTIME,DEST=DM02';

修改新实例的配置文件

需要修改四个文件。

dm.ini

修改原来的文件即可。

MAL_INI = 1 ARCH_INI = 1

dmmal.ini

需要在实例目录新建文件,文件内容如下:

#DaMeng Database Mail Configuration file #this is comments MAL_CHECK_INTERVAL     = 30 MAL_COMBIN_BUF_SIZE    = 0 MAL_SEND_THRESHOLD = 2048 MAL_CONN_FAIL_INTERVAL = 10 MAL_LOGIN_TIMEOUT      = 15 MAL_BUF_SIZE           = 100 MAL_SYS_BUF_SIZE       = 0 MAL_VPOOL_SIZE         = 128 MAL_COMPRESS_LEVEL     = 0 MAL_TEMP_PATH          = [MAL_INST]     MAL_INST_NAME    = DM01     MAL_HOST         = 10.76.11.205     MAL_PORT         = 65437     MAL_INST_HOST    = 10.76.11.205     MAL_INST_PORT    = 65237     MAL_DW_PORT      = 65137     MAL_LINK_MAGIC   = 0     MAL_INST_DW_PORT = 65337 [MAL_INST1]     MAL_INST_NAME    = DM02     MAL_HOST         = 10.76.11.205     MAL_PORT         = 65438     MAL_INST_HOST    = 10.76.11.205     MAL_INST_PORT    = 65238     MAL_DW_PORT      = 65138     MAL_LINK_MAGIC   = 0     MAL_INST_DW_PORT = 65338

dmarch.ini​

需要在实例目录新建文件,文件内容如下:

#DaMeng Database Archive Configuration file #this is comments         ARCH_WAIT_APPLY      = 0 [ARCHIVE_LOCAL1]         ARCH_TYPE            = LOCAL         ARCH_DEST            = /data/hbtest/lg/bin_4_80/data/DM02/arch         ARCH_FILE_SIZE       = 2048         ARCH_SPACE_LIMIT     = 102400         ARCH_FLUSH_BUF_SIZE  = 2         ARCH_HANG_FLAG       = 1

d​mwatcher.ini

需要在实例目录新建文件,文件内容如下:

[DM01] DW_TYPE = GLOBAL DW_MODE = AUTO DW_ERROR_TIME = 10 INST_RECOVER_TIME = 60 INST_ERROR_TIME = 10 INST_OGUID = 20250708 INST_INI = /data/hbtest/lg/bin_4_80/data/DM02/dm.ini INST_AUTO_RESTART = 1 INST_STARTUP_CMD = /data/hbtest/lg/bin_4_80/dmserver RLOG_SEND_THRESHOLD = 0 RLOG_APPLY_THRESHOLD = 0

使用 mount​ 状态启动新实例

命令如下:

./dmserver /data/hbtest/lg/bin_4_80/data/DM02/dm.ini mount

修改新实例 oguid 以及数据库状态

命令如下:

## 登录实例 ./disql SYSDBA/DMDBA_hust4400@127.0.0.1:65238 ## 修改 oguid, 数据库状态 alter database standby; sp_set_oguid(20250708);

旧实例新增 dmwatcher

在旧实例的实例目录中创建 dmwatcher.ini 文件,文件内容如下:

[DM01] DW_TYPE = GLOBAL DW_MODE = AUTO DW_ERROR_TIME = 10 INST_RECOVER_TIME = 60 INST_ERROR_TIME = 10 INST_OGUID = 20250708 INST_INI = /data/hbtest/lg/bin_4_80/data/DM02/dm.ini INST_AUTO_RESTART = 1 INST_STARTUP_CMD = /data/hbtest/lg/bin_4_80/dmserver RLOG_SEND_THRESHOLD = 0 RLOG_APPLY_THRESHOLD = 0

修改旧实例的 oguid 以及数据库状态

命令如下:

alter database primary force; sp_set_oguid(20250708);

启动新旧实例的 dmwatcher

命令如下:

./dmwatcher /data/hbtest/lg/bin_4_80/data/DM01/dmwatcher.ini ./dmwatcher /data/hbtest/lg/bin_4_80/data/DM02/dmwatcher.ini

查看 dmmonitor

见到如下截图,则代表搭建成功。

File_file_id=0880b1d4f0dc462cba010adc33958f4b.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服