DM8:数据守护搭建(单实例)

DM8数据守护搭建

目录

一、 搭建前准备 

二、 主库配置 

2.1 dmini配置 

2.2 dmmal.ini配置 

2.3 dmarch.ini配置 

2.4 dmwatcher.ini配置 

2.5 以mount方式启动主库 

2.6 设置OGUID 

2.7 修改数据库模式为primary 

三、 备库配置 

3.1 dm.ini配置 

3.2 dmmal.ini配置 

3.3 dmarch.ini配置 

3.4 dmwatcher.ini配置 

3.5 以mount方式启动备库 

3.6 设置OGUID 

3.7 修改数据库模式为standby 

四、 同步主备数据 

4.1 备份前注意 

4.2 备份主库 

4.3 还原备库 

4.4 mount主备库 

五、 监视器配置 

六、 启动守护与监视器 

6.1 启动守护进程 

6.2 启动监视器进程 

七、 数据同步验证 

7.1 操作前LSN与归档信息 

7.2 插入数据 

7.3 操作后LSN与归档信息 

一、搭建前准备

三台虚机,P1,S1,M1。

P1上搭建主库,需要两块网卡,一块接入内部网络交换模块,一块接入到外部交换机。

S1上搭建备库,需要两块网卡,一块接入内部网络交换模块,一块接入到外部交换机。

如果只有一块网卡,可以跳转下面链接创建虚拟网卡

Linux网卡配置以及如何设置虚拟网卡_吴用的博客很有用啊!!!-CSDN博客_linux配置虚拟网卡

M1上安装MONITOR。

要确保三台虚机网络互通,都提前装好DM实例,并且各实例使用的DM服务器版本应一致,同时还应注意各实例所在主机的操作系统位数、大小端模式、时区及时间设置都应一致,以及使用同一个用户启动DM服务器和守护进程dmwatcher,以免系统在运行时出现意想不到的错误。

P1:

P2:

M1:

端口规划:

实例名

PORT_NUM

MAL_INST_DW_PORT

MAL_HOST

MAL_PORT

MAL_DW_PORT

GRP1_RT_01

5236

33141

192.168.80.130

61141

52141

GRP1_RT_02

5236

33142

192.168.80.128

61142

52142

 二、主库配置

2.1dmini配置

vi /u01/dmdbms2/data/DAMENG/dm.ini加入以下内容

INSTANCE_NAME  = GRP1_RT_01

PORT_NUM      = 5236 #数据库实例监听端口

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次的日志发送信息

2.2dmmal.ini配置

配置MAL系统,各主备库的dmmal.ini配置必须完全一致,MAL_HOST使用内部网络IP,MAL_PORT与dm.ini中PORT_NUM使用不同的端口值,MAL_DW_PORT是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口

vi /u01/dmdbms2/data/DAMENG/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.80.130  #MAL系统监听TCP连接的IP地址

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

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

  MAL_INST_PORT         = 5236 #实例的对外服务端口,和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.80.128

  MAL_PORT               = 61142

  MAL_INST_HOST          = 192.168.80.129

  MAL_INST_PORT          = 5236

  MAL_DW_PORT              = 52142

  MAL_INST_DW_PORT      = 33142

2.3​​​​​​dmarch.ini配置

除了本地归档外,其他归档配置项中的ARCH_DEST表示实例是Primary模式时,需要同步归档数据的目标实例名。

当前实例GRP1_RT_01是主库,需要向GRP1_RT_02(实时备库)同步数据,因此实时归档的ARCH_DEST配置为GRP1_RT_02。

vi /u01/dmdbms2/data/DAMENG/dmarch.ini

[ARCHIVE_REALTIME]

ARCH_TYPE   = REALTIME     #实时归档类型

ARCH_DEST   = GRP1_RT_02     #实时归档目标实例名

[ARCHIVE_LOCAL1]

ARCH_TYPE   = LOCAL #本地归档类型

ARCH_DEST   = /u01/dmdbms2/data/DAMENG/arch #本地归档文件存放路径

