命令行工具部署达梦数据库 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 ROLL

 log file path: /dmdata/dpc_data/mp/DAMENG/DAMENG01.log


 log file path: /dmdata/dpc_data/mp/DAMENG/DAMENG02.log

write 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 info
 will 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 ROLL

 log file path: /dmdata/dpc_data/bp11/DAMENG/DAMENG01.log


 log file path: /dmdata/dpc_data/bp11/DAMENG/DAMENG02.log

write 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 ROLL

 log file path: /dmdata/dpc_data/bp12/DAMENG/DAMENG01.log


 log file path: /dmdata/dpc_data/bp12/DAMENG/DAMENG02.log

write 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 ROLL

 log file path: /dmdata/dpc_data/bp13/DAMENG/DAMENG01.log


 log file path: /dmdata/dpc_data/bp13/DAMENG/DAMENG02.log

write 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 ROLL

 log file path: /dmdata/dpc_data/bp21/DAMENG/DAMENG01.log


 log file path: /dmdata/dpc_data/bp21/DAMENG/DAMENG02.log

write 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 ROLL

 log file path: /dmdata/dpc_data/bp22/DAMENG/DAMENG01.log


 log file path: /dmdata/dpc_data/bp22/DAMENG/DAMENG02.log

write 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 ROLL

 log file path: /dmdata/dpc_data/bp23/DAMENG/DAMENG01.log


 log file path: /dmdata/dpc_data/bp23/DAMENG/DAMENG02.log

write 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 info
 will 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 0
           NULL                 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           NULL
           NULL                 NULL

2          1           -1          BP       RAFT_1   1           NULL
           NULL                 NULL

3          2           -1          BP       RAFT_2   1           NULL
           NULL                 NULL


行号     RAFT_ID     GROUP_ID    DPC_MODE NAME     IS_VALID    INFO1      
---------- ----------- ----------- -------- -------- ----------- -----------
           INFO2                INFO3     
           -------------------- ----------
4          3           -1          SP       RAFT_SP1 1           NULL
           NULL                 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        5237
           192.168.145.130 NORMAL   4           1           MP instance
           192.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        5238
           192.168.145.131 STANDBY  6           0           BP instance
           192.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        5239
           192.168.145.131 STANDBY  6           0           BP instance
           192.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        5240
           192.168.145.131 STANDBY  6           0           BP instance
           192.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        5241
           192.168.145.131 STANDBY  6           0           BP instance
           192.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        5242
           192.168.145.131 STANDBY  6           0           BP instance
           192.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        5243
           192.168.145.131 STANDBY  6           0           BP instance
           192.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        5236
           192.168.145.130 NORMAL   6           2           SP instance
           192.168.145.130 NULL        NULL                 NULL


8 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> 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【北京迅为】《iTOP-3588从零搭建ubuntu环境手册》-第7章 安装VMwareTools

RK3588是一款低功耗、高性能的处理器,适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用,RK3588支持8K视频编解码,内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

编程代码的舞者--Python循环语句

循环语句是编程中不可或缺的要素之一,它们能够让程序反复执行特定的任务,提高代码的重复利用性和效率。在本篇博客中,我们将深入探讨Python中常用的循环语句,包括for循环和while循环,以及控制循环流程的关键字break和c…

OBS插件--复合模糊

复合模糊 复合是一款滤镜插件,支持多种模糊类型和多种蒙版效果。支持模糊源的部分显示区域,可以反选区域进行模糊,这个功能对于场景部分区域需要遮盖非常实用。 下面截图演示下操作步骤: 首先,打开 OBS直播助手 在…

draw.io 网页版二次开发(3):打包和部署(war包)

目录 一 说明 二 环境配置 1. 下载并安装 Apache Ant 2. 下载并安装JDK和JRE 3. 下载tomcat 4. Ant、JDK和JRE 环境变量的配置 三 draw.io打包 四 部署 五 最后 一 说明 应公司项目要求,需要对draw.io进行二次开发,并将html界面通过iframe 嵌…

数据结构之——队列详解

目录 前言: 一、什么是队列 二、队列的实现 2.1 队列结构 2.2 队列初始化 2.3 队列销毁 2.4 入队列 2.5 出队列 2.6 获取队列头部元素 2.7 获取队列尾部元素 2.8 获取队列中有效元素个数 2.9 检测队列是否为空 三、 代码总览 Queue.h test.c 四、例题 前言…

SpringSecurity集成第三方登录

