dm8主备集群与数据守护

一、       达梦数据库主备简介... 2

二、       环境准备... 3

三、       主备库数据同步... 5

四、       主从配置文件参数... 7

4.1      配置dm.ini 7

4.2      配置dmmal.ini 7

4.3      配置本地归档和即时归档dmarch.ini 8

4.4      配置守护进程dmwatcher.ini 9

五、       修改主备库OGUID. 11

5.1      修改主库... 11

5.2      修改备库... 12

六、       配置监视器(一台即可)... 14

七、       启动主备库的实例、守护进程以及监视器... 15

八、       集群启动与关闭... 17

8.1      关闭... 17

8.2      启动... 17

 

一、     达梦数据库主备简介

达梦主备集群顾名思义就是一主一备(也可以一主多备)是一种集成化的高可靠性解决方案,同时满足用户对数据安全性和高可用性的要求。解决由于硬件故障、自然灾害等原因导致的数据库服务长时间中断问题,满足用户不间断提供数据库服务的要求,即实现系统的双机热备功能。在使用的过程中,如果是实时同步模式的话,主机和备机的数据保持完全一致。主机产生一条新的记录时,在记录写入数据库文件之前,会把新产生的redo日志文件发送到备机,由备机重新执行接收到的redo日志,来保证主备集群数据的一致性。

 

 

 

 

二、     环境准备

数据库安装完成

主机名

端口默认号

节点

数据库名

实例名

node1

5240

192.168.152.11

MASTER

MASTER

node2

5240

192.168.152.12

SLAVE

SLAVE

 

 

主节点node1:192.168.152.11  

实例名: MASTER  端口默认:5240

数据库初始化

./dminit PATH=/dm8/data PAGE_SIZE=16 CASE_SENSITIVE=1 CHARSET=0 DB_NAME=MASTER INSTANCE_NAME=MASTER PORT_NUM=5240

创建实例

./dm_service_installer.sh -t dmserver -p MASTER -dm_ini /dm8/data/MASTER/dm.ini

 

从节点node1: 192.168.152.11

实例名: SLAVE  端口默认:5240

数据库初始化

./dminit PATH=/dm8/data PAGE_SIZE=16 CASE_SENSITIVE=1 CHARSET=0 DB_NAME=SLAVE INSTANCE_NAME=SLAVE PORT_NUM=5240

创建实例

./dm_service_installer.sh -t dmserver -p SLAVE -dm_ini /dm8/data/SLAVE/dm.ini

 

 

 

 

都先执行初始化

创建文件夹  mkdir backup

 

 

 

然后只启动主库,启动一次之后,然后用disql工具登陆,进行数据库备份

 

 

 

RMAN> backup database ‘/dm8/data/MASTER/dm.ini’ backupset '/dm8/data/backup';

  

三、     主备库数据同步

将主库的备份文件拷贝到备库同级目录下面:(可以用scp)

拷贝文件到从节点的back文件夹(可以利用xftp工具,手动拖包到从节点机器)

[dmdba@localhost~]$

scp  -r  /dm8/data/backup/back.bak  dmdba@192.168.152.140:/dm8/data/backup

[dmdba@localhost ~]$

 scp  -r  /dm8/data/backup/back.meta  dmdba@192.168.152.140:/dm8/data/backup

 

 

 

 

然后从库利用dmrman工具,冷还原刚才主库所发送过来的备份文件

restore database '/dm8/data/SLAVE/dm.ini' from backupset '/dm8/data/backup'

 

 

 

 

recover database '/dm8/data/SLAVE/dm.ini' from backupset '/dm8/data/backup'

 

 

 

 

recover database '/dm8/data/SLAVE/dm.ini' update db_magic

 

 

 

 

四、     主从配置文件参数

4.1   配置dm.ini  文件在/dm8/data/MASTER下

修改dm.ini文件的4个参数

 

ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID

ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间

MAL_INI = 1 #打开 MAL 系统

ARCH_INI = 1 #打开归档配置

4.2   配置dmmal.ini

主备库的配置必须完全一致(可以使用scp方式传输)

 

 

 

 

MAL_CHECK_INTERVAL       = 5  #MAL 链路检测时间间隔

MAL_CONN_FAIL_INTERVAL   = 5  #判定 MAL 链路断开的时间

[MAL_INST1]

  MAL_INST_NAME          = MASTER          #实例名,和 dm.ini 中的 INSTANCE_NAME 一致

  MAL_HOST               = 192.168.152.11 #MAL 系统监听 TCP 连接的 IP 地址

  MAL_PORT               = 61141           #MAL 系统监听 TCP 连接的端口

  MAL_INST_HOST          = 192.168.152.11 #实例的对外服务 IP 地址

  MAL_INST_PORT          = 5240            #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致

  MAL_DW_PORT            = 52141           #实例对应的守护进程监听 TCP 连接的端口

  MAL_INST_DW_PORT       = 33141           #实例监听守护进程 TCP 连接的端口

[MAL_INST2]

  MAL_INST_NAME          = SLAVE

  MAL_HOST               = 192.168.152.12

  MAL_PORT               = 61142

  MAL_INST_HOST          = 192.168.152.12

  MAL_INST_PORT          = 5240

  MAL_DW_PORT            = 52142

  MAL_INST_DW_PORT       = 33142

 

