1.1、守护进程
守护进程(dmwatcher)是 DM 数据守护系统不可或缺的核心部件,是数据库实例和监视器之间信息流转的桥梁。数据库实例向本地守护进程发送信息,接收本地守护进程的消息和命令;监视器(dmmonitor)接收守护进程的消息,并向守护进程发送命令;数据库实例与监视器之间没有直接的消息交互;守护进程解析并执行监视器发起的各种命令(Switchover/Takeover/Open force 等),并在必要时通知数据库实例执行相应的操作
1.2、监视器
监视器(dmmonitor)是基于监视器接口实现的一个命令行工具,是 DM 数据守护系统的重要组成部分。
通过监视器,可以监控数据守护系统的运行情况,获取主备库状态、守护进程状态、以及主备库数据同步情况等信息。同时,监视器(dmmonitor)还提供了一系列命令来管理数据守护系统。
1.3、MAL 系统
MAL 系统是基于 TCP 协议实现的一种内部通信机制,具有可靠、灵活、高效的特性。DM 通过 MAL 系统实现 Redo 日志传输,以及其他一些实例间的消息通讯。
一、环境准备
192.168.82.205 主机
192.168.82.206 备机
192.168.82.207 监视器
端口规划:
PORT_NUM、MAL_INST_DW_PORT、MAL_DW_PORT是后续配置用到的几个主要参数
服务器类型 | 数据库名 | 实例名 | PORT_NUM | MAL_INST_DW_PORT | MAL_DW_PORT |
主机 | DM01 | DMSVR01 | 5236 | 45101 | 65101 |
备机 | DM01 | DMSVR02 | 5236 | 45121 | 65121 |
新建dmdba用户:
su - root groupadd dinstall useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba id dmdba passwd dmdba
主机与备机数据库与实例安装:
拷贝和挂载iso安装文件 略过 挂载到mnt文件夹下
安装:
/mnt/dm/DMInstall.bin -i
主机与备机分别注册实例:(主机备机DN_NAME一致)
./dminit PATH=/dm8/data DB_NAME=DM01 INSTANCE_NAME=DMSVR01 PORT_NUM=5236 PAGE_SIZE=16 EXTENT_SIZE=32 LOG_SIZE=500 CASE_SENSITIVE=1 SYSDBA_PWD=DM01SYSDBA SYSAUDITOR_PWD=DM01SYSDBA
./dminit PATH=/dm8/data DB_NAME=DM01 INSTANCE_NAME=DMSVR02 PORT_NUM=5236 PAGE_SIZE=16 EXTENT_SIZE=32 LOG_SIZE=500 CASE_SENSITIVE=1 SYSDBA_PWD=DM01SYSDBA SYSAUDITOR_PWD=DM01SYSDBA
以上使用dmdba用户运行
二、配置主机
配置dm.ini
到安装目录下/data/DM01目录下打开dm.ini
确保实例名和端口号正确,并修改MAL_INI=1 ; ARCH_INI=1
INSTANCE_NAME = DMSVR01 PORT_NUM = 5236 DW_INACTIVE_INTERVAL = 60 ALTER_MODE_STATUS = 0 ENABLE_OFFLINE_TS = 2 MAL_INI = 1 ARCH_INI = 1 RLOG_SEND_APPLY_MON
192.168.82.205
= 64
以下文件同样都在该目录下新建
新建dmmal.ini
配置上端口规划中规划的各端口参数:
PORT_NUM、MAL_INST_DW_PORT、MAL_DW_PORT
[MAL_INST1]中填写主机的、
[MAL_INST2]中填写备机的
MAL_CHECK_INTERVAL = 5 MAL_CONN_FAIL_INTERVAL = 5 [MAL_INST1] MAL_INST_NAME = DMSVR01 MAL_HOST = 192.168.82.205 MAL_PORT = 55101 MAL_INST_HOST = 192.168.82.205 MAL_INST_PORT = 5236 MAL_DW_PORT = 65101 MAL_INST_DW_PORT = 45101 [MAL_INST2] MAL_INST_NAME = DMSVR02 MAL_HOST = 192.168.82.206 MAL_PORT = 55121 MAL_INST_HOST = 192.168.82.206 MAL_INST_PORT = 5236 MAL_DW_PORT = 65121 MAL_INST_DW_PORT = 45121
新建dmarch.ini
主机中ARCH_DEST填写备机的实例名,同理下面备机配置中填写主机实例名
[ARCHIVE_REALTIME] ARCH_TYPE = REALTIME ARCH_DEST = DMSVR02 [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = /dm8/data/DM01/arch ARCH_FILE_SIZE = 128 ARCH_SPACE_LIMIT = 0
新建dmwatcher.ini
[GRP1] 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/DM01/dm.ini INST_AUTO_RESTART = 1 INST_STARTUP_CMD = /dm8/bin/dmserver RLOG_SEND_THRESHOLD = 0 RLOG_APPLY_THRESHOLD = 0
三、配置备机
配置dm.ini
INSTANCE_NAME = DMSVR02 PORT_NUM = 5236 DW_INACTIVE_INTERVAL = 60 ALTER_MODE_STATUS = 0 ENABLE_OFFLINE_TS = 2 MAL_INI = 1 ARCH_INI = 1 RLOG_SEND_APPLY_MON = 64
新建dmmal.ini
与主机完全一致,可以直接从主机通过scp命令将整个ini文件复制到备机即可
MAL_CHECK_INTERVAL = 5 MAL_CONN_FAIL_INTERVAL = 5 [MAL_INST1] MAL_INST_NAME = DMSVR01 MAL_HOST = 192.168.82.205 MAL_PORT = 55101 MAL_INST_HOST = 192.168.82.205 MAL_INST_PORT = 5236 MAL_DW_PORT = 65101 MAL_INST_DW_PORT = 45101 [MAL_INST2] MAL_INST_NAME = DMSVR02 MAL_HOST = 192.168.82.206 MAL_PORT = 55121 MAL_INST_HOST = 192.168.82.206 MAL_INST_PORT = 5236 MAL_DW_PORT = 65121 MAL_INST_DW_PORT = 45121
新建dmarch.ini
[ARCHIVE_REALTIME] ARCH_TYPE = REALTIME ARCH_DEST = DMSVR01 [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = /dm8/data/DM01/arch ARCH_FILE_SIZE = 128 ARCH_SPACE_LIMIT = 0
新建dmwatcher.ini
[GRP1] 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/DM01/dm.ini INST_AUTO_RESTART = 1 INST_STARTUP_CMD = /dm8/bin/dmserver RLOG_APPLY_THRESHOLD = 0
四、监视机配置
监视机安装数据库即可,可以不用注册实例
/dm8/data/DM01
新建dmmonitor.ini
MON_DW_CONFIRM = 1 MON_LOG_PATH = /dm8/log MON_LOG_INTERVAL = 60 MON_LOG_FILE_SIZE = 32 MON_LOG_SPACE_LIMIT = 0 [GRP1] MON_INST_OGUID = 453331 ##dmmal.ini####MAL_HOST:MAL_DW_PORT################### MON_DW_IP = 192.168.82.205:65101 MON_DW_IP = 192.168.82.206:65121
五、备份主机数据库
先使用root用户关停dm服务再进行备份
./dmrman CTLSTMT="BACKUP DATABASE '/dm8/data/DM01/dm.ini' FULL TO fullbak01 BACKUPSET '/dm8/backup/fullbak01'"
然后将备份好的fullbak01文件拷贝到备机,
完成后先不要启动dm服务,后续需要以mount方式启动,否则无法完成集群
在备机还原数据库
./dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/DM01/dm.ini' FROM BACKUPSET '/dm8/backup/fullbak01'"
./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DM01/dm.ini' FROM BACKUPSET '/dm8/backup/fullbak01'"
./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/DM01/dm.ini' UPDATE DB_MAGIC"
同上,完成后先不要启动dm服务
主机与备机分别以mount方式启动数据库
dmserver /dm8/data/DM01/dm.ini mount
一定要以Mount方式启动数据库实例,否则系统启动时会重构回滚表空间,生成Redo日志;
并且,启动后应用可能连接到数据库实例进行操作,破坏主备库的数据一致性。
数据守护配置结束后,守护进程会自动Open数据库。
打开disql进行参数配置
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); SQL> SP_SET_OGUID(453331); SQL> ALTER DATABASE PRIMARY; SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
主机与备机都分别运行以上的命令
六、启动守护进程
在主机、备机分别启动watcher:
su - dmdba /dm8/bin/dmwatcher /dm8/data/DM01/dmwatcher.ini
这里虽然启动,但是发现报错:dmwatcher.ini中配置的oguid与本机的oguid不一致
原因是先在disql中进行了参数的配置(SP_SET_OGUID(453331);)后,才还原的数据库,所以再重新执行一次SP_SET_OGUID(453331);
再次运行,成功启动:
启动监视器
在监视机中启动监视器
dmmonitor /dm8/dmmonitor.ini
标签:主备,PORT,dm8,集群,ini,DW,DM8,INST,MAL From: https://www.cnblogs.com/cpy-648412294/p/16666500.html