注册
文档数据库集群与备份还原
专栏/技术分享/ 文章详情 /

文档数据库集群与备份还原

DM_880930 2026/09/23 197 0 0
摘要

一、搭建DDM集群

1.在三台机器的/opt目录下上传安装文件
2.在三台机器上创建软件安装目录和数据存放目录

mkdir -p /dmdata/ddm_cluster          # 软件安装目录
mkdir -p /dmdata/data_ddm_cluster     # 数据存放目录

3.解压安装包到指定目录

cd /opt
tar -xzvf ddm_linux_amd64_20260611_49c0ae3a_cluster.tar.gz -C /dmdata/ddm_cluster

4.确认三台机器的时间同步

date      #查看机器时间

若三台机器时间不同步,执行以下操作
(1)在三台机器上下载ntp

yum -y install ntp ntpdate

(2)在一台机器(142)上编辑ntp.conf文件并启动ntp

vi /etc/ntp.conf
# 注释掉所有以 server 开头的行,添加以下两行:
server 127.127.1.0
fudge 127.127.1.0 stratum 10

systemctl start ntpd
systemctl enable ntpd

(3)在其他机器同步时间

ntpdate 192.168.10.142

5.1一键安装
(1)编辑 hosts 文件

vi /dmdata/ddm_cluster/conf/hosts

# ============ DDM_Meta 部署节点信息 ============
[DDM_Meta]
Meta: "ip=192.168.10.142", "port=2379", "peer_port=2380", "user=root", "password=root", "sshPort=22"
Meta: "ip=192.168.10.123", "port=2379", "peer_port=2380", "user=root", "password=root", "sshPort=22"
Meta: "ip=192.168.10.156", "port=2379", "peer_port=2380", "user=root", "password=root", "sshPort=22"

# ============ DDM_Store 部署节点信息 ============
[DDM_Store]
Store: "ip=192.168.10.142", "port=10180", "user=root", "password=roo", "sshPort=22"
Store: "ip=192.168.10.123", "port=10180", "user=root", "password=root", "sshPort=22"
Store: "ip=192.168.10.156", "port=10180", "user=root", "password=root", "sshPort=22"

# ============ DDM_Engine 部署节点信息 ============
[DDM_Engine]
Engine: "ip=192.168.10.123", "port=27017", "user=root", "password=root", "sshPort=22"

# ============ 数据文件存放路径 ============
data_dir="/dmdata/data_ddm_cluster"

注意:[DDM_Meta]、[DDM_Store]、[DDM_Engine]的大小写敏感
(2)在一台机器执行一键部署命令

cd /dmdata/ddm_cluster/bin
./ddm_cluster_install.sh

注意:没有except会无法注入密码,不能一键安装。
5.2手动安装
(1)三台机器配置/dmdata/ddm_cluster/conf/ddm_store_config.toml

memory-usage-limit-percent = 75     #添加这一配置

(2)初始化Meta节点并启动服务(在三台机器上执行以下命令,-mi替换成实际ip)
cd /dmdata/ddm_cluster/bin/scripts

./ddm_meta_service_installer.sh \
  -mi 192.168.10.142 \
  -mp 2379 \
  -pmp 2380 \
  -data /dmdata/data_ddm_cluster \
  -ic true

systemctl start DDMMetaService2379

image.png

(3)初始化Store节点并启动服务(在三台机器上执行以下命令,-si替换成实际ip)

cd /dmdata/ddm_cluster/bin/scripts

./ddm_store_service_installer.sh \
  -si 192.168.10.142 \
  -sp 10180 \
  -pd 192.168.10.142:2379,192.168.10.123:2379,192.168.10.156:2379 \
  -data /dmdata/data_ddm_cluster

systemctl start DDMStoreService10180

image.png

(4)初始化Engine节点并启动服务

cd /dmdata/ddm_cluster/bin/scripts

./ddm_engine_service_installer.sh \
  -ei 192.168.10.156 \
  -ep 27018 \
  -path 192.168.10.142:2379,192.168.10.123:2379,192.168.10.156:2379 \
  -data /dmdata/data_ddm_cluster

