命令行工具部署达梦数据库 DMDPC(BP 多副本架构)

解达梦数据库DPC集群的主要使用场景:

DMDPC 关注和解决的是大数据、计算与存储分离、高可用、支持全部的 SQL 标准、拥有完整的事务处理能力和集群规模能够动态伸缩的业务场景:

  1. 大量的复杂查询操作要求优化器能够生成优良的执行计划,并且执行引擎能够充分利用多机器、多核的硬件资源
  2. 某些行业对数据一致性和多副本备份容灾有较高要求,同时希望维护成本足够低和故障恢复时间足够短;
  3. 用户的业务规模有峰值,要求所需的机器资源能够灵活地添加和删除。

DPC架构:

一个完整的 DMDPC 架构由计划生成节点 SP、数据存储节点 BP 和元数据服务器节点 MP 三部分组成。

  • SP 对外提供分布式数据库服务,用户可以登录到任意一个 SP 节点,获得完整的数据库服务,SP 节点不存储数据,配置成单机即可。
  • BP 负责存储数据,执行 SP 的调度指令并将执行结果返回给 SP。
  • MP 负责存储元数据并向 SP、BP 提供元数据服务。
    MP 和 BP 节点既可以配置成单机,也可以配置成多副本系统。其中每一个多副本系统中只有一个作为主节点,其余节点均作为备份节点。

1 集群规划

DMDPC 集群规划部署 1 个 SP,2 个 BP 和 1 个 MP。
MP 采用单机模式,BP 采用多副本模式,每个 BP 配置 2 个副本。
集群规划示意:
在这里插入图片描述

2 初始化数据库实例

根据集群规划,初始化 8 个实例,分别为 SP、MP 和 6 个 BP 角色。

初始化SP节点

[root@192-168-145-130 ~]# mkdir -p /dmdata/dpc_data/sp1
[root@192-168-145-130 ~]# chown -R dmdba:dinstall /dmdata/dpc_data/sp1
[root@192-168-145-130 ~]# chmod -R 777 /dmdata/dpc_data/sp1
[root@192-168-145-130 ~]#
[dmdba@192-168-145-130 bin]$ ./dminit path=/dmdata/dpc_data/sp1 instance_name=SP1 port_num=5236 ap_port_num=6000 dpc_mode=SP
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2025-01-15
write to dir [/dmdata/dpc_data/sp1/DAMENG].
create dm database success. 2024-04-28 14:24:26
[dmdba@10-8-148-8 bin]$

初始化MP节点

