12 de enero de 2021: proceso de implementación del clúster de separación de lectura y escritura del guardián de la base de datos de Damen 8 (dos nodos)

Proceso de implementación del clúster de separación de lectura y escritura de Dameng 8 database guardian (dos nodos)



1. Descripción ambiental

Nombre de host IP utilizar sistema operativo PORT_NUM MAL_INST_DW_PORT MAL_PORT MAL_DW_PORT
DM_P 192.168.180.130 192.168.181.130 主 库 GRP1_RWW_01 Redhat 6,9 32141 33141 61141 52141
DM_S 192.168.180.131 192.168.181.131 主 库 GRP1_RWW_02 Redhat 6,9 32142 33142 61142 52142
DM_M 192.168.180.132 Monitor Redhat 6,9

PORT_NUM: puerto de escucha de instancia de base de datos
MAL_INST_DW_PORT: demonio de monitoreo de instancia puerto de conexión TCP
MAL_PORT: puerto de conexión TCP de monitoreo de sistema MAL
MAL_DW_PORT: puerto de conexión TCP de monitoreo de demonio correspondiente de instancia

2. Cree usuarios y grupos, cree directorios (todas las operaciones de nodo)

El guión es el siguiente:

groupadd -g 1001 dinstall
useradd -u 1001 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
id dmdba
passwd dmdba
mkdir -p /home/{
    
    dmdata,dmarch,dmbak,dmdbms}
chown -R dmdba:dinstall /home/{
    
    dmdata,dmarch,dmbak,dmdbms}
chmod -R 775 /home/{
    
    dmdata,dmarch,dmbak,dmdbms}

3. Instale el software de la base de datos e inicialice la base de datos (todas las operaciones del nodo)

3.1 Monte el software de duplicación de datos

mount -o loop /home/soft/dm8_20200907_x86_rh6_64_ent_8.1.1.126.iso /mnt/dmsoft

3.2 Instalar el software de la base de datos

su - dmdba
cd /mnt/dmsoft
./DMInstall.bin -i
请以root系统用户执行命令:
/opt/DM8/script/root/root_installer.sh

3.3 Inicializar la base de datos

./dminit path=/home/dmdata  PAGE_SIZE=16 
主备库初始化之后需要open一次才算初始化完成

安装和初始化数据库可以参考以下文档
https://blog.csdn.net/beatlove123/article/details/110489366

Cuarto, configure el clúster de protección de datos

4.1 Configuración de la biblioteca principal

4.1.1 Configurar dm.ini

INSTANCE_NAME = GRP1_RT_01 
PORT_NUM = 32141 #数据库实例监听端口 
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间 
ALTER_MODE_STATUS = 0 
#不允许手工方式修改实例模式/状态/OGUID 
ENABLE_OFFLINE_TS = 2 
#不允许备库 OFFLINE 表空间 
MAL_INI = 1 
#打开 MAL 系统
ARCH_INI = 1 
#打开归档配置 
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

4.1.2 Configurar dmmal.ini

MAL_CHECK_INTERVAL = 5 
#MAL 链路检测时间间隔 
MAL_CONN_FAIL_INTERVAL = 5 
#判定 MAL 链路断开的时间 
[MAL_INST1] 
MAL_INST_NAME = GRP1_RT_01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致 
MAL_HOST = 192.168.189.130 #MAL 系统监听 TCP 连接的 IP 地址 
MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口 
MAL_INST_HOST = 192.168.179.130 #实例的对外服务 IP 地址 
MAL_INST_PORT = 32141 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致 
MAL_DW_PORT = 52141 #实例本地的守护进程监听 TCP 连接的端口 
MAL_INST_DW_PORT = 33141 #实例监听守护进程 TCP 连接的端口 
[MAL_INST2] 
MAL_INST_NAME = GRP1_RT_02 
MAL_HOST = 192.168.189.131 
MAL_PORT = 61142 
MAL_INST_HOST = 192.168.179.131 
MAL_INST_PORT = 32142 
MAL_DW_PORT = 52142 
MAL_INST_DW_PORT = 33142

4.1.3 Configurar dmarch.ini

ARCH_WAIT_APPLY = 1
[ARCHIVE_REALTIME] 
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = GRP1_RT_02 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /home/dmdba/dm8/dmarch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~4294967294M

4.1.4 Ubicación dmwatcher.ini