ARCH_FILE_SIZE     = 128       #单位Mb,本地单个归档文件最大值

ARCH_SPACE_LIMIT = 0          #单位Mb,0表示无限制,范围1024~2147483647M

2.4dmwatcher.ini配置

vi /u01/dmdbms2/data/DAMENG/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         = /u01/dmdbms2/data/DAMENG/dm.ini    #dm.ini配置文件路径

INST_AUTO_RESTART    = 1 #打开实例的自动启动功能

INST_STARTUP_CMD     = /u01/dmdbms/bin/dmserver #命令行方式启动

RLOG_SEND_THRESHOLD  = 0           #指定主库发送日志到备库的时间阈值,默认关闭

RLOG_APPLY_THRESHOLD = 0            #指定备库重演日志的时间阈值,默认关闭

2.5以mount方式启动主库

dmserver /u01/dmdbms2/data/DAMENG/dm.ini mount

三、备库配置

3.1dm.ini配置

vi /u01/dmdbms2/data/DAMENG/dm.ini加入以下内容

INSTANCE_NAME  = GRP1_RT_02

PORT_NUM      = 5236 #数据库实例监听端口

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次的日志发送信息

3.2dmmal.ini配置

和主库配置完全一致即可

vi /u01/dmdbms2/data/DAMENG/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.80.130  #MAL系统监听TCP连接的IP地址

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

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

  MAL_INST_PORT         = 5236 #实例的对外服务端口,和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.80.128

  MAL_PORT               = 61142

  MAL_INST_HOST          = 192.168.80.129

  MAL_INST_PORT          = 5236

  MAL_DW_PORT              = 52142

  MAL_INST_DW_PORT      = 33142

3.3dmarch.ini配置

vi /u01/dmdbms2/data/DAMENG/dmarch.ini

[ARCHIVE_REALTIME]

ARCH_TYPE   = REALTIME     #实时归档类型

ARCH_DEST   = GRP1_RT_01     #实时归档目标实例名

[ARCHIVE_LOCAL1]

ARCH_TYPE   = LOCAL #本地归档类型

ARCH_DEST   = /u01/dmdbms2/data/DAMENG/arch #本地归档文件存放路径

ARCH_FILE_SIZE     = 128       #单位Mb,本地单个归档文件最大值

ARCH_SPACE_LIMIT = 0          #单位Mb,0表示无限制,范围1024~2147483647M

3.4dmwatcher.ini配置

vi /u01/dmdbms2/data/DAMENG/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           = /u01/dmdbms2/data/DAMENG/dm.ini #dm.ini配置文件路径

INST_AUTO_RESTART   = 1 #打开实例的自动启动功能

INST_STARTUP_CMD   = /u01/dmdbms/bin/dmserver #命令行方式启动

RLOG_APPLY_THRESHOLD= 0         #指定备库重演日志的时间阈值,默认关闭

3.5以mount方式启动备库

 dmserver /u01/dmdbms2/data/DAMENG/dm.ini mount

四、同步主备数据

4.1备份前注意

配置数据守护V4.0之前,必须先通过备份还原方式同步各数据库的数据,确保各数据的数据保持完全一致。主库可以是新初始化的数据库,也可以是正在生产、使用中的数据库。

不能使用分别初始化库或者直接拷贝数据文件的方法,原因如下:

  • 每个库都有一个永久魔数permenant_magic,一经生成,永远不会改变,主库传送日志时会判断这个值是否一样,确保是来自同一个数据守护环境中的库,否则传送不了日志。
  • 由于dminit初始化数据库时,会生成随机密钥用于加密,每次生成的密钥都不相同,备库无法解析采用主库密钥加密的数据。
  • 每个库都有一个数据库魔数(DB_MAGIC),每经过一次还原、恢复操作,DB_MAGIC就会产生变化,需要通过这种方式来区分同一个数据守护环境中各个不同的库。

备注:

如果需要使用Huge表,在初始化库时需要将建库参数HUGE_WITH_DELTA和RLOG_GEN_FOR_HUGE都配置为1。