[root@192-168-145-130 ~]# mkdir -p /dmdata/dpc_data/mp
[root@192-168-145-130 ~]# chown -R dmdba:dinstall /dmdata/dpc_data/mp
[root@192-168-145-130 ~]# chmod -R 777 /dmdata/dpc_data/mp
[root@192-168-145-130 ~]# su - dmdba
上一次登录: 日 428 14:23:29 CST 2024 pts/0 上
[dmdba@10-8-148-8 ~]$ cd /dm8/bin
[dmdba@10-8-148-8 bin]$ ./dminit path=/dmdata/dpc_data/mp  instance_name=MP  port_num=5237 ap_port_num=7008 dpc_mode=MP
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2025-01-15
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLLlog file path: /dmdata/dpc_data/mp/DAMENG/DAMENG01.loglog file path: /dmdata/dpc_data/mp/DAMENG/DAMENG02.logwrite to dir [/dmdata/dpc_data/mp/DAMENG].
create dm database success. 2024-04-28 14:27:34
[dmdba@192-168-145-130 bin]$
[dmdba@192-168-145-130 bin]$ netstat -tunlp
(Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      -
tcp6       0      0 :::22                   :::*                    LISTEN      -
tcp6       0      0 :::54360                :::*                    LISTEN      1561/dmwatcher
tcp6       0      0 :::55360                :::*                    LISTEN      1568/dmserver
tcp6       0      0 :::9090                 :::*                    LISTEN      -
tcp6       0      0 :::52360                :::*                    LISTEN      1568/dmserver
tcp6       0      0 :::4236                 :::*                    LISTEN      76037/dmap
tcp6       0      0 :::9100                 :::*                    LISTEN      -
tcp6       0      0 :::9103                 :::*                    LISTEN      -
tcp6       0      0 :::111                  :::*                    LISTEN      -
tcp6       0      0 :::53360                :::*                    LISTEN      1568/dmserver
udp        0      0 0.0.0.0:68              0.0.0.0:*                           -
udp        0      0 0.0.0.0:111             0.0.0.0:*                           -
udp        0      0 127.0.0.1:323           0.0.0.0:*                           -
udp6       0      0 :::111                  :::*                                -
udp6       0      0 ::1:323                 :::*                                -
udp6       0      0 :::53811                :::*                                -
udp6       0      0 :::25826                :::*                                -
[dmdba@192-168-145-130 bin]$

初始化RAFT_1组中的BP实例

BP11:

[root@192-168-145-131 ~]# mkdir -p /dmdata/dpc_data/bp11
[root@192-168-145-131 ~]# chown -R dmdba:dinstall /dmdata/dpc_data/bp11
[root@192-168-145-131 ~]# chmod -R 777 /dmdata/dpc_data/bp11
[root@192-168-145-131 bin]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      859/rpcbind
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1510/sshd: /usr/sbi
tcp        0      0 0.0.0.0:30236           0.0.0.0:*               LISTEN      3023/docker-proxy
tcp6       0      0 :::9090                 :::*                    LISTEN      1/systemd
tcp6       0      0 :::15236                :::*                    LISTEN      1533/dmserver
tcp6       0      0 :::9100                 :::*                    LISTEN      983/node_exporter
tcp6       0      0 :::9103                 :::*                    LISTEN      1005/collectd_expor
tcp6       0      0 :::111                  :::*                    LISTEN      859/rpcbind
tcp6       0      0 :::5236                 :::*                    LISTEN      1534/dmserver
tcp6       0      0 :::22                   :::*                    LISTEN      1510/sshd: /usr/sbi
tcp6       0      0 :::30236                :::*                    LISTEN      3029/docker-proxy
udp        0      0 0.0.0.0:68              0.0.0.0:*                           1210/dhclient
udp        0      0 0.0.0.0:111             0.0.0.0:*                           859/rpcbind
udp        0      0 127.0.0.1:323           0.0.0.0:*                           922/chronyd
udp6       0      0 :::111                  :::*                                859/rpcbind
udp6       0      0 ::1:323                 :::*                                922/chronyd
udp6       0      0 :::25826                :::*                                1005/collectd_expor
udp6       0      0 :::44794                :::*                                1007/collectd[dmdba@192-168-145-131 /]$ cd /dm8/bin
[dmdba@192-168-145-131 bin]$ ./dminit path=/dmdata/dpc_data/bp11 instance_name=BP11 port_num=5238 ap_port_num=6002 dpc_mode=BP
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2024-12-26
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLLlog file path: /dmdata/dpc_data/bp11/DAMENG/DAMENG01.loglog file path: /dmdata/dpc_data/bp11/DAMENG/DAMENG02.logwrite to dir [/dmdata/dpc_data/bp11/DAMENG].
create dm database success. 2024-04-28 14:44:28

BP12:

[root@192-168-145-131 bin]$ mkdir -p /dmdata/dpc_data/bp12
[root@192-168-145-131 bin]$ chown -R dmdba:dinstall /dmdata/dpc_data/bp12
[root@192-168-145-131 bin]$ chmod -R 777 /dmdata/dpc_data/bp12
[dmdba@192-168-145-131 bin]$ cd /dm8/bin
[dmdba@192-168-145-131 bin]$ ./dminit path=/dmdata/dpc_data/bp12 instance_name=BP12 port_num=5239 ap_port_num=6003 dpc_mode=BP
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2024-12-26
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLLlog file path: /dmdata/dpc_data/bp12/DAMENG/DAMENG01.loglog file path: /dmdata/dpc_data/bp12/DAMENG/DAMENG02.logwrite to dir [/dmdata/dpc_data/bp12/DAMENG].
create dm database success. 2024-04-28 14:47:17
[dmdba@192-168-145-131 bin]$

BP13:

[root@192-168-145-131 bin]$ mkdir -p /dmdata/dpc_data/bp13
[root@192-168-145-131 bin]$ chown -R dmdba:dinstall /dmdata/dpc_data/bp13
[root@192-168-145-131 bin]$ chmod -R 777 /dmdata/dpc_data/bp13
[dmdba@192-168-145-131 bin]$ ./dminit path=/dmdata/dpc_data/bp13 instance_name=BP13 port_num=5240 ap_port_num=6004 dpc_mode=BP
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2024-12-26
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLLlog file path: /dmdata/dpc_data/bp13/DAMENG/DAMENG01.loglog file path: /dmdata/dpc_data/bp13/DAMENG/DAMENG02.logwrite to dir [/dmdata/dpc_data/bp13/DAMENG].
create dm database success. 2024-04-28 14:49:26
[dmdba@10-8-148-6 bin]$

初始化RAFT_2组中的BP实例

BP21:

[root@dw01:~]$ netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1366/sshd: /usr/sbi
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      847/rpcbind
tcp6       0      0 :::22                   :::*                    LISTEN      1366/sshd: /usr/sbi
tcp6       0      0 :::9090                 :::*                    LISTEN      1/systemd
tcp6       0      0 :::4236                 :::*                    LISTEN      462004/dmap
tcp6       0      0 :::9100                 :::*                    LISTEN      961/node_exporter
tcp6       0      0 :::9103                 :::*                    LISTEN      974/collectd_export
tcp6       0      0 :::111                  :::*                    LISTEN      847/rpcbind
udp        0      0 0.0.0.0:68              0.0.0.0:*                           1283/dhclient
udp        0      0 0.0.0.0:111             0.0.0.0:*                           847/rpcbind
udp        0      0 127.0.0.1:323           0.0.0.0:*                           917/chronyd
udp6       0      0 :::52604                :::*                                977/collectd
udp6       0      0 :::111                  :::*                                847/rpcbind
udp6       0      0 ::1:323                 :::*                                917/chronyd
udp6       0      0 :::25826                :::*                                974/collectd_export
[root@dw01:~]$ mkdir -p /dmdata/dpc_data/bp21
[root@dw01:~]$ chown -R dmdba:dinstall /dmdata/dpc_data/bp21
[root@dw01:~]$ chmod -R 777 /dmdata/dpc_data/bp21
[root@dw01:~]$
[dmdba@dw01:~]$ cd /dm8_20240322/bin/
[dmdba@dw01:/dm8_20240322/bin]$ ./dminit path=/dmdata/dpc_data/bp21 instance_name=BP21 port_num=5241 ap_port_num=6005 dpc_mode=BP
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2025-03-21
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLLlog file path: /dmdata/dpc_data/bp21/DAMENG/DAMENG01.loglog file path: /dmdata/dpc_data/bp21/DAMENG/DAMENG02.logwrite to dir [/dmdata/dpc_data/bp21/DAMENG].
create dm database success. 2024-04-28 14:56:41
[dmdba@dw01:/dm8_20240322/bin]$

BP22:

[root@dw01:~]$ mkdir -p /dmdata/dpc_data/bp22
[root@dw01:~]$ chown -R dmdba:dinstall /dmdata/dpc_data/bp22
[root@dw01:~]$ chmod -R 777 /dmdata/dpc_data/bp22[dmdba@dw01:~]$ cd /dm8_20240322/bin/
[dmdba@dw01:/dm8_20240322/bin]$ ./dminit path=/dmdata/dpc_data/bp22 instance_name=BP22 port_num=5242 ap_port_num=6006 dpc_mode=BP
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2025-03-21
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLLlog file path: /dmdata/dpc_data/bp22/DAMENG/DAMENG01.loglog file path: /dmdata/dpc_data/bp22/DAMENG/DAMENG02.logwrite to dir [/dmdata/dpc_data/bp22/DAMENG].
create dm database success. 2024-04-28 14:59:08

BP23:

[root@dw01:~]$ mkdir -p /dmdata/dpc_data/bp23
[root@dw01:~]$ chown -R dmdba:dinstall /dmdata/dpc_data/bp23
[root@dw01:~]$ chmod -R 777 /dmdata/dpc_data/bp23
[root@dw01:~]$ su - dmdba
[dmdba@dw01:~]$ cd /dm8_20240322/bin/
[dmdba@dw01:/dm8_20240322/bin]$ ./dminit path=/dmdata/dpc_data/bp23 instance_name=BP23 port_num=5243 ap_port_num=6007 dpc_mode=BP
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2025-03-21
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLLlog file path: /dmdata/dpc_data/bp23/DAMENG/DAMENG01.loglog file path: /dmdata/dpc_data/bp23/DAMENG/DAMENG02.logwrite to dir [/dmdata/dpc_data/bp23/DAMENG].
create dm database success. 2024-04-28 15:00:24
[dmdba@dw01:/dm8_20240322/bin]$

3 为 SP、BP 和 MP 配置 MP.INI 文件

为 SP、BP 和 MP 实例配置 MP.INI 文件。

MP.INI 文件内容如下:

[dmdba@10-8-148-8 bin]$ cd /dmdata/dpc_data/mp/DAMENG/[dmdba@10-8-148-8 DAMENG]$ vi mp.ini
[dmdba@10-8-148-8 DAMENG]$ cat mp.ini
mp_host = 10.8.148.8
mp_port =8000   #与MP、BP和SP上的ap_port_num不冲突的端口号
[dmdba@10-8-148-8 DAMENG]$

将 MP.INI 文件内容分别写入 SP(SP1)、两个 RAFT 组内的所有 BP(BP11、BP12、BP13、BP21、BP22、BP23)和 MP 中。

4 启动 MP

注意相关端口是否被占用,涉及相关的服务器,防火墙是否关闭或者是否将相关端口加入到白名单。
如果端口没被占用,持续报端口的错误,
ps -ef|grep dmdba
kill掉相关的进程,再重新启动

[dmdba@10-8-148-8 bin]$ ./dmserver /dmdata/dpc_data/mp/DAMENG/dm.ini dpc_mode=MP
file dm.key not found, use default license!
version info: develop
DM Database Server 64 V8 03134284132-20240115-215128-20081 startup...
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Database mode = 0, oguid = 0
License will expire on 2025-01-15
begin redo pwr log collect, last ckpt lsn: 3 ...
redo pwr log collect finished
main rfil[/dmdata/dpc_data/mp/DAMENG/DAMENG01.log]'s grp collect 0 valid pwr record, discard 1 invalid pwr record
EP[0]'s cur_lsn[43482], file_lsn[43482]
begin redo log recover, last ckpt lsn: 3 ...
redo log recover finished
ndct db load finished, code:0
[EDCT]edct_sys_mp_set_last_modify_tick force (4294967295->1857152437) in [edct_tables_load]
pseg_set_gtv_trxid_low next_trxid in mem:[14014]
pseg_collect_mgr_items, total collect 0 active_trxs, 0 cmt_trxs, 0 pre_cmt_trxs, 0 to_release_trxs, 0 active_pages, 0 cmt_pages, 0 pre_cmt_pages, 0 to_release_pages, 0 mgr pages, 0 mgr recs!
next_trxid in mem:[16016]
next_trxid = 18018.
pseg recv finished
nsvr_startup end.
uthr_pipe_create, create pipe[read:14, write:15]
uthr_pipe_create, create pipe[read:16, write:17]
uthr_pipe_create, create pipe[read:18, write:19]
uthr_pipe_create, create pipe[read:20, write:21]
uthr_pipe_create, create pipe[read:22, write:23]
uthr_pipe_create, create pipe[read:24, write:25]
uthr_pipe_create, create pipe[read:26, write:27]
uthr_pipe_create, create pipe[read:28, write:29]
uthr_pipe_create, create pipe[read:30, write:31]
uthr_pipe_create, create pipe[read:32, write:33]
uthr_pipe_create, create pipe[read:34, write:35]
uthr_pipe_create, create pipe[read:36, write:37]
uthr_pipe_create, create pipe[read:38, write:39]
uthr_pipe_create, create pipe[read:40, write:41]
uthr_pipe_create, create pipe[read:42, write:43]
uthr_pipe_create, create pipe[read:44, write:45]
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info finished, code:0.
nsvr_process_before_open begin.
nsvr_process_before_open success.
comm_create_lsnr_sockets_low failed to create socket or listen port:6008, errno:107.
[dmdba@10-8-148-8 bin]$ netstat -tunlp
(Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      -
tcp6       0      0 :::22                   :::*                    LISTEN      -
tcp6       0      0 :::54360                :::*                    LISTEN      1561/dmwatcher
tcp6       0      0 :::55360                :::*                    LISTEN      1568/dmserver
tcp6       0      0 :::9090                 :::*                    LISTEN      -
tcp6       0      0 :::52360                :::*                    LISTEN      1568/dmserver
tcp6       0      0 :::4236                 :::*                    LISTEN      76037/dmap
tcp6       0      0 :::9100                 :::*                    LISTEN      -
tcp6       0      0 :::9103                 :::*                    LISTEN      -
tcp6       0      0 :::111                  :::*                    LISTEN      -
tcp6       0      0 :::53360                :::*                    LISTEN      1568/dmserver
udp        0      0 0.0.0.0:68              0.0.0.0:*                           -
udp        0      0 0.0.0.0:111             0.0.0.0:*                           -
udp        0      0 127.0.0.1:323           0.0.0.0:*                           -
udp6       0      0 :::111                  :::*                                -
udp6       0      0 ::1:323                 :::*                                -
udp6       0      0 :::53811                :::*                                -
udp6       0      0 :::25826                :::*                                -
[dmdba@10-8-148-8 bin]$ netstat -tuln | grep 8000
[dmdba@10-8-148-8 bin]$ comm_create_lsnr_sockets_low failed to create socket or listen port:8000, errno:107.^C
[dmdba@10-8-148-8 bin]$ ps -ef|grep dmdba
dmdba       1561       1  0 2月18 ?       00:36:27 /data/dm8_rww/bin/dmwatcher path=/data/dm8_rww/data/DAMENG/dmwatcher.ini -noconsole
dmdba       1568       1  0 2月18 ?       01:33:05 /data/dm8_rww/bin/dmserver path=/data/dm8_rww/data/DAMENG/dm.ini -noconsole mount
dmdba      64104       1  0 3月06 ?       00:00:01 /usr/lib/systemd/systemd --user
dmdba      64105   64104  0 3月06 ?       00:00:00 (sd-pam)
dmdba      76037       1  0 3月06 ?       00:03:17 /dm8/bin/dmap
root      211133  211077  0 14:20 pts/0    00:00:00 su - dmdba
dmdba     211134  211133  0 14:20 pts/0    00:00:00 -bash
dmdba     211420  211134  0 14:37 pts/0    00:00:00 ps -ef
dmdba     211421  211134  0 14:37 pts/0    00:00:00 grep dmdba[dmdba@10-8-148-8 bin]$  ps -ef|grep dmdba
root      211133  211077  0 14:20 pts/0    00:00:00 su - dmdba
dmdba     211134  211133  0 14:20 pts/0    00:00:00 -bash
dmdba     211454  211134  0 14:39 pts/0    00:00:00 ps -ef
dmdba     211455  211134  0 14:39 pts/0    00:00:00 grep dmdba
[dmdba@10-8-148-8 bin]$ cd /dm8/bin[dmdba@localhost bin]$ ./dmserver /dmdata/dpc_data/mp/DAMENG/dm.ini dpc_mode=MP
file dm.key not found, use default license!
version info: develop
DM Database Server 64 V8 03134284132-20231226-213242-20081 startup...
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Database mode = 0, oguid = 0
License will expire on 2024-12-26
begin redo pwr log collect, last ckpt lsn: 3 ...
redo pwr log collect finished
main rfil[/dmdata/dpc_data/mp/DAMENG/DAMENG01.log]'s grp collect 0 valid pwr record, discard 3 invalid pwr record
EP[0]'s cur_lsn[43858], file_lsn[43858]
begin redo log recover, last ckpt lsn: 3 ...
redo log recover finished
ndct db load finished, code:0
[EDCT]edct_sys_mp_set_last_modify_tick force (4294967295->3750878) in [edct_tables_load]
pseg_set_gtv_trxid_low next_trxid in mem:[26026]
pseg_collect_mgr_items, total collect 0 active_trxs, 0 cmt_trxs, 0 pre_cmt_trxs, 0 to_release_trxs, 0 active_pages, 0 cmt_pages, 0 pre_cmt_pages, 0 to_release_pages, 0 mgr pages, 0 mgr recs!
next_trxid in mem:[28028]
next_trxid = 30030.
pseg recv finished
nsvr_startup end.
uthr_pipe_create, create pipe[read:12, write:13]
uthr_pipe_create, create pipe[read:14, write:15]
uthr_pipe_create, create pipe[read:16, write:17]
uthr_pipe_create, create pipe[read:18, write:19]
uthr_pipe_create, create pipe[read:20, write:21]
uthr_pipe_create, create pipe[read:22, write:23]
uthr_pipe_create, create pipe[read:24, write:25]
uthr_pipe_create, create pipe[read:26, write:27]
uthr_pipe_create, create pipe[read:28, write:29]
uthr_pipe_create, create pipe[read:30, write:31]
uthr_pipe_create, create pipe[read:32, write:33]
uthr_pipe_create, create pipe[read:34, write:35]
uthr_pipe_create, create pipe[read:36, write:37]
uthr_pipe_create, create pipe[read:38, write:39]
uthr_pipe_create, create pipe[read:40, write:41]
uthr_pipe_create, create pipe[read:42, write:43]
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info finished, code:0.
nsvr_process_before_open begin.
nsvr_process_before_open success.
SYSTEM IS READY.
Enable xa trx service after collect trx from all bp compilied!
Enable min_tid service after confirm trx from all bp compilied!

5 将 MP、SP 和 BP 加入集群

增加 1 个 MP、1 个 SP 和 6 个 BP 节点。只有在注册当前登录 MP 节点后,才可以注册其余节点。后续增加 MP、SP 节点和 BP 节点无先后之分。

//搭建DMDPC过程中加入MP、SP和BP,必须登录MP进行操作
[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@LOCALHOST:5237服务器[LOCALHOST:5237]:处于普通打开状态
登录使用时间 : 62.989(ms)
disql V8
SQL> //增加MP节点
//注册当前MP实例,MP的RAFT组名可以指定为'MP_RAFT'
SP_CREATE_DPC_INSTANCE(NULL,'MP','MP',7008,5237, '192.168.145.130', '192.168.145.130','NORMAL',1,'MP instance');//增加BP节点
//注册RAFT组,名为RAFT_1
SQL> SP_CREATE_DPC_RAFT('BP', 'RAFT_1');
DMSQL 过程已成功完成
已用时间: 9.292(毫秒). 执行号:502.
//在RAFT_1组内注册BP实例BP11、BP12、BP13
//所有实例均以STANDBY模式、INVALID状态注册进MP,实例启动后,在RAFT组内选举出有效主库后,会自动更新MP中的模式、状态信息。SQL> SP_CREATE_DPC_INSTANCE('RAFT_1', 'BP11', 'BP', 6002, 5238, '192.168.145.131', '192.168.145.131','STANDBY', 0, 'BP instance');
DMSQL 过程已成功完成
已用时间: 2.339(毫秒). 执行号:503.
SQL> SP_CREATE_DPC_INSTANCE('RAFT_1', 'BP12', 'BP', 6003, 5239, '192.168.145.131', '192.168.145.131','STANDBY', 0, 'BP instance');
DMSQL 过程已成功完成
已用时间: 1.801(毫秒). 执行号:504.
SQL> SP_CREATE_DPC_INSTANCE('RAFT_1', 'BP13', 'BP', 6004, 5240, '192.168.145.131', '192.168.145.131','STANDBY', 0, 'BP instance');
DMSQL 过程已成功完成
已用时间: 2.159(毫秒). 执行号:505.
SQL> //注册RAFT组,名为RAFT_2
SQL> SP_CREATE_DPC_RAFT('BP', 'RAFT_2');
//在RAFT_2内注册BP实例BP21、BP22、BP23
SQL> SP_CREATE_DPC_INSTANCE('RAFT_2', 'BP21', 'BP', 6005, 5241, '192.168.145.131', '192.168.145.131','STANDBY', 0, 'BP instance');
DMSQL 过程已成功完成
已用时间: 1.827(毫秒). 执行号:508.
SQL> SP_CREATE_DPC_INSTANCE('RAFT_2', 'BP22', 'BP', 6006, 5242, '192.168.145.131', '192.168.145.131','STANDBY', 0, 'BP instance');
DMSQL 过程已成功完成
已用时间: 1.960(毫秒). 执行号:509.
SQL> SP_CREATE_DPC_INSTANCE('RAFT_2', 'BP23', 'BP', 6007, 5243, '192.168.145.131', '192.168.145.131','STANDBY', 0, 'BP instance');
DMSQL 过程已成功完成
已用时间: 2.212(毫秒). 执行号:510.
SQL> //注册一个BP组,名为BG_1
SQL> SP_CREATE_DPC_BP_GROUP('BG_1', 'bp group1');
DMSQL 过程已成功完成
已用时间: 9.339(毫秒). 执行号:511.
//在BP组内添加RAFT组
SQL> SP_BP_GROUP_ADD_RAFT('BG_1', 'RAFT_1');
DMSQL 过程已成功完成
已用时间: 32.191(毫秒). 执行号:512.
SQL> SP_BP_GROUP_ADD_RAFT('BG_1', 'RAFT_2');
DMSQL 过程已成功完成
已用时间: 2.059(毫秒). 执行号:513.
SQL> //增加SP节点
//增加SP,也要注册RAFT组,参数1为空串
SQL> SP_CREATE_DPC_RAFT('SP', 'RAFT_SP1');
DMSQL 过程已成功完成
已用时间: 2.347(毫秒). 执行号:514.
//在RAFT_SP1内注册SP实例SP1
SQL> SP_CREATE_DPC_INSTANCE('RAFT_SP1', 'SP1', 'SP', 6000, 5236, '192.168.145.130', '192.168.145.130','NORMAL', 2, 'SP instance');
DMSQL 过程已成功完成
已用时间: 1.913(毫秒). 执行号:515.//注册三个容错域:FDOM_1 FDOM_2 FDOM_3
SQL> SP_CREATE_FAULT_DOMAIN ('FDOM_1', 'shanghai_1');
DMSQL 过程已成功完成
已用时间: 2.827(毫秒). 执行号:516.
SQL> SP_CREATE_FAULT_DOMAIN ('FDOM_2', 'shanghai_2');
DMSQL 过程已成功完成
已用时间: 1.865(毫秒). 执行号:517.
SQL> SP_CREATE_FAULT_DOMAIN ('FDOM_3', 'shanghai_3');
DMSQL 过程已成功完成
已用时间: 1.727(毫秒). 执行号:518.
SQL> //往容错域中添加实例
SQL> SP_FAULT_DOMAIN_MV_INST('FDOM_1', 'MP');
DMSQL 过程已成功完成
已用时间: 31.256(毫秒). 执行号:519.
SQL> SP_FAULT_DOMAIN_MV_INST('FDOM_1', 'BP11');
DMSQL 过程已成功完成
已用时间: 2.147(毫秒). 执行号:520.
SQL> SP_FAULT_DOMAIN_MV_INST('FDOM_1', 'BP21');
DMSQL 过程已成功完成
已用时间: 1.909(毫秒). 执行号:521.
SQL> SP_FAULT_DOMAIN_MV_INST('FDOM_2', 'BP12');
DMSQL 过程已成功完成
已用时间: 1.979(毫秒). 执行号:522.
SQL> SP_FAULT_DOMAIN_MV_INST('FDOM_2', 'BP22');
DMSQL 过程已成功完成
已用时间: 2.068(毫秒). 执行号:523.
SQL> SP_FAULT_DOMAIN_MV_INST('FDOM_3', 'BP13');
DMSQL 过程已成功完成
已用时间: 1.939(毫秒). 执行号:524.
SQL> SP_FAULT_DOMAIN_MV_INST('FDOM_3', 'BP23');
DMSQL 过程已成功完成
已用时间: 2.772(毫秒). 执行号:525.

6 检查注册是否成功

查询系统表,检查上一步骤的注册是否成功。能查到相关信息表示注册成功。

SQL> select * from DPC_BP_GROUP;行号     ID          NAME DESCRIPTION RAFT_NUM    RAFT_INFO  INFO1      
---------- ----------- ---- ----------- ----------- ---------- -----------INFO2                INFO3     -------------------- ----------
1          0           BG_1 bp group1   2           0x01000200 0NULL                 NULL已用时间: 5.657(毫秒). 执行号:526.
SQL> select * from DPC_BP_RAFT;行号     RAFT_ID     GROUP_ID    DPC_MODE NAME     IS_VALID    INFO1      
---------- ----------- ----------- -------- -------- ----------- -----------INFO2                INFO3     -------------------- ----------
1          0           -1          MP       MP_RAFT  1           NULLNULL                 NULL2          1           -1          BP       RAFT_1   1           NULLNULL                 NULL3          2           -1          BP       RAFT_2   1           NULLNULL                 NULL行号     RAFT_ID     GROUP_ID    DPC_MODE NAME     IS_VALID    INFO1      
---------- ----------- ----------- -------- -------- ----------- -----------INFO2                INFO3     -------------------- ----------
4          3           -1          SP       RAFT_SP1 1           NULLNULL                 NULL已用时间: 1.058(毫秒). 执行号:527.
SQL> select * from DPC_INSTANCE;行号     RAFT_ID     INST_ID     NAME DPC_MODE XMAL_PORT   INST_PORT  
---------- ----------- ----------- ---- -------- ----------- -----------IP_INTERNAL     SYS_MODE SYS_STATUS  STATUS      DESCRIPTION--------------- -------- ----------- ----------- -----------IP_EXTERNAL     INFO1       INFO2                INFO3     --------------- ----------- -------------------- ----------
1          0           4096        MP   MP       7008        5237192.168.145.130 NORMAL   4           1           MP instance192.168.145.130 65536       NULL                 NULL行号     RAFT_ID     INST_ID     NAME DPC_MODE XMAL_PORT   INST_PORT  
---------- ----------- ----------- ---- -------- ----------- -----------IP_INTERNAL     SYS_MODE SYS_STATUS  STATUS      DESCRIPTION--------------- -------- ----------- ----------- -----------IP_EXTERNAL     INFO1       INFO2                INFO3     --------------- ----------- -------------------- ----------
2          1           4097        BP11 BP       6002        5238192.168.145.131 STANDBY  6           0           BP instance192.168.145.131 65536       NULL                 NULL行号     RAFT_ID     INST_ID     NAME DPC_MODE XMAL_PORT   INST_PORT  
---------- ----------- ----------- ---- -------- ----------- -----------IP_INTERNAL     SYS_MODE SYS_STATUS  STATUS      DESCRIPTION--------------- -------- ----------- ----------- -----------IP_EXTERNAL     INFO1       INFO2                INFO3     --------------- ----------- -------------------- ----------
3          1           4098        BP12 BP       6003        5239192.168.145.131 STANDBY  6           0           BP instance192.168.145.131 131072      NULL                 NULL行号     RAFT_ID     INST_ID     NAME DPC_MODE XMAL_PORT   INST_PORT  
---------- ----------- ----------- ---- -------- ----------- -----------IP_INTERNAL     SYS_MODE SYS_STATUS  STATUS      DESCRIPTION--------------- -------- ----------- ----------- -----------IP_EXTERNAL     INFO1       INFO2                INFO3     --------------- ----------- -------------------- ----------
4          1           4099        BP13 BP       6004        5240192.168.145.131 STANDBY  6           0           BP instance192.168.145.131 196608      NULL                 NULL行号     RAFT_ID     INST_ID     NAME DPC_MODE XMAL_PORT   INST_PORT  
---------- ----------- ----------- ---- -------- ----------- -----------IP_INTERNAL     SYS_MODE SYS_STATUS  STATUS      DESCRIPTION--------------- -------- ----------- ----------- -----------IP_EXTERNAL     INFO1       INFO2                INFO3     --------------- ----------- -------------------- ----------
5          2           4100        BP21 BP       6005        5241192.168.145.131 STANDBY  6           0           BP instance192.168.145.131 65536       NULL                 NULL行号     RAFT_ID     INST_ID     NAME DPC_MODE XMAL_PORT   INST_PORT  
---------- ----------- ----------- ---- -------- ----------- -----------IP_INTERNAL     SYS_MODE SYS_STATUS  STATUS      DESCRIPTION--------------- -------- ----------- ----------- -----------IP_EXTERNAL     INFO1       INFO2                INFO3     --------------- ----------- -------------------- ----------
6          2           4101        BP22 BP       6006        5242192.168.145.131 STANDBY  6           0           BP instance192.168.145.131 131072      NULL                 NULL行号     RAFT_ID     INST_ID     NAME DPC_MODE XMAL_PORT   INST_PORT  
---------- ----------- ----------- ---- -------- ----------- -----------IP_INTERNAL     SYS_MODE SYS_STATUS  STATUS      DESCRIPTION--------------- -------- ----------- ----------- -----------IP_EXTERNAL     INFO1       INFO2                INFO3     --------------- ----------- -------------------- ----------
7          2           4102        BP23 BP       6007        5243192.168.145.131 STANDBY  6           0           BP instance192.168.145.131 196608      NULL                 NULL行号     RAFT_ID     INST_ID     NAME DPC_MODE XMAL_PORT   INST_PORT  
---------- ----------- ----------- ---- -------- ----------- -----------IP_INTERNAL     SYS_MODE SYS_STATUS  STATUS      DESCRIPTION--------------- -------- ----------- ----------- -----------IP_EXTERNAL     INFO1       INFO2                INFO3     --------------- ----------- -------------------- ----------
8          3           4103        SP1  SP       6000        5236192.168.145.130 NORMAL   6           2           SP instance192.168.145.130 NULL        NULL                 NULL8 rows got已用时间: 1.002(毫秒). 执行号:528.
SQL> 

7 配置 BP11

1: 配置 BP11 的 dm.ini

ARCH_INI = 1   #打开归档配置

2: 配置 BP11 的本地归档 dmarch.ini。此处先只配本地归档,避免提前发起 RAFT 选举

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST =/dmdata/dpc_data/bp11/DAMENG/arch  #本地归档文件路径
ARCH_FILE_SIZE = 128   #本地单个归档文件最大值,单位MB
ARCH_SPACE_LIMIT = 0   #本地归档文件总大小,0表示无限制

3:正常启动 BP11 到 Open 状态

[dmdba@localhost bin]$ ./dmserver /dmdata/dpc_data/bp11/DAMENG/dm.ini dpc_mode=bp
file dm.key not found, use default license!
version info: develop
enet begin to find valid MP....
enet check MP success! MP[](cfg:192.168.145.130:8000, inst_id:4096, xmal_port:7008, rraft_stat:1, l_term_id:0) SELF(raft_id:1, inst_id:4097)
enet fix valid MP SUCCESS! MP[](cfg:192.168.145.130:8000, inst_id:4096, xmal_port:7008, rraft_stat:1, l_term_id:0) SELF(raft_id:1, inst_id:4097)
enet select raft valid inst. raft:0, inst:4096, ps_flag:1, xsite:(nil), l_term_id:0.
enet set new xsite[0x7f411a4ce800] from raft:0 inst:4096 valid_flag:1
enet_check_mp_ini complete. elnk:[0x7f411a4ce800] to site[4096] code:0
[EDCT]edct_sys_bsp_set_last_modify_tick (4294967295->29822804). current dpc_dct_refresh_policy:1
edct_collect_raft_primary_info get self_stat:0.curr_sys_status:0, curr_sys_mode:0, raft_cnt:0, raft_stat:1,inst_sys_status:6, inst_sys_mode:2, inst_status:0, is_to_mount:0.
DM Database Server 64 V8 03134284132-20240115-215128-20081 startup...
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Database mode = 0, oguid = 0
License will expire on 2025-01-15
file lsn: 0
ckpt2_exec_immediately begin.
checkpoint begin, used_space[0], free_space[536862720]...
checkpoint begin, used_space[0], free_space[536862720]...
pseg_set_gtv_trxid_low next_trxid in mem:[36066]
pseg_collect_mgr_items, total collect 0 active_trxs, 0 cmt_trxs, 0 pre_cmt_trxs, 0 to_release_trxs, 0 active_pages, 0 cmt_pages, 0 pre_cmt_pages, 0 to_release_pages, 0 mgr pages, 0 mgr recs!
next_trxid in mem:[36066]
next_trxid = 38068.
pseg recv finished
nsvr_startup end.
uthr_pipe_create, create pipe[read:43, write:44]
uthr_pipe_create, create pipe[read:45, write:46]
uthr_pipe_create, create pipe[read:47, write:48]
uthr_pipe_create, create pipe[read:49, write:50]
uthr_pipe_create, create pipe[read:51, write:52]
uthr_pipe_create, create pipe[read:53, write:54]
uthr_pipe_create, create pipe[read:55, write:56]
uthr_pipe_create, create pipe[read:57, write:58]
uthr_pipe_create, create pipe[read:59, write:60]
uthr_pipe_create, create pipe[read:61, write:62]
uthr_pipe_create, create pipe[read:63, write:64]
uthr_pipe_create, create pipe[read:65, write:66]
uthr_pipe_create, create pipe[read:67, write:68]
uthr_pipe_create, create pipe[read:69, write:70]
uthr_pipe_create, create pipe[read:71, write:72]
uthr_pipe_create, create pipe[read:73, write:74]
aud sys init success.
aud rt sys init success.
nsvr_process_before_open begin.
nsvr_process_before_open success.
SYSTEM IS READY.

8 准备 RAFT_1 组内数据

1 退出 BP11 并进行脱机备份

首先,退出 BP11。

其次,对 BP11 进行脱机备份。

[dmdba@localhost bin]$ ./dmrman CTLSTMT="BACKUP DATABASE '/dmdata/dpc_data/bp11/DAMENG/dm.ini' FULL TO BACKUP_01 BACKUPSET '/dmdata/dpc_data/bp11/BACKUP_01'" USE_AP=2
dmrman V8
BACKUP DATABASE '/dmdata/dpc_data/bp11/DAMENG/dm.ini' FULL TO BACKUP_01 BACKUPSET '/dmdata/dpc_data/bp11/BACKUP_01'
file dm.key not found, use default license!
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[4510], file_lsn[4510]
Processing backupset /dmdata/dpc_data/bp11/BACKUP_01
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]                                 
backup successfully!
time used: 00:00:03.915

2 将 BP11 的备份文件脱机还原到 BP12

[dmdba@localhost bin]$ ./dmrman CTLSTMT="RESTORE DATABASE '/dmdata/dpc_data/bp12/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dpc_data/bp11/BACKUP_01'" USE_AP=2
dmrman V8
RESTORE DATABASE '/dmdata/dpc_data/bp12/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dpc_data/bp11/BACKUP_01'
file dm.key not found, use default license!
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]                                 
restore successfully.
time used: 00:00:02.472
[dmdba@localhost bin]$ ./dmrman CTLSTMT="RECOVER DATABASE '/dmdata/dpc_data/bp12/DAMENG/dm.ini' UPDATE DB_MAGIC" USE_AP=2
dmrman V8
RECOVER DATABASE '/dmdata/dpc_data/bp12/DAMENG/dm.ini' UPDATE DB_MAGIC
file dm.key not found, use default license!
Database mode = 2, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[4510], file_lsn[4510]
recover successfully!
time used: 00:00:01.321
[dmdba@localhost bin]$ 

3 BP11 的备份文件脱机还原到 BP13

[dmdba@localhost bin]$ ./dmrman CTLSTMT="RESTORE DATABASE '/dmdata/dpc_data/bp13/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dpc_data/bp11/BACKUP_01'" USE_AP=2
dmrman V8
RESTORE DATABASE '/dmdata/dpc_data/bp13/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dpc_data/bp11/BACKUP_01'
file dm.key not found, use default license!
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]                                 
restore successfully.
time used: 00:00:02.503
[dmdba@localhost bin]$ ./dmrman CTLSTMT="RECOVER DATABASE '/dmdata/dpc_data/bp13/DAMENG/dm.ini' UPDATE DB_MAGIC" USE_AP=2
dmrman V8
RECOVER DATABASE '/dmdata/dpc_data/bp13/DAMENG/dm.ini' UPDATE DB_MAGIC
file dm.key not found, use default license!
Database mode = 2, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[4510], file_lsn[4510]
recover successfully!
time used: 00:00:01.095
[dmdba@localhost bin]$ 