[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一 OGUID 值
INST_INI = /home/dmdba/dm8/dmdata/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /home/dmdba/dm8/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

4.1.5 Modificar el estado de la base de datos

启动数据库到mount状态
./dmserver /home/dmdba/dm8/dmdata/DAMENG/dm.ini mount 
Disql登录
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); 
SQL>sp_set_oguid(453331); 
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0); 
SQL>alter database primary; 

4.2 configuración de la base de datos en espera

4.2.1 Configurar dm.ini

INSTANCE_NAME = GRP1_RWW_02 
PORT_NUM = 32142 #数据库实例监听端口 
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间 
ALTER_MODE_STATUS = 0 
#不允许手工方式修改实例模式/状态/OGUID 
ENABLE_OFFLINE_TS = 2 
#不允许备库 OFFLINE 表空间 
MAL_INI = 1 
#打开 MAL 系统
ARCH_INI = 1 
#打开归档配置 
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

4.2.2 Configurar dmmal.ini

MAL_CHECK_INTERVAL = 5 
#MAL 链路检测时间间隔 
MAL_CONN_FAIL_INTERVAL = 5 
#判定 MAL 链路断开的时间 
[MAL_INST1] 
MAL_INST_NAME = GRP1_RWW_01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致 
MAL_HOST = 192.168.189.130 #MAL 系统监听 TCP 连接的 IP 地址 
MAL_PORT = 61141 
#MAL 系统监听 TCP 连接的端口 
MAL_INST_HOST = 192.168.179.130 #实例的对外服务 IP 地址 
MAL_INST_PORT = 32141 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致 
MAL_DW_PORT = 52141 #实例本地的守护进程监听 TCP 连接的端口 
MAL_INST_DW_PORT = 33141 #实例监听守护进程 TCP 连接的端口 
[MAL_INST2] 
MAL_INST_NAME = GRP1_RWW_02 
MAL_HOST = 192.168.189.131 
MAL_PORT = 61142 
MAL_INST_HOST = 192.168.179.131 
MAL_INST_PORT = 32142 
MAL_DW_PORT = 52142 
MAL_INST_DW_PORT = 33142

4.2.3 Configurar dmarch.ini

ARCH_WAIT_APPLY = 1
[ARCHIVE_REALTIME] 
ARCH_TYPE = REALTIME #即时归档类型
ARCH_DEST = GRP1_RWW_01 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /home/dmdba/dm8/dmarch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~4294967294M

4.2.4 Ubicación dmwatcher.ini

[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一 OGUID 值
INST_INI = /home/dmdba/dm8/dmdata/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /home/dmdba/dm8/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

4.2.5 Modificar el estado de la base de datos

启动数据库到mount状态
./dmserver /home/dmdba/dm8/dmdata/DAMENG/dm.ini mount 
Disql登录
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); 
SQL>sp_set_oguid(453331); 
SQL>alter database standby; 
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0); 

4.3 Configurar el monitor dmmonitor.ini

MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /home/dmdba/dm8/dmdata/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453331 #组 GRP1 的唯一 OGUID 值 #以下配置为监视器到组 GRP1 的守护进程的连接信息,以―IP:PORT‖的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
MON_DW_IP = 192.168.189.130:52141
MON_DW_IP = 192.168.189.131:52142

4.4 Inicie el monitor para ver el estado del clúster

[dmdba@RH6 bin]$ ./dmmonitor /home/dmdba/dm8/monitor/dmmonitor.ini 
[monitor]         2020-11-30 23:40:48: DMMONITOR[4.0] V8
[monitor]         2020-11-30 23:40:48: DMMONITOR[4.0] IS READY.
[monitor]         2020-11-30 23:40:48: 收到守护进程(GRP1_RWW_01)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2020-11-30 17:14:54  OPEN           OK        GRP1_RWW_01       OPEN        PRIMARY   VALID    10       56226           56226           
[monitor]         2020-11-30 23:40:48: 收到守护进程(GRP1_RWW_02)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2020-11-30 17:15:05  OPEN           OK        GRP1_RWW_02       OPEN        STANDBY   VALID    10       56226           56226  
ISTATUS、RSTAT   状态显示为以上图表示正常           

4.5 Conmutación automática de falla simulada

