注册
我自己的DCP考试集群守护的配置过程
培训园地/ 文章详情 /

我自己的DCP考试集群守护的配置过程

LMT 2025/06/26 47 0 0

主库主机IP: 192.168.80.10
备库主机IP: 192.168.80.11
监控器主机IP: 192.168.80.11

数据库名 实例名 PORT_NUM MAL_INST_DW_PORT MAL_HOST MAL_PORT MAL_DW_PORT
DM01 DMSVR01 5236 45101 192.168.80.10 55101 65101
DM01 DMSVR02 5236 45121 192.168.80.10 55121 65121

主备机关闭防火墙
systemctl stop firewalld.service

主库操作
dmdba: 使用dbca.sh创建数据库
/dm8/bin/dminit path=/dm8/data DB_NAME=DM01 instance_name=DMSVR01 port_num=5246 SYSDBA_PWD=Dameng123 SYSAUDITOR_PWD=Dameng123

root:创建systemd服务
/dm8/script/root/dm_service_installer.sh -t dmserver -p DMSVR01 -dm_ini /dm8/data/DM01/dm.ini
root:启动主库
systemctl start DmServiceGRP1_RT_01.service

dmdba:确认主库可以访问
/dm8/bin ./disql sysdba/Dameng123:5246

root:关闭实例准备冷备份
systemctl stop DmServiceGRP1_RT_01

dmdba:创建 /dm8/backup 目录
mkdir -p /dm8/backup
cd /dm8/bin
dmrman CTLSTMT="BACKUP DATABASE '/dm8/data/DMDW/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm8/backup/'"

备份文件传输到备机,修改备机文件属组
scp -r * root@192.168.80.11:/dm8/backup

修改主库/dm8/data/DMDW/dm.ini, 注意@所在行参数为需要更改数值
/dm8/data/DMDW/dm.ini

INSTANCE_NAME = GRP1_RT_01
PORT_NUM = 5246
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0 @
ENABLE_OFFLINE_TS = 2 @
MAL_INI = 1 @
ARCH_INI = 1 @
RLOG_SEND_APPLY_MON = 64

添加/dm8/data/DMDW/dmmal.ini
vi /dm8/data/DMDW/dmmal.ini

MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01
MAL_HOST = 192.168.80.10
MAL_PORT = 55101
MAL_INST_HOST = 192.168.80.10
MAL_INST_PORT = 5246
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 192.168.80.11
MAL_PORT = 55121
MAL_INST_HOST = 192.168.80.11
MAL_INST_PORT = 5246
MAL_DW_PORT = 65121
MAL_INST_DW_PORT = 45121

  1. 添加/dm8/data/DMDW/dmarch.ini
    mkdir -p /dm8/arch
    /dm8/data/DMDW/dmarch.ini

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_02
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

  1. 添加/dm8/data/DMDW/dmwatcher.ini
    /dm8/data/DMDW/dmwatcher.ini
    [GRP_SVR]
    DW_TYPE = GLOBAL
    DW_MODE = AUTO
    DW_ERROR_TIME = 10
    INST_RECOVER_TIME = 60
    INST_ERROR_TIME = 10
    INST_OGUID = 453331
    INST_INI = /dm8/data/DMDW/dm.ini
    INST_AUTO_RESTART = 1
    INST_STARTUP_CMD = /dm8/bin/dmserver
    RLOG_SEND_THRESHOLD = 0
    RLOG_APPLY_THRESHOLD = 0

root:创建systemd服务
/dm8/script/root/dm_service_installer.sh -t dmwatcher -p DMWATCHER -watcher_ini /dm8/data/DMDW/dmwatcher.ini -m mount -p GRP1_RT_01

root用户启动实例,并转换到mount状态

查询数据库状态 select STATUS$ from V$INSTANCE;

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(453331); --主备的数据库uid必须保持一致
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
SQL>alter database primary;

备机操作
备库:
dmdba: 使用dbca.sh创建数据库
/dm8/bin/dminit path=/dm8/data DB_NAME=DMDW instance_name=GRP1_RT_02 port_num=5246 SYSDBA_PWD=Dameng123 SYSAUDITOR_PWD=Dameng123