9 配置 BP21

1: 配置 BP21 的 dm.ini

ARCH_INI = 1   #打开归档配置

2: 配置 BP21 的本地归档 dmarch.ini。此处先只配本地归档,避免提前发起 RAFT 选举

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST =/dmdata/dpc_data/bp21/DAMENG/arch  #本地归档文件路径
ARCH_FILE_SIZE = 128   #本地单个归档文件最大值,单位MB
ARCH_SPACE_LIMIT = 0   #本地归档文件总大小,0表示无限制

3:正常启动 BP21 到 Open 状态

[dmdba@localhost bin]$ ./dmserver /dmdata/dpc_data/bp21/DAMENG/dm.ini  dpc_mode=bp
file dm.key not found, use default license!
version info: develop
enet begin to find valid MP....
enet check MP success! MP[](cfg:192.168.145.130:8000, inst_id:4096, xmal_port:7008, rraft_stat:1, l_term_id:0) SELF(raft_id:2, inst_id:4100)
enet fix valid MP SUCCESS! MP[](cfg:192.168.145.130:8000, inst_id:4096, xmal_port:7008, rraft_stat:1, l_term_id:0) SELF(raft_id:2, inst_id:4100)
enet select raft valid inst. raft:0, inst:4096, ps_flag:1, xsite:(nil), l_term_id:0.
enet set new xsite[0x7ff1a3e00800] from raft:0 inst:4096 valid_flag:1
enet_check_mp_ini complete. elnk:[0x7ff1a3e00800] to site[4096] code:0
[EDCT]edct_sys_bsp_set_last_modify_tick (4294967295->29822804). current dpc_dct_refresh_policy:1
DM Database Server 64 V8 03134284132-20240115-215128-20081 startup...
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
edct_collect_raft_primary_info get self_stat:0.curr_sys_status:1, curr_sys_mode:0, raft_cnt:0, raft_stat:1,inst_sys_status:6, inst_sys_mode:2, inst_status:0, is_to_mount:0.
Database mode = 0, oguid = 0
License will expire on 2025-01-15
file lsn: 0
ckpt2_exec_immediately begin.
checkpoint begin, used_space[0], free_space[536862720]...
checkpoint begin, used_space[0], free_space[536862720]...
pseg_set_gtv_trxid_low next_trxid in mem:[36066]
pseg_collect_mgr_items, total collect 0 active_trxs, 0 cmt_trxs, 0 pre_cmt_trxs, 0 to_release_trxs, 0 active_pages, 0 cmt_pages, 0 pre_cmt_pages, 0 to_release_pages, 0 mgr pages, 0 mgr recs!
next_trxid in mem:[36066]
next_trxid = 38068.
pseg recv finished
nsvr_startup end.
uthr_pipe_create, create pipe[read:43, write:44]
uthr_pipe_create, create pipe[read:45, write:46]
uthr_pipe_create, create pipe[read:47, write:48]
uthr_pipe_create, create pipe[read:49, write:50]
uthr_pipe_create, create pipe[read:51, write:52]
uthr_pipe_create, create pipe[read:53, write:54]
uthr_pipe_create, create pipe[read:55, write:56]
uthr_pipe_create, create pipe[read:57, write:58]
uthr_pipe_create, create pipe[read:59, write:60]
uthr_pipe_create, create pipe[read:61, write:62]
uthr_pipe_create, create pipe[read:63, write:64]
uthr_pipe_create, create pipe[read:65, write:66]
uthr_pipe_create, create pipe[read:67, write:68]
uthr_pipe_create, create pipe[read:69, write:70]
uthr_pipe_create, create pipe[read:71, write:72]
uthr_pipe_create, create pipe[read:73, write:74]
aud sys init success.
aud rt sys init success.
nsvr_process_before_open begin.
nsvr_process_before_open success.
SYSTEM IS READY.