关闭主数据库服务器模拟主库故障,监视器会打印如下日志
[monitor]         2020-11-27 23:45:05: 检测到PRIMARY实例故障,开始对组(GRP1)执行自动接管
[monitor]         2020-11-27 23:45:05: 通知组(GRP1)当前活动的守护进程设置MID
[monitor]         2020-11-27 23:45:05: 通知组(GRP1)当前活动的守护进程设置MID成功
[monitor]         2020-11-27 23:45:05: 开始使用实例GRP1_RT_02接管
[monitor]         2020-11-27 23:45:05: 通知守护进程GRP1_RT_02切换TAKEOVER状态
[monitor]         2020-11-27 23:45:05: 守护进程(GRP1_RT_02)状态切换 [OPEN-->TAKEOVER]
[monitor]         2020-11-27 23:45:06: 切换守护进程GRP1_RT_02为TAKEOVER状态成功
[monitor]         2020-11-27 23:45:06: 实例GRP1_RT_02开始执行SP_SET_GLOBAL_DW_STATUS(0, 7)语句
[monitor]         2020-11-27 23:45:06: 实例GRP1_RT_02执行SP_SET_GLOBAL_DW_STATUS(0, 7)语句成功
[monitor]         2020-11-27 23:45:06: 实例GRP1_RT_02开始执行SP_APPLY_KEEP_PKG()语句
[monitor]         2020-11-27 23:45:06: 实例GRP1_RT_02执行SP_APPLY_KEEP_PKG()语句成功
[monitor]         2020-11-27 23:45:06: 实例GRP1_RT_02开始执行ALTER DATABASE MOUNT语句
[monitor]         2020-11-27 23:45:08: 实例GRP1_RT_02执行ALTER DATABASE MOUNT语句成功
[monitor]         2020-11-27 23:45:08: 实例GRP1_RT_02开始执行ALTER DATABASE PRIMARY语句
[monitor]         2020-11-27 23:45:08: 实例GRP1_RT_02执行ALTER DATABASE PRIMARY语句成功
[monitor]         2020-11-27 23:45:11: 通知实例GRP1_RT_02修改所有归档状态无效
[monitor]         2020-11-27 23:45:11: 修改所有实例归档为无效状态成功
[monitor]         2020-11-27 23:45:11: 实例GRP1_RT_02开始执行ALTER DATABASE OPEN FORCE语句
[monitor]         2020-11-27 23:45:13: 实例GRP1_RT_02执行ALTER DATABASE OPEN FORCE语句成功
[monitor]         2020-11-27 23:45:13: 实例GRP1_RT_02开始执行SP_SET_GLOBAL_DW_STATUS(7, 0)语句
[monitor]         2020-11-27 23:45:13: 实例GRP1_RT_02执行SP_SET_GLOBAL_DW_STATUS(7, 0)语句成功
[monitor]         2020-11-27 23:45:13: 通知守护进程GRP1_RT_02切换OPEN状态
[monitor]         2020-11-27 23:45:13: 守护进程(GRP1_RT_02)状态切换 [TAKEOVER-->OPEN]
[monitor]         2020-11-27 23:45:14: 切换守护进程GRP1_RT_02为OPEN状态成功
[monitor]         2020-11-27 23:45:14: 通知组(GRP1)的守护进程执行清理操作
[monitor]         2020-11-27 23:45:14: 清理守护进程(GRP1_RT_02)请求成功
[monitor]         2020-11-27 23:45:15: 使用实例GRP1_RT_02接管成功
[monitor]         2020-11-27 23:45:15:(GRP1)使用实例GRP1_RT_02自动接管成功

4.6 Verificación del estado del clúster después de una falla

[monitor]         2020-11-27 23:51:38: 守护进程(GRP1_RT_01)状态切换 [NONE-->OPEN]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2020-11-27 17:25:45  OPEN           OK        GRP1_RT_01       OPEN        STANDBY   NULL     10       56226           56226           

[monitor]         2020-11-27 23:51:39: 守护进程(GRP1_RT_02)状态切换 [OPEN-->RECOVERY]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2020-11-27 17:25:56  RECOVERY       OK        GRP1_RT_02       OPEN        PRIMARY   VALID    11       57584           57584           

[monitor]         2020-11-27 23:51:40: 守护进程(GRP1_RT_02)状态切换 [RECOVERY-->OPEN]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2020-11-27 17:25:57  OPEN           OK        GRP1_RT_02       OPEN        PRIMARY   VALID    11       57584           57584 

para resumir

Si hay algún problema durante el proceso de instalación, ¡verifique la configuración! ¡Comprueba la configuración! ¡Comprueba la configuración! En la mayoría de los casos, el problema se debe a una configuración incorrecta. Este es el método para configurar dos nodos, si tiene varios nodos, solo necesita agregarlos en el archivo de configuración.

Supongo que te gusta

Origin blog.csdn.net/beatlove123/article/details/112364508
Recomendado
Clasificación