对于新初始化的库,首次启动不允许使用Mount方式,需要先正常启动并正常退出,然后才允许Mount方式启动。

准备数据时,如果主库是新初始化的库,先正常启动并正常退出,然后再使用备份还原方式准备备库数据。

4.2备份主库

需要先将主库关闭,后用DMRMAN备份

DMRMAN>backup database '/u01/dmdbms2/data/DAMENG/dm.ini' full backupset '/u01/dmdbms2/data/DAMENG/bak';

备份完成后将备份文件传至备库

scp /u01/dmdbms2/data/DAMENG/bak/* dmdba@192.168.80.131:/u01/dmdbms2/data/DAMENG/bak/

 4.3还原备库

需要先将备库关闭,后用DMRMAN还原

DMRMAN>restore database '/u01/dmdbms2/data/DAMENG/dm.ini' from backupset '/u01/dmdbms2/data/DAMENG/bak';

DMRMAN>recover database '/u01/dmdbms2/data/DAMENG/dm.ini' from backupset '/u01/dmdbms2/data/DAMENG/bak';

DMRMAN>RECOVER DATABASE '/u01/dmdbms2/data/DAMENG/dm.ini' UPDATE DB_MAGIC;

 4.4mount主备库

 dmserver /u01/dmdbms2/data/DAMENG/dm.ini mount

4.5设置OGUID,修改主数据库模式为primary

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);

4.6设置OGUID,修改备数据库模式为standby

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);

五、监视器配置

由于主库和实时备库的守护进程配置为自动切换模式,因此这里选择配置确认监视器。和普通监视器相比,确认监视器除了相同的命令支持外,在主库发生故障时,能够自动通知实时备库接管为新的主库,具有自动故障处理的功能。

修改dmmonitor.ini配置确认监视器,其中MON_DW_IP中的IP和PORT和dmmal.ini中的MAL_HOST和MAL_DW_PORT配置项保持一致。

vi  /u01/dmdbms2/data/DAMENG/dmmonitor.ini

MON_DW_CONFIRM = 1   #确认监视器模式

MON_LOG_PATH = /u01/dmdbms2/data/DAMENG/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.80.130:52141

MON_DW_IP = 192.168.80.128:52142

六、启动守护与监视器

6.1启动守护进程

主备库都需启动守护进程,守护进程启动后,进入Startup状态,此时实例都处于Mount状态。守护进程开始广播自身和其监控实例的状态信息,结合自身信息和远程守护进程的广播信息,守护进程将本地实例Open,并切换为Open状态。

dmwatcher /u01/dmdbms2/data/DAMENG/dmwatcher.ini

启动后可用show查看主备状态

主库

备库

主备MAGIC值一致

Primary

Standby

 6.2启动监视器进程

 dmmonitor /u01/dmdbms2/data/DAMENG/dmmonitor.ini        

七、数据同步验证

 7.1操作前LSN与归档信息

首先查询主备此时的lsn与归档信息

主库:

备库:

7.2插入数据

然后在主库进行DML操作,并切换几组日志写入归档

create table stu

(s_id int,

s_name varchar,

s_birth date,

s_sex varchar);

alter table stu modify s_id int primary key;

insert into stu values

('1','王一','2001-01-02','男'),

('2','张二','2001-02-02','男'),

('3','李三','2001-03-02','女'),

('4','魏四','2001-04-02','男'),

('5','沈五','2001-05-02','女'),

('6','吴六','2001-06-02','女'),

('7','范七','2001-07-02','男'),

('8','乔八','2001-08-02','男'),

('9','王九','2001-09-02','男');

commit;

alter system switch logfile;

7.3操作后LSN与归档信息

 

登录备库查看是否同步

可以看到备库表已经同步过来,但是归档未新增,查看OS归档,有写入信息

可以证明,备库只是将主库传来的日志重新执行一遍,然后生成自己的归档日志,并不会将受到主库的归档日志作为己用。 

达梦社区地址:https://eco.dameng.com

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值