10 准备 RAFT_2 组内数据

1:对BP12进行脱机备份

[dmdba@localhost bin]$ ./dmrman CTLSTMT="BACKUP DATABASE '/dmdata/dpc_data/bp21/DAMENG/dm.ini' FULL TO BACKUP_01 BACKUPSET '/dmdata/dpc_data/bp21/BACKUP_01'" USE_AP=2
dmrman V8
BACKUP DATABASE '/dmdata/dpc_data/bp21/DAMENG/dm.ini' FULL TO BACKUP_01 BACKUPSET '/dmdata/dpc_data/bp21/BACKUP_01'
file dm.key not found, use default license!
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[4511], file_lsn[4511]
Processing backupset /dmdata/dpc_data/bp21/BACKUP_01
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]                                 
backup successfully!
time used: 00:00:03.917

2 将 BP21 的备份文件脱机还原到 BP22

[dmdba@localhost bin]$ ./dmrman CTLSTMT="RESTORE DATABASE '/dmdata/dpc_data/bp22/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dpc_data/bp21/BACKUP_01'" USE_AP=2
dmrman V8
RESTORE DATABASE '/dmdata/dpc_data/bp22/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dpc_data/bp21/BACKUP_01'
file dm.key not found, use default license!
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]                                 
restore successfully.
time used: 00:00:02.472
[dmdba@localhost bin]$ ./dmrman CTLSTMT="RECOVER DATABASE '/dmdata/dpc_data/bp22/DAMENG/dm.ini' UPDATE DB_MAGIC" USE_AP=2
dmrman V8
RECOVER DATABASE '/dmdata/dpc_data/bp22/DAMENG/dm.ini' UPDATE DB_MAGIC
file dm.key not found, use default license!
Database mode = 2, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[4511], file_lsn[4511]
recover successfully!
time used: 00:00:01.323
[dmdba@localhost bin]$ 