systemctl start DDMEngineService27018

image.png

注意:如果在一台机器上单机版使用了27017端口,会注册DDMEngineService27017服务,那么集群还是用27017端口去注册DDMEngineService27017服务的话会出错。

二、备份还原

  1. 配置 NFS 共享存储
    备份需要 NFS 共享存储,所有集群节点都要挂载同一个 NFS 目录。选择一台机器作为 NFS 服务端(这里选择192.168.10.142)。
    (1)安装 NFS 服务(三台机器都执行)
yum -y install nfs-utils rpcbind

(2)创建共享目录(三台机器都执行)

mkdir -p /home/ddm_bak && chmod -R 777 /home/ddm_bak

以下操作只在142执行
(3)启动服务

systemctl enable nfs.service
systemctl enable rpcbind.service
service rpcbind start
service nfs start

(4)配置共享(编辑 /etc/exports)

vi /etc/exports
# 写入
/home/ddm_bak 192.168.10.142(rw)
/home/ddm_bak *(insecure,rw,async,no_root_squash)

#执行
exportfs -a

在其他机器执行以下操作
(5)挂载 NFS 共享目录

mount 192.168.10.142:/home/ddm_bak /home/ddm_bak

2.集群全量备份还原
(1)备份
在任意一台机器上执行,pd参数可以是集群内任意Meta节点

cd /dmdata/ddm_cluster/bin
./ddm_br backup full \
  --pd 192.168.10.142:2379 \
  --storage "local:///home/ddm_bak"

image.png

(2)还原

cd /dmdata/ddm_cluster/bin
./ddm_br restore full \
  --pd 192.168.10.142:2379 \
  --storage "local:///home/ddm_bak"

image.png

3.集群增量备份还原
(1)所有 Store 节点开启 oplog
手动安装集群开启oplog:

vi /dmdata/ddm_cluster/bin/services/DDMStoreService10180
#改动1:
GREP_FULL_STR="$EXEC_PROG_FULL_PATH --addr $STORE_IP:$STORE_PORT --pd-endpoints $PD --config $DDMStore_CONFIG_DIR --enable-oplog true"
#改动2:
eval exec "\"$EXEC_PROG_FULL_PATH\" --addr $STORE_IP:$STORE_PORT --pd-endpoints $PD --config $DDMStore_CONFIG_DIR --enable-oplog true" > "$SERVICE_LOG_FILE" 2>&1 &
#改动3:
eval exec "\"$EXEC_PROG_FULL_PATH\" --addr $STORE_IP:$STORE_PORT --pd-endpoints $PD --config $DDMStore_CONFIG_DIR --enable-oplog true" > "$SERVICE_LOG_FILE" 2>&1 &

#重启服务
systemctl restart DDMStoreService10180

一键安装集群开启oplog:

vi /dmdata/ddm_cluster/conf/ddm_engine_config.toml
# 写入
[oplog]
oplog-enable = true
save-file = false

# 执行
systemctl restart DDMEngineService27018

(2)开启增量备份任务

./ddm_br log start \
  --task-name=pitr \
  --pd "192.168.10.142:2379" \
  --storage "local:///home/ddm_bak/incr_log"

(3)全量备份

./ddm_br backup full \
  --pd 192.168.10.142:2379 \
  --storage "local:///home/ddm_bak/full_backup"

注意:每一次执行备份都要创建新的目录存放备份集

(4)增量还原

./ddm_br restore point \  
--pd "192.168.10.142:2379" \  
--full-backup-storage "local:///home/ddm_bak/full_backup" \  
--storage "local:///home/ddm_bak/incr" \  --restored-ts "2026-08-04 22:50:00+08:00"

注意:1、做增量备份还原一定要先开启增量备份任务,否则会出现找不到增量日志的问题;
2、开启增量备份任务后要进行全量备份,否则会出现全量备份和增量日志之间有时间断档的问题。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服