达梦数据库主库+异步备库集群部署与测试

部署规划

配置项

dm01

dm02

业务IP

192.168.44.13/24

192.168.44.15/24

心跳IP

192.168.1.13/24

192.168.1.15/24

实例名

GRP1_ASYNC_01

GRP1_ASYNC_02

实例端口

5236

5236

MAL端口

5336

5336

MAL守护进程端口

5436

5436

守护进程端口

5536

5536

OGUID

453331

453331

守护组

GRP1

GRP1

安装目录

/opt/dmdba

/opt/dmdba

实例目录

/opt/dmdba/data

/opt/dmdba/data

归档上限

51200

51200

确认监视器IP

主库

实例初始化

# 实例初始化

[dmdba@dm01 ~]$ mkdir /opt/dmdba/data

[dmdba@dm01 ~]$ dminit PATH=/opt/dmdbms/data/ INSTANCE_NAME=GRP1_RWW_01 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048

# 启动服务

[dmdba@dm01 ~]$ dmserver /opt/dmdba/data/DAMENG/dm.ini

主库备份数据

SQL> BACKUP DATABASE BACKUPSET '/opt/dmdba/data/DAMENG/bak/BACKUP_FILE';

操作已执行

已用时间: 00:00:07.506. 执行号:59100.

dm.ini参数修改

# dm.ini参数

MAL_INI = 1

ARCH_INI = 1

ALTER_MODE_STATUS = 0

ENABLE_OFFLINE_TS = 2

TIMER_INI = 1

dmarch.ini

归档配置,使用异步归档,配置定时器名称

[dmdba@primary02 DAMENG]$ more dmarch.ini

ARCH_WAIT_APPLY = 0

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /home/dmdba/dmdbms/DAMENG/arch

ARCH_FILE_SIZE = 1024

ARCH_SPACE_LIMIT = 51200

ARCH_FLUSH_BUF_SIZE = 0

ARCH_HANG_FLAG = 1

[ARCHIVE_ASYNC]

ARCH_TYPE = ASYNC

ARCH_DEST = GRP1_ASYNC_02

ARCH_TIMER_NAME = RT_TIMER

ARCH_SEND_DELAY = 1

dmmal.ini 

# dmmal.ini

MAL_CHECK_INTERVAL         = 10  

MAL_CONN_FAIL_INTERVAL     = 10  

MAL_TEMP_PATH              = /opt/dmdba/dmdbms/data/malpath/  

MAL_BUF_SIZE               = 512

MAL_SYS_BUF_SIZE           = 2048  

MAL_COMPRESS_LEVEL         = 0  

[MAL_INST1]

MAL_INST_NAME            = GRP1_ASYNC_01

MAL_HOST                 = 192.168.1.13  

MAL_PORT                 = 5336  

MAL_INST_HOST            = 191.168.44.13  

MAL_INST_PORT            = 5236

MAL_DW_PORT              = 5436

MAL_INST_DW_PORT         = 5536  

[MAL_INST2]

MAL_INST_NAME = GRP1_ASYNC_02

MAL_HOST = 192.168.1.15

MAL_PORT = 5336

MAL_INST_HOST = 192.168.44.15

MAL_INST_PORT = 5236

MAL_DW_PORT = 5436

MAL_INST_DW_PORT = 5536

dmwatcher.ini

配置守护进程,守护类型为本地守护

## dmwatcher.ini

 [GRP1]

   DW_TYPE = LOCAL

   DW_MODE = MANUAL

   DW_ERROR_TIME = 10  

   INST_RECOVER_TIME = 60

   INST_ERROR_TIME = 10  

   INST_OGUID = 453331  

   INST_INI = /home/dmdba/dmdbms/DAMENG/dm.ini  

   INST_AUTO_RESTART = 1

   INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver

dmtimer.ini

配置定时器,触发时间为每秒更新

## dmtimer.ini 每秒更新

[RT_TIMER]

TYPE= 10

FREQ_MONTH_WEEK_INTERVAL=

FREQ_SUB_INTERVAL=

FREQ_MINUTE_INTERVAL=

REPEAT_INTERVAL= FREQ=SECONDLY;INTERVAL=1

START_TIME= 00:00:00

END_TIME=

DURING_START_DATE= 2023-04-12 10:00:00

DURING_END_DATE= 9999-12-31 10:00:00

NO_END_DATE_FLAG= 1

DESCRIBE= RT TIMER