2 将 BP21 的备份文件脱机还原到 BP23

[dmdba@localhost bin]$ ./dmrman CTLSTMT="RESTORE DATABASE '/dmdata/dpc_data/bp23/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dpc_data/bp21/BACKUP_01'" USE_AP=2
dmrman V8
RESTORE DATABASE '/dmdata/dpc_data/bp23/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dpc_data/bp21/BACKUP_01'
file dm.key not found, use default license!
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]                                 
restore successfully.
time used: 00:00:02.503
[dmdba@localhost bin]$ ./dmrman CTLSTMT="RECOVER DATABASE '/dmdata/dpc_data/bp23/DAMENG/dm.ini' UPDATE DB_MAGIC" USE_AP=2
dmrman V8
RECOVER DATABASE '/dmdata/dpc_data/bp23/DAMENG/dm.ini' UPDATE DB_MAGIC
file dm.key not found, use default license!
Database mode = 2, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[4511], file_lsn[4511]
recover successfully!
time used: 00:00:01.097
[dmdba@localhost bin]$ 

11 配置 BP dm.ini

RAFT_1 组各实例(BP11、BP12、BP13)和 RAFT_2 组各实例(BP21、BP22、BP23)中 dm.ini 文件的配置方法完全相同。

下面以 BP11 的 dm.ini 为例进行介绍。dm.ini 文件配置如下:

