本指南基于单台服务器单网卡(eth0, IP: 192.168.200.31)环境,通过端口错开的方式模拟双节点集群。
| 配置项 | 主库 (GRP1_RT_01) | 备库 (GRP1_RT_02) |
|---|---|---|
| 业务/MAL IP | 192.168.200.31 | 192.168.200.31 |
| 实例名 | GRP1_RT_01 | GRP1_RT_02 |
| 实例端口 (PORT_NUM) | 5236 | 5237 |
| MAL 端口 (MAL_PORT) | 5336 | 5337 |
| 守护进程端口 (MAL_DW_PORT) | 5436 | 5437 |
| 实例守护端口 (MAL_INST_DW_PORT) | 5536 | 5537 |
| OGUID | 45331 | 45331 |
| 安装目录 | /home/dmdba/dmdbms | /home/dmdba/dmdbms |
| 数据目录 | /dmdata/data/DAMENG | /dmdata/data1/DAMENG |
| 归档目录 | /dmdata/arch | /dmdata/arch1 |
mkdir -p /dmdata/data /dmdata/arch /dmdata/dmbak chown -R dmdba:dmdba /dmdata
su - dmdba /home/dmdba/dmdbms/bin/dminit PATH=/dmdata/data INSTANCE_NAME=GRP1_RT_01 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048 SYSDBA_PWD=SYSDBA001 SYSAUDITOR_PWD=SYSDBA001
/home/dmdba/dmdbms/bin/dmserver /dmdata/data/DAMENG/dm.ini
在另开窗口执行disql登录:
/home/dmdba/dmdbms/bin/disql SYSDBA/SYSDBA001@192.168.200.31:5236
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dmdata/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
ALTER DATABASE OPEN;
BACKUP DATABASE BACKUPSET '/dmdata/dmbak/BACKUP_FILE';
exit;
SP_SET_PARA_VALUE (2,'PORT_NUM',5236); SP_SET_PARA_VALUE (2,'DW_INACTIVE_INTERVAL',60); SP_SET_PARA_VALUE (2,'ALTER_MODE_STATUS',0); SP_SET_PARA_VALUE (2,'ENABLE_OFFLINE_TS',2); SP_SET_PARA_VALUE (2,'MAL_INI',1); SP_SET_PARA_VALUE (2,'RLOG_SEND_APPLY_MON',64); exit;
关闭前台启动的 dmserver 进程 (Ctrl+C)。
vi /dmdata/data/DAMENG/dmarch.ini
ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/arch/
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 51200
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_02
vi /dmdata/data/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 10
MAL_CONN_FAIL_INTERVAL = 10
MAL_TEMP_PATH = /dmdata/data/malpath/
MAL_BUF_SIZE = 512
MAL_SYS_BUF_SIZE = 2048
MAL_COMPRESS_LEVEL = 0
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01
MAL_HOST = 192.168.200.31
MAL_PORT = 5336
MAL_INST_HOST = 192.168.200.31
MAL_INST_PORT = 5236
MAL_DW_PORT = 5436
MAL_INST_DW_PORT = 5536
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 192.168.200.31
MAL_PORT = 5337
MAL_INST_HOST = 192.168.200.31
MAL_INST_PORT = 5237
MAL_DW_PORT = 5437
MAL_INST_DW_PORT = 5537
vi /dmdata/data/DAMENG/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 20
INST_ERROR_TIME = 20
INST_RECOVER_TIME = 60
INST_OGUID = 45331
INST_INI = /dmdata/data/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
mkdir -p /dmdata/data1 /dmdata/arch1
chown -R dmdba:dmdba /dmdata/data1 /dmdata/arch1
# 使用 dmrman 恢复数据到备库目录
/home/dmdba/dmdbms/bin/dmrman CTLSTMT="RESTORE DATABASE '/dmdata/data1/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE'"
# 注意:如果dm.ini尚未生成,需先初始化一个空实例或手工拷贝主库dm.ini后修改PORT_NUM等参数再执行恢复。
# 标准做法:初始化备库再覆盖恢复
/home/dmdba/dmdbms/bin/dminit PATH=/dmdata/data1 INSTANCE_NAME=GRP1_RT_02 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048 SYSDBA_PWD=SYSDBA001 SYSAUDITOR_PWD=SYSDBA001
/home/dmdba/dmdbms/bin/dmrman CTLSTMT="RESTORE DATABASE '/dmdata/data1/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE'"
/home/dmdba/dmdbms/bin/dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data1/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dmbak/BACKUP_FILE'"
/home/dmdba/dmdbms/bin/dmrman CTLSTMT="RECOVER DATABASE '/dmdata/data1/DAMENG/dm.ini' UPDATE DB_MAGIC"
/dmdata/data1/DAMENG/dm.ini,确保以下参数:INSTANCE_NAME = GRP1_RT_02
PORT_NUM = 5237
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64
vi /dmdata/data1/DAMENG/dmarch.ini
ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/arch1/
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 51200
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_01
dmmal.ini 和 dmwatcher.ini 内容与主库完全一致,直接拷贝并修改 dmwatcher.ini 中的 INST_INI 路径即可。cp /dmdata/data/DAMENG/dmmal.ini /dmdata/data1/DAMENG/dmmal.ini cp /dmdata/data/DAMENG/dmwatcher.ini /dmdata/data1/DAMENG/dmwatcher.ini
修改 /dmdata/data1/DAMENG/dmwatcher.ini 中的路径:
INST_INI = /dmdata/data1/DAMENG/dm.ini
# 注册主库服务
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_01 -dm_ini /dmdata/data/DAMENG/dm.ini -m mount
# 注册备库服务
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_02 -dm_ini /dmdata/data1/DAMENG/dm.ini -m mount
# 注册主库守护进程
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p Watcher01 -watcher_ini /dmdata/data/DAMENG/dmwatcher.ini
# 注册备库守护进程
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p Watcher02 -watcher_ini /dmdata/data1/DAMENG/dmwatcher.ini
# 启动主库
/home/dmdba/dmdbms/bin/DmServiceGRP1_RT_01 start
# 启动备库
/home/dmdba/dmdbms/bin/DmServiceGRP1_RT_02 start
# 登录主库设置 OGUID 和模式
/home/dmdba/dmdbms/bin/disql SYSDBA/SYSDBA001@192.168.200.31:5236
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SP_SET_OGUID(45331);
ALTER DATABASE PRIMARY;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
exit;
# 登录备库设置 OGUID 和模式
/home/dmdba/dmdbms/bin/disql SYSDBA/SYSDBA001@192.168.200.31:5237
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SP_SET_OGUID(45331);
ALTER DATABASE STANDBY;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
exit;
/home/dmdba/dmdbms/bin/DmWatcherServiceWatcher01 start /home/dmdba/dmdbms/bin/DmWatcherServiceWatcher02 start
vi /home/dmdba/dmdbms/bin/dmmonitor.ini
MON_DW_CONFIRM = 1
MON_LOG_PATH = /home/dmdba/dmdbms/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 512
MON_LOG_SPACE_LIMIT = 2048
[GRP1]
MON_INST_OGUID = 45331
MON_DW_IP = 192.168.200.31:5436, 192.168.200.31:5437
vi /home/dmdba/dmdbms/bin/dmmonitor_manual.ini
MON_DW_CONFIRM = 0
MON_LOG_PATH = /home/dmdba/dmdbms/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 512
MON_LOG_SPACE_LIMIT = 2048
[GRP1]
MON_INST_OGUID = 45331
MON_DW_IP = 192.168.200.31:5436, 192.168.200.31:5437
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor.ini
su - dmdba -c "/home/dmdba/dmdbms/bin/DmMonitorServiceMonitor start"
/home/dmdba/dmdbms/bin/dmmonitor /home/dmdba/dmdbms/bin/dmmonitor_manual.ini
输入 show 命令验证主备库状态是否均为 OPEN 且模式分别为 PRIMARY 和 STANDBY。
停止集群流程:
/home/dmdba/dmdbms/bin/DmMonitorServiceMonitor stop/home/dmdba/dmdbms/bin/DmWatcherServiceWatcher02 stop/home/dmdba/dmdbms/bin/DmWatcherServiceWatcher01 stop/home/dmdba/dmdbms/bin/DmServiceGRP1_RT_02 stop/home/dmdba/dmdbms/bin/DmServiceGRP1_RT_01 stop/home/dmdba/dmdbms/bin/DmServiceGRP1_RT_01 start/home/dmdba/dmdbms/bin/DmServiceGRP1_RT_02 start/home/dmdba/dmdbms/bin/DmWatcherServiceWatcher01 start/home/dmdba/dmdbms/bin/DmWatcherServiceWatcher02 start/home/dmdba/dmdbms/bin/DmMonitorServiceMonitor start文章
阅读量
获赞