IS_VALID= 1

拷贝备份文件到备库

[root@dm01 ~]# scp -r /opt/dmdba/data/DAMENG/bak/BACKUP_FILE dmdba@192.168.44.102:/opt/dmdba/data/DAMENG/bak

异步备库

异步备库初始化

[dmdba@dm02 ~]$ dminit PATH=/opt/dmdba/data/ INSTANCE_NAME=GRP1_RWW_02 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048

​​​​​​​数据还原与恢复

[dmdba@dm02 ~]$ dmrman CTLSTMT="RESTORE DATABASE '/opt/dmdba/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmdba/data/DAMENG/bak/BACKUP_FILE'"

[dmdba@dm02 ~]$ dmrman CTLSTMT="RECOVER DATABASE '/opt/dmdba/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmdba/data/DAMENG/bak/BACKUP_FILE'"

[dmdba@dm02 ~]$ dmrman CTLSTMT="RECOVER DATABASE '/opt/dmdba/data/DAMENG/dm.ini' UPDATE DB_MAGIC"

​​​​​​​dm.ini参数修改

MAL_INI = 1

ARCH_INI = 1

ALTER_MODE_STATUS = 0

ENABLE_OFFLINE_TS = 2

​​​​​​​dmarch.ini

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /home/dmdba/dmdbms/DAMENG/arch

ARCH_FILE_SIZE = 1024

ARCH_SPACE_LIMIT = 51200

ARCH_FLUSH_BUF_SIZE = 0

ARCH_HANG_FLAG = 1  

​​​​​​​​​​​​​​dmmal.ini

MAL_CHECK_INTERVAL         = 10  

MAL_CONN_FAIL_INTERVAL     = 10  

MAL_TEMP_PATH              = /opt/dmdba/dmdbms/data/malpath/  

MAL_BUF_SIZE               = 512

MAL_SYS_BUF_SIZE           = 2048  

MAL_COMPRESS_LEVEL         = 0  

[MAL_INST1]

MAL_INST_NAME            = GRP1_ASYNC_01

MAL_HOST                 = 192.168.1.13  

MAL_PORT                 = 5336  

MAL_INST_HOST            = 191.168.44.13  

MAL_INST_PORT            = 5236

MAL_DW_PORT              = 5436

MAL_INST_DW_PORT         = 5536  

[MAL_INST2]

MAL_INST_NAME = GRP1_ASYNC_02

MAL_HOST = 192.168.1.15

MAL_PORT = 5336

MAL_INST_HOST = 192.168.44.15

MAL_INST_PORT = 5236

MAL_DW_PORT = 5436

MAL_INST_DW_PORT = 5536

​​​​​​​dmwatcher.ini

[GRP1]

   DW_TYPE = LOCAL

   DW_MODE = MANUAL

   DW_ERROR_TIME = 10  

   INST_RECOVER_TIME = 60

   INST_ERROR_TIME = 10  

   INST_OGUID = 453331  

   INST_INI = /home/dmdba/dmdbms/DAMENG/dm.ini  

   INST_AUTO_RESTART = 1

   INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver

​​​​​​​启动集群

# 主库以mount启动

[dmdba@primary02 DAMENG]$ dmserver /home/dmdba/dmdbms/DAMENG/dm.ini mount

[dmdba@primary02 ~]$ disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通配置状态

登录使用时间 : 4.703(ms)

disql V8

## 设置OGUID与数据库模式

SQL> SP_SET_OGUID(453331);

DMSQL 过程已成功完成

已用时间: 11.043(毫秒). 执行号:0.

SQL> alter database primary;

操作已执行

已用时间: 4.039(毫秒). 执行号:0.

SQL>

SQL> exit

# 备库以mount启动

[dmdba@async01 DAMENG]$ dmserver /home/dmdba/dmdbms/DAMENG/dm.ini mount

[dmdba@async01 ~]$ disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通配置状态

登录使用时间 : 104.765(ms)

disql V8

SQL> SP_SET_OGUID(453331);   

DMSQL 过程已成功完成

已用时间: 11.015(毫秒). 执行号:0.

SQL> ALTER DATABASE STANDBY;

操作已执行

已用时间: 7.307(毫秒). 执行号:0.

SQL> EXIT

## 守护进程启动

[dmdba@primary02 ~]$ dmwatcher /home/dmdba/dmdbms/DAMENG/dmwatcher.ini

show