ARCH_INI = 1   #打开归档配置
ALTER_MODE_STATUS = 0   #不允许用户直接通过SQL语句修改服务器模式

12 配置 BP RAFT _1归档文件

修改 DMARCH.INI,配置 RAFT 归档与本地归档。RAFT_1 组配置如下:
1: 配置 BP11 归档文件 DMARCH.INI

XMAL_HB_INTERVAL = 5   #节点通信检测间隔
RAFT_HB_INTERVAL = 150   #选举心跳间隔
RAFT_VOTE_INTERVAL = 1500  #选举超时时间,三个库设置不同以尽快选出主库
RAFT_SELF_ID = 1   #多副本自身节点ID[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT   #RAFT归档
ARCH_DEST = BP12  #归档目标实例名
ARCH_DEST_ID = 2   #归档目标多副本节点ID[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT   #RAFT归档
ARCH_DEST = BP13   #归档目标 实例名
ARCH_DEST_ID = 3   #归档目标多副本节点ID[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST =/dmdata/dpc_data/bp11/DAMENG/arch  #本地归档文件路径
ARCH_FILE_SIZE = 128   #本地单个归档文件最大值,单位MB
ARCH_SPACE_LIMIT = 0   #本地归档文件总大小,0表示无限制

2.配置 BP12 归档配置文件 DMARCH.INI