4.3   配置本地归档和即时归档dmarch.ini

 

 

 

先配置主节点master

 

 

 

[ARCHIVE_TIMELY1]
ARCH_TYPE        =  TIMELY #即时归档类型
ARCH_DEST        = SLAVE  #即时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE        = LOCAL #本地归档类型
ARCH_DEST        = /dm8/data/MASTER/arch #本地归档文件存放路径
ARCH_FILE_SIZE   = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~4294967294M

 

 

再配置从节点slave

[ARCHIVE_TIMELY1]
ARCH_TYPE        =  TIMELY #即时归档类型
ARCH_DEST        = MASTER  #即时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE        = LOCAL #本地归档类型
ARCH_DEST        = /dm8/data/SLAVE/arch #本地归档文件存放路径
ARCH_FILE_SIZE   = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~4294967294M

 

4.4   配置守护进程dmwatcher.ini

故障自动切换模式下,可以实时处理故障,但对网络稳定性要求更高,需要确保主备库之间,主备库与守护进程、确认监视器之间的网络稳定可靠,否则可能会误判主库故障,备库自动接管后,出现多个 Open 状态的主库,引发脑裂。故障手动切换模式下,备库不会自动接管,出现节点故障或者网络故障时,由用户根据各种故障情况,进行人工干预。生产中推荐MANUAL

[dmdba@node1 MASTER]$ pwd

/dm8/data/MASTER

[dmdba@node1 MASTER]$ vim dmwatcher.ini

 

 

 

主库配置文件

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

 

从库配置文件

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

 

 

五、     修改主备库OGUID

5.1   修改主库

以mount 方式启动主库

./dmserver /dm8/data/MASTER/dm.ini mount

 

 

 

以disql工具登陆,修改oguid值

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453332);
alter database primary;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

 

 

 

5.2   修改备库

以mount方式登陆备库

./dmserver /dm8/data/SLAVE/dm.ini mount

 

 

 

 

 

 

以disql工具登陆备库修改oguid值

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

sp_set_oguid(453332);

alter database standby;

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

 

 

 

六、     配置监视器(一台即可)

故障自动切换模式的数据守护系统,必须部署一个确认监视器,否则在出现数据库故障时,会导致数据库服务中断,在主备机器或者同网段第三台新机器上部署即可。

配置监视器,在哪台机器配置都可以,不做限制

[dmdba@node3 MASTER]$ pwd

/dm8/data/MASTER

[dmdba@node3 MASTER]$ vim dmmonitor.ini

 

 

 

MON_DW_Confirm    = 1   #确认监视器模式

MON_LOG_PATH    = /dm8/data/log #监视器日志文件存放路径

MON_LOG_INTERVAL  = 60 #每隔 60s 定时记录系统信息到日志文件

MON_LOG_FILE_SIZE   = 32 #每个日志文件最大 32M

MON_LOG_SPACE_LIMIT  = 0  #不限定日志文件总占用空间

[GRP1]

MON_INST_OGUID    = 453332 #组 GRP1 的唯一 OGUID 值

#以下配置为监视器到组 GRP1 的守护进程的连接信息,以—IP:PORT?的形式配置

#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT

MON_DW_IP     = 192.168.152.11:52141

MON_DW_IP     = 192.168.152.12:52142

 

 

七、     启动主备库的实例、守护进程以及监视器

启动顺序 :启动主备库的实例、守护进程

启动备库的实例、守护进程

最后启动监视器

 

mount 方式启动主备库实例:

./dmserver /dm8/data/MASTER/dm.ini mount

 

 

./dmserver /dm8/data/SLAVE/dm.ini mount

 

 

 

 

 

在bin目录下启动主库的守护进程

./dmwatcher /dm8/data/MASTER/dmwatcher.ini

 

 

 

 

然后再启动备库的守护进程

./dmwatcher /dm8/data/SLAVE/dmwatcher.ini

 

 

 

 

现在关闭node1和node2的防火墙,开启node3上面的监视器,可输入show命令查看状态

./dmmonitor /dm8/data/MASTER/dmmonitor.ini

 

 

 

 

 

 

到了这一步之后,便可以开始建表测试了

主库进入/dm8/bin

./disql SYSDBA/SYSDBA@localhost:5240

SQL>create table test (id int);

 

SQL>insert into values (999999);

备库查找

进入/dm8/bin

./disql SYSDBA/SYSDBA@localhost:5240

 

SQL>select * from test;

 

 

 

 

 

 

切换主备测试

在守护进程操作

Login

输入用户名   密码

如果需要把备库切换为主库    switchover GRP1.SLAVE

把主库切换为备库    switchover GRP1.MASTER

 

 

 

在主库正常的情况下,备库无法操作数据,只能更新来自主库的数据

       

八、         集群启动与关闭

  

8.1   关闭

如果启动了确认监视器,先关闭确认监视器(防止自动接管),关闭备库守护进程(防止重启实例),关闭主库守护进程(防止重启实例),Shutdown 主库,Shutdown 备库。再关闭实例。

8.2   启动

先启动主库实例,在启动主库守护进程、然后备库也一样,先实例再进程,最后启动监视器。

 

posted @ 2021-02-02 16:56  xuchuangye  阅读(1385)  评论(0编辑  收藏  举报