2023-04-12 11:26:59

---------------------------------------------------------------------------

GROUP_NAME       TYPE      MODE      OGUID       MPP_FLAG  AUTO_RESTART DW_STATUS       DW_SUB_STATUS   DW_CTL_STATUS   

GRP1             LOCAL     MANUAL    453331      FALSE     TRUE         OPEN            SUB_STATE_START VALID           

INST_OK   NAME             SVR_MODE  SYS_STATUS   RTYPE     FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG

OK        GRP1_ASYNC_01    PRIMARY   OPEN         NONE      4719            38943           4719            38944           0            

---------------------------------------------------------------------------

[dmdba@async01 ~]$ dmwatcher /home/dmdba/dmdbms/DAMENG/dmwatcher.ini

show

2023-04-12 11:27:05

---------------------------------------------------------------------------

GROUP_NAME       TYPE      MODE      OGUID       MPP_FLAG  AUTO_RESTART DW_STATUS       DW_SUB_STATUS   DW_CTL_STATUS   

GRP1             LOCAL     MANUAL    453331      FALSE     TRUE         OPEN            SUB_STATE_START VALID           

INST_OK   NAME             SVR_MODE  SYS_STATUS   RTYPE     FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG

OK        GRP1_ASYNC_02    STANDBY   OPEN         NONE      4713            38770           4713            38770           0            

DATABASE(GRP1_ASYNC_02) APPLY INFO:

REDOS_PARALLEL_NUM (1)

DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[4713, 4713, 4713], (RLSN, SLSN, KLSN)[38770, 38770, 38770], N_TSK[0], TSK_MEM_USE[0]

REDO_LSN_ARR: (38770)

---------------------------------------------------------------------------

​​​​​​​测试表同步情况

[dmdba@primary02 DAMENG]$ disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于主库打开状态

登录使用时间 : 4.177(ms)

disql V8

SQL> CREATE table t1(id int);

操作已执行

已用时间: 8.574(毫秒). 执行号:600.

SQL> insert into t1 values(1);

影响行数 1

已用时间: 0.910(毫秒). 执行号:601.

SQL> insert into t1 values(2);

影响行数 1

已用时间: 0.727(毫秒). 执行号:602.

SQL> select id from t1;

行号     ID         

---------- -----------

1          1

2          2

已用时间: 1.382(毫秒). 执行号:603.

SQL> commit;

操作已执行

已用时间: 0.612(毫秒). 执行号:604.

SQL>

SQL> exit

测试1:在主库上建表,插入相应数据后,等待一段时间,查看备库数据同步情况。

主库与异步备库的数据已同步。

​​​​​​​定时器每秒触发一次异步备库数据的同步情况

主库上在表上插入数据,commit后,查看备库同步情况:

# 主库上timer每秒触发

# 主库建表t2并插入数据

[dmdba@primary02 DAMENG]$ disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于主库打开状态

登录使用时间 : 3.742(ms)

disql V8

SQL> create table t2(name varchar);

操作已执行

已用时间: 11.287(毫秒). 执行号:700.

SQL> insert into t2 values('a');

影响行数 1

已用时间: 0.671(毫秒). 执行号:701.

SQL> select name from t2;

行号     NAME

---------- ----

1          a

已用时间: 0.851(毫秒). 执行号:702.

SQL> commit;

操作已执行

已用时间: 0.910(毫秒). 执行号:703.

SQL>

在插入数据后,等待4秒,查看主备库数据同步情况,结论为:异步备库未与主库同步。

测试2:主库上建表,插入数据,然后正常关闭数据库,观察异步备库与主库的数据同步情况。

## 主库上创建表t3,创建后正常关闭主库

[dmdba@primary02 DAMENG]$ disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于主库打开状态

登录使用时间 : 4.272(ms)

disql V8

SQL> create table t3(id int);

操作已执行

已用时间: 8.263(毫秒). 执行号:800.

SQL> insert into t3 values(100);

影响行数 1

已用时间: 0.695(毫秒). 执行号:801.

SQL> select id from t3;

行号     ID         

---------- -----------

1          100

已用时间: 0.791(毫秒). 执行号:802.

SQL> commit;

操作已执行

已用时间: 0.657(毫秒). 执行号:803.

SQL>

 正常关闭数据库,观察异步备库与主库的数据同步情况,结论为:异步备库未同步到数据。


达梦技术社区:https://eco.dameng.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值