XMAL_HB_INTERVAL = 5  #节点通信检测间隔
RAFT_HB_INTERVAL = 150   #选举心跳间隔
RAFT_VOTE_INTERVAL = 2000   #选举超时时间
RAFT_SELF_ID = 2   #多副本自身节点ID[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT  #RAFT归档
ARCH_DEST = BP11  #归档目标实例名
ARCH_DEST_ID = 1  #归档目标多副本节点ID[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT   #RAFT归档
ARCH_DEST = BP13   #归档目标实例名
ARCH_DEST_ID = 3   #归档目标多副本节点ID[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL   #本地归档类型
ARCH_DEST = /dmdata/dpc_data/bp12/DAMENG/arch   #本地归档文件路径
ARCH_FILE_SIZE = 128   #本地单个归档文件最大值,单位MB
ARCH_SPACE_LIMIT = 0   #本地归档文件总大小,0表示无限制

配置 BP13 归档配置文件 DMARCH.INI

XMAL_HB_INTERVAL = 5   #节点通信检测间隔
RAFT_HB_INTERVAL = 150   #选举心跳间隔
RAFT_VOTE_INTERVAL = 2500   #选举超时时间
RAFT_SELF_ID = 3   #多副本自身节点ID[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT   #RAFT归档
ARCH_DEST = BP11   #归档目标实例名
ARCH_DEST_ID = 1   #多副本归档目标节点ID[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT   #RAFT归档
ARCH_DEST = BP12   #归档目标实例名
ARCH_DEST_ID = 2   #多副本归档目标节点ID[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL   #本地归档类型
ARCH_DEST = /dmdata/dpc_data/bp13/DAMENG/arch  #本地归档文件路径
ARCH_FILE_SIZE = 128  #本地单个归档文件最大值,单位MB
ARCH_SPACE_LIMIT = 0   #本地归档文件总大小,0表示无限制

13 配置 BP RAFT _2归档文件

1: 配置 BP21 归档文件 DMARCH.INI

XMAL_HB_INTERVAL = 5   #节点通信检测间隔
RAFT_HB_INTERVAL = 150   #选举心跳间隔
RAFT_VOTE_INTERVAL = 1500  #选举超时时间,三个库设置不同以尽快选出主库
RAFT_SELF_ID = 1   #多副本自身节点ID[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT   #RAFT归档
ARCH_DEST = BP22  #归档目标实例名
ARCH_DEST_ID = 2   #归档目标多副本节点ID[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT   #RAFT归档
ARCH_DEST = BP23   #归档目标 实例名
ARCH_DEST_ID = 3   #归档目标多副本节点ID[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST =/dmdata/dpc_data/bp21/DAMENG/arch  #本地归档文件路径
ARCH_FILE_SIZE = 128   #本地单个归档文件最大值,单位MB
ARCH_SPACE_LIMIT = 0   #本地归档文件总大小,0表示无限制

2.配置 BP22 归档配置文件 DMARCH.INI

XMAL_HB_INTERVAL = 5  #节点通信检测间隔
RAFT_HB_INTERVAL = 150   #选举心跳间隔
RAFT_VOTE_INTERVAL = 2000   #选举超时时间
RAFT_SELF_ID = 2   #多副本自身节点ID[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT  #RAFT归档
ARCH_DEST = BP21  #归档目标实例名
ARCH_DEST_ID = 1  #归档目标多副本节点ID[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT   #RAFT归档
ARCH_DEST = BP23   #归档目标实例名
ARCH_DEST_ID = 3   #归档目标多副本节点ID[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL   #本地归档类型
ARCH_DEST = /dmdata/dpc_data/bp22/DAMENG/arch   #本地归档文件路径
ARCH_FILE_SIZE = 128   #本地单个归档文件最大值,单位MB
ARCH_SPACE_LIMIT = 0   #本地归档文件总大小,0表示无限制

配置 BP23 归档配置文件 DMARCH.INI

XMAL_HB_INTERVAL = 5   #节点通信检测间隔
RAFT_HB_INTERVAL = 150   #选举心跳间隔
RAFT_VOTE_INTERVAL = 2500   #选举超时时间
RAFT_SELF_ID = 3   #多副本自身节点ID[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT   #RAFT归档
ARCH_DEST = BP21   #归档目标实例名
ARCH_DEST_ID = 1   #多副本归档目标节点ID[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT   #RAFT归档
ARCH_DEST = BP22   #归档目标实例名
ARCH_DEST_ID = 2   #多副本归档目标节点ID[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL   #本地归档类型
ARCH_DEST = /dmdata/dpc_data/bp23/DAMENG/arch  #本地归档文件路径
ARCH_FILE_SIZE = 128  #本地单个归档文件最大值,单位MB
ARCH_SPACE_LIMIT = 0   #本地归档文件总大小,0表示无限制