SpringSecurity 集成第三方登录 认证及自定义流程 首先我们提供一个实现了AbstractAuthenticationProcessingFilter抽象类的过滤器,用来代替UsernamePasswordAuthenticationFilter逻辑,然后提供一个AuthenticationProvider实现类代替AbstractUserDetail…

vue3vue3vue3vue3vue3vue3vue3vue3vue3vue3vue3vue3

纯vue3的语法 一.创建(基于vite) 1.在指定目录下运行 npm create vuelatest 项目名称:英文小写下划线数字回车表示确定是、否 左右切换路由、pina、单元测试、端到端的测试、开启eslint控制代码质量 先选择no,学的时候自己手动…

Golang | Leetcode Golang题解之第78题子集

题目: 题解: func subsets(nums []int) (ans [][]int) {set : []int{}var dfs func(int)dfs func(cur int) {if cur len(nums) {ans append(ans, append([]int(nil), set...))return}set append(set, nums[cur])dfs(cur 1)set set[:len(set)-1]df…

Reactor Netty 其他-响应式编程-018

🤗 ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱,有温度,有质量,有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace The Nex…

triton编译学习

一 流程 Triton-MLIR: 从DSL到PTX - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/671434808Superjomns blog | OpenAI/Triton MLIR 迁移工作简介https://superjom

ctfshow SSRF 351-358

做题前,需要先学习关于ssrf漏洞的相关知识 小注意: 当使用 file_get_contents() 函数访问远程 URL 时,它会尝试获取该 URL 指向的资源的内容,并将内容以字符串的形式返回。 如果 b.php 文件是一个 PHP 文件,它包含的内容取决于该 PHP 文件…

【QT学习】补充:qt使用已经存在的类

1.右键项目--》添加现有文件 注意:不是添加新文件!!! 2.添加配置

【Unity Shader入门精要 第6章】基础光照(二)

1. 获取环境光 unity shader中可以通过 UNITY_LIGHTMODEL_AMBIENT获取当前环境光颜色信息。 fixed4 frag(v2f i) : SV_Target {return UNITY_LIGHTMODEL_AMBIENT; }2. 漫反射 2.1 兰伯特模型 创建Chapter_6_Diffuse_Lambert作为测试材质创建Chapter_6_Diffuse_Lambert作为测…

i春秋-GetFlag

题目 考点 sql注入,md5加密,代码审计,利用eval函数 解题 参考wp https://www.cnblogs.com/qiaowukong/p/13630130.html找md5值 看见验证码中的提示,就是去找一个md5值前六位是指定值的数(严格来说不一定是数&…

408算法题专项-2019年

题目: 分析:要求空间复杂度为O(1),我们可以逆向假设可以开空间,得出一种思路,然后对这种思路优化空间即可得到O(1) 思路一:假设开空间 思考:再开…

【C语言题解】用函数来模拟实现strlen()、strcpy()、strcmp()、strcat()

🥰欢迎关注 轻松拿捏C语言系列,来和 小哇 一起进步!✊ 学习了函数后,老师让我们用函数来实现上面这四个字符串函数。 我们首先来了解一下这四个字符串函数: 1.strlen函数 用于获取字符串长度(不包括末尾…

读天才与算法:人脑与AI的数学思维笔记25_涌现理论

1. 人工智能新闻 1.1. 人工智能新闻报道算法的核心是如何将未经处理的原始数据转换成新闻报道 1.2. 很少有记者为美联社决定使用机器来帮助报道这些新闻持反对意见 1.2.1. 像“Wordsmith”这样的算法,具有自动化的洞察力、科学的叙事能力,现在正被应用…

2024年建筑施工特种作业人员安全生产知识试题

100分题库提供安全员考试试题、建筑安全员考试预测题、建筑安全员ABC考试真题、安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 单选题(1-10) 1.因生产安全事故受损害的从业人员,除…

打开远程连接的命令是什么?

远程连接是一种能够在不同设备之间建立连接并共享信息的技术。在许多情况下,我们需要通过远程连接来访问其他设备或处理一些远程任务。本文将介绍一些常用的打开远程连接的命令。 使用SSH连接远程设备 SSH(Secure Shell)是一种安全的网络协议…

大数据Scala教程从入门到精通第六篇:Scala编译结果反编译分析

一:Scala编译结果反编译分析 问题:为什么Scalac之后的生成的class文件有两个,一个带$的,一个不带$的? 不能直接java 执行scala编译的字节码文件。 直接运行的话就会报错,会报一个类没有被找到。 引入类库就…