root:创建systemd服务
/dm8/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_02 -dm_ini /dm8/data/DMDW/dm.ini
启动DMAP service
DmAPService start - 注意如果在restore时报不能与dmap服务通信, 需要重启此服务

/dm8/bin/dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DMDW/dm.ini' FROM BACKUPSET '/dm8/backup'"
/dm8/bin/dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DMDW/dm.ini' FROM BACKUPSET '/dm8/backup'"
/dm8/bin/dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DMDW/dm.ini' UPDATE DB_MAGIC"

修改备库/dm8/data/DMDW/dm.ini
INSTANCE_NAME = GRP1_RT_02
PORT_NUM = 5246
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1 @
ARCH_INI = 1 @
RLOG_SEND_APPLY_MON = 64

添加/dm8/data/DMDW/dmmal.ini
vi /dm8/data/DMDW/dmmal.ini

MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01
MAL_HOST = 192.168.80.10
MAL_PORT = 55101
MAL_INST_HOST = 192.168.80.10
MAL_INST_PORT = 5246
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 192.168.80.11
MAL_PORT = 55121
MAL_INST_HOST = 192.168.80.11
MAL_INST_PORT = 5246
MAL_DW_PORT = 65121
MAL_INST_DW_PORT = 45121

添加/dm8/data/DMDW/dmarch.ini
dmdba: mkdir -p /dm8/arch
vi /dm8/data/DMDW/dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_01
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

以 Mount 方式启动备库
root:/dm8/bin/dmserver /dm8/data/DMDW/dm.ini mount &

/dm8/bin/disql sysdba/Dameng123:5246
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(453331);
SQL>alter database standby;

  1. 添加/dm8/data/DMDW/dmwatcher.ini
    /dm8/data/DMDW/dmwatcher.ini
    [GRP_SVR]
    DW_TYPE = GLOBAL
    DW_MODE = AUTO
    DW_ERROR_TIME = 10
    INST_RECOVER_TIME = 60
    INST_ERROR_TIME = 10
    INST_OGUID = 453331
    INST_INI = /dm8/data/DMDW/dm.ini
    INST_AUTO_RESTART = 1
    INST_STARTUP_CMD = /dm8/bin/dmserver
    RLOG_SEND_THRESHOLD = 0
    RLOG_APPLY_THRESHOLD = 0

root:创建systemd服务
/dm8/script/root/dm_service_installer.sh -t dmwatcher -p DMWATCHER -watcher_ini /dm8/data/DMDW/dmwatcher.ini -m mount -p GRP1_RT_02

主机上启动监控:
vi /dm8/data/DMDW/dmmonitor.ini

MON_DW_CONFIRM = 1
MON_LOG_PATH = /dm8/data/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP_SVR]
MON_INST_OGUID = 453331
MON_DW_IP = 192.168.80.10:65101
MON_DW_IP = 192.168.80.11:65121

root 启动监视器
前台命令行:/dm8/bin/dmmonitor /dm8/data/DMDW/dmmonitor.ini 只用前台启动
注册服务
cd /dm8/script/root
./dm_service_installer.sh -t dmmonitor -p DMMONITOR -monitor_ini /dm8/data/DMDW/dmmonitor.ini
systemctl start DmMonitorServiceDMMONITOR

启动守护进程

  1. 主库: /dm8/bin/dmwatcher /dm8/data/DMDW/dmwatcher.ini
  2. 备库:/dm8/bin/dmwatcher /dm8/data/DMDW/dmwatcher.ini
    如果在OS中已经注册守护进程,可以通过systemctl启动。
    主库:systemctl start DmWatcherServiceGRP1_RT_01
    备库:systemctl start DmWatcherServiceGRP1_RT_02

测试:
主机:
SQL>create user john identified by Dameng123;
SQL>grant create table to john;
SQL> connect john/Dameng123:5246
SQL>select user();
SQL>create table t (id int primary key, name varchar(10));
SQL>insert into t values (10,'test');
SQL>insert into t values (20,'test');
SQL>commit;
备机:
SQL> select * from john.t;

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服