14 启动 SP 和 RAFT 组内所有 BP

启动 SP 和 BP 没有先后之分。

./dmserver path=/dmdata/dpc_data/sp1/DAMENG/dm.ini dpc_mode=sp
./dmserver /dmdata/dpc_data/bp11/DAMENG/dm.ini  dpc_mode=bp mount
./dmserver /dmdata/dpc_data/bp12/DAMENG/dm.ini  dpc_mode=bp mount
./dmserver /dmdata/dpc_data/bp13/DAMENG/dm.ini  dpc_mode=bp mount
./dmserver /dmdata/dpc_data/bp21/DAMENG/dm.ini  dpc_mode=bp mount
./dmserver /dmdata/dpc_data/bp22/DAMENG/dm.ini  dpc_mode=bp mount
./dmserver /dmdata/dpc_data/bp23/DAMENG/dm.ini  dpc_mode=bp mount

15v连接SP,可以对外提供服务

[dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@192.168.145.130:5236服务器[192.168.145.130:5236]:处于普通打开状态
登录使用时间 : 96.731(ms)
disql V8
SQL> 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/834016.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32、GD32驱动PCA9685控制舵机源码分享

一、PCA9685介绍 PCA9685是一种16通道PWM(脉宽调制)控制器芯片,由NXP Semiconductors公司生产。它具有高速I2C总线接口,可以通过I2C总线与微控制器或其他设备进行通信。PCA9685广泛应用于各种需要精确控制多路PWM信号的应用&…

npm install 卡在reify:rxjs: timing reifyNode的解决办法

今天要逆向跑一个electron,但是npm install一直卡在 reify:element-plus: timing reifyNode:node_modules/lodash Completed in 6664ms这里一动不动,一番研究之后发现可能跟用的镜像有关系,我原本是官方镜像,总感觉第三方镜像有一…

伪装目标检测论文阅读之Dual-SAM(CVPR-2024)

论文:link code:code Fantastic Animals and Where to Find Them:Segment Any Marine Animal with Dual SAM 摘要 作为水下智能的重要支柱,海洋动物分割(MAS)涉及对海洋环境中的动物进行分割。以往的方法在提取长范围上下文特征方面表现不佳…

Python | Leetcode Python题解之第77题组合

题目: 题解: class Solution:def combine(self, n: int, k: int) -> List[List[int]]:ans []path []def dfs(x):remain k - len(path)if not remain:ans.append(list(path))returnif n 1 - x > remain:dfs(x 1)path.append(x)dfs(x 1)path.…

宁夏编程培训中心联络及介绍

版权宁夏编程培训中心 宁夏编程培训中心介绍 AI DuLuo:您好🤝 欢迎咨询宁夏编程培训中心,创始人账号 公司介绍及创始人介绍: 在职某地区阿里云计算机有限公司 国内,南非发明专利各一项,腾讯云阿里云专家&am…

vue视图不刷新强制更新数据this.$forceUpdate()

在vue中,更新视图数据,不刷新页面,需要强制更新数据才可以 前言 在对数据就行添加和删除时,发现页面视图不更新,排除发现需要强制更新才可以 点击添加或删除,新增数据和删除就行,但在不使用fo…

内容安全(AV)

防病毒网关(AV)简介 基于网络侧 识别 病毒文件,工作范围2~7层。这里的网关指的是内网和外网之间的一个关口,在此进行病毒的查杀。在深信服中就有一个EDR设备,该设备就是有两种部署,一个部署在网关&#xf…

51单片机keil编程中遇到的问题(持续更新)

字符无法打印报错 查看特殊功能寄存器名字的时候也会报错,因为无法编译通过,导致头文件的定义内容无法查找 keil编译中 error C127: ‘xx’: invalid storage class 这种一般是在编写头文件或源文件时,在声明函数的结尾没有添加分号&…

在阿里云K8S容器中,部署websocket应用程序的总结

一、背景 有一个websocket应用程序,使用spring boot框架开发,http端口号是6005,提供的是websocket服务,所以它还监听一个8889端口的tcp协议。 现在要把它部署到阿里云的k8s容器里,本文着重描述service层的配置。 因…

《intel开发手册卷1》学习笔记1

1、操作模式 IA-32架构支持三种基本操作模式:保护模式、实地址模式和系统管理模式。操作模式决定了哪些指令和体系结构功能是可访问的: 1)保护模式:该模式是处理器的自然状态。保护模式的功能之一是能够在受保护的多任务环境中直接执行“实地址模式”80…

Mac 电脑安装 Raptor 流程图软件的方法

0. 安装逻辑 (1)运行 raptor,本质上需要 mac 能够运行 windows 程序,因此需要安装 .NET Runtime 7.0,这是微软程序运行必须的文件。 (2)运行 raptor 还需要安装依赖文件 mono-libgdiplus。 &am…

RabbitMQ - 以 MQ 为例,手写一个 RPC 框架 demo

目录 前言 一、再谈自定义应用层协议 二、再谈 BrokerServer 三、再谈 Connection、Channel 四、Demo a)启动服务器 b)客户端连接 前言 本篇文章来自于笔者之前写过的一个系列 —— “根据源码,模拟实现 RabbitMQ” 系列&#xff0c…

CentOs9编译C指令报错的一种解决方案

今天使用centos9编译c代码时,显示bash: gcc: command not found... 下图是我的报错页面,依据提示信息安装gcc之后依旧显示失败 找到其中一种解决方式,完美解决,供参考 输入以下指令更新软件包列表,这里需要等待几分…

MT3031 AK IOI

思路:把每个节点存到堆(大根堆)里。 如果节点放入后总时间没有超过m则放入堆中;如果总时间超过了,就看堆头元素是否比新元素大。如果大,则删除堆头(反悔贪心)。 注意别忘记开long l…

keystone学习小结

1 keystone middleware 1.1 工作流程 middleware在客户端和服务端之间,会拦截客户端请求并判断请求身份是否是正确合法的,若是,则继续将请求发给其他middleware或app 具体看,干了这些事 1将请求里的auth header去除&#xff0c…

爬虫:爬取豆瓣电影

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 上篇我们将到如何利用xpath的规则,那么这一次,我们将通过案例来告诉读者如何使用Xpath来定位到我们需要的数据,就算你不懂H5代码是怎么个嵌套或者十分复…

C++新特性-线程

主要内容 thread、condition、mutexatomicfunction、bind使用新特性实现线程池(支持可变参数列表)异常协程其他 1 C11多线程thread 重点: join和detach的使用场景thread构造函数参数绑定c函数绑定类函数线程封装基础类互斥锁mutexconditi…

计算机组成原理网课笔记

无符号整数的表示与运算 带符号整数的表示与运算 原反补码的特性对比 移码

搜狗输入法 PC端 v14.4.0.9307 去广告绿化版.

软件介绍 搜狗拼音输入法作为众多用户计算机配置的必备工具,其功能的全面性已为众所周知,并且以其高效便捷的输入体验受到广大使用者的青睐。然而,该软件在提供便利的同时,其内置的广告元素常常为用户带来一定的干扰。为此&#…

Linux中动态库的用法及优缺点?怎样制作动态库和静态库?

一、什么是gcc gcc的全称是GNU Compiler Collection,它是一个能够编译多种语言的编译器。最开始gcc是作为C语言的编译器(GNU C Compiler),现在除了c语言,还支持C、java、Pascal等语言。gcc支持多种硬件平台. 在 Linux…