@@ -4,16 +4,15 @@ sidebar_label: 备份和恢复 Meta 服务
44description : 如何备份和恢复 Meta 服务集群数据
55---
66
7- 本指南将介绍如何备份和恢复 meta 服务集群数据。
7+ 本指南将介绍如何备份和恢复 Meta 服务集群数据。
88
9- ## 从 Meta 服务导出数据
9+ ## 从 databend-meta 导出数据
1010
11- 支持从 databend-meta 数据目录或从正在运行的 databend-meta 服务器导出数据。
11+ 支持从 databend-meta 数据目录或正在运行的 databend-meta 服务器导出数据。由于 Raft 将数据复制到所有节点,因此从任何一个节点导出数据就足够了 。
1212
13- ### 从正在运行的服务器导出
13+ ### 从正在运行的 databend-meta 导出
1414
15- 类似于从数据目录导出,但使用服务端点参数 ` --grpc-api-address <ip:port> ` 代替 ` --raft-dir ` ,
16- 其中 ` <ip:port> ` 是 [ databend-meta.toml] ( https://github.com/datafuselabs/databend/blob/main/scripts/distribution/configs/databend-meta.toml ) 中的 ` grpc_api_address ` ,例如:
15+ 类似于从数据目录导出,但使用服务端点参数 ` --grpc-api-address <ip:port> ` 代替 ` --raft-dir ` ,其中 ` <ip:port> ` 是 [ databend-meta.toml] ( https://github.com/datafuselabs/databend/blob/main/scripts/distribution/configs/databend-meta.toml ) 中的 ` grpc_api_address ` ,例如:
1716
1817``` shell
1918databend-metactl export --grpc-api-address " 127.0.0.1:9191" --db < output_fn>
@@ -27,8 +26,7 @@ databend-metactl export --grpc-api-address "127.0.0.1:9191" --db <output_fn>
2726
2827关闭 ` databend-meta ` 服务。
2928
30- 然后从 ` databend-meta ` 存储元数据的目录(` <your_meta_dir> ` )导出 sled DB 到本地文件 ` output_fn ` ,格式为多行 JSON。
31- 例如,输出文件中的每一行都是一个导出的键值记录的 JSON。
29+ 然后从 ` databend-meta ` 存储元数据的目录(` <your_meta_dir> ` )导出数据到本地文件 ` output_fn ` ,格式为多行 JSON。例如,输出文件中的每一行都是一个导出的键值记录的 JSON。
3230
3331``` sh
3432
@@ -46,12 +44,13 @@ databend-metactl export --raft-dir "<your_meta_dir>" --db <output_fn>
4644
4745## 恢复 databend-meta
4846
49- 以下命令从导出的元数据重建 ` <your_meta_dir> ` 中的 meta 服务数据库:
47+ 要恢复 databend- meta 节点,请使用以下命令。
5048
5149``` sh
5250databend-metactl import --raft-dir " <your_meta_dir>" --db < output_fn>
5351
54- databend-meta --raft-dir " <your_meta_dir>" ...
52+ # 然后可以启动 databend-meta 节点。
53+ # databend-meta --raft-dir "<your_meta_dir>" ...
5554```
5655
5756注意:如果没有 ` --db ` 参数,导入数据将来自标准输入,例如:
@@ -60,22 +59,34 @@ databend-meta --raft-dir "<your_meta_dir>" ...
6059cat " <output_fn>" | databend-metactl import --raft-dir " <your_meta_dir>"
6160```
6261
63- ** 注意** :` <your_meta_dir> ` 中的数据将被清除。
62+ 请注意,备份数据包含节点 ID,因此需要确保备份数据中的节点 ID 与恢复的 databend-meta 节点中的节点 ID 一致。要恢复不同的节点,即使用节点 1 的备份数据恢复节点 2,您需要在导入时指定集群配置,请参见下一节。
63+
64+ ** 注意** :导入时 ` <your_meta_dir> ` 中的数据将被清除。
6465
6566## 将数据导入为新的 databend-meta 集群
6667
67- 通过指定 ` --initial-cluster ` 参数,` databend-metactl ` 可以将数据导入为新的集群。
68- ` --initial-cluster ` 的格式为:` node_id=raft_advertise_host:raft_api_port ` ,每个节点配置用空格分隔,` raft_advertise_host ` 和 ` raft_api_port ` 的含义与 raft 配置中的相同。
68+ 使用 ` --initial-cluster ` 参数,` databend-metactl ` 将导入数据并重新初始化集群信息和节点 ID。` --initial-cluster ` 值的格式为:` <node_id>=<raft_advertise_host>:<raft_api_port ` ,` raft_advertise_host ` 和 ` raft_api_port ` 与 toml 配置文件中的字段相同。
6969
70- 例如:
70+ 例如,要恢复一个包含三个节点的 databend-meta 集群 :
7171
7272```
73- databend-metactl import --raft-dir ./.databend/new_meta1 --id=1 --db meta.db --initial-cluster 1=localhost:29103 --initial-cluster 2=localhost:29203 --initial-cluster 3=localhost:29303
74- databend-metactl import --raft-dir ./.databend/new_meta2 --id=2 --db meta.db --initial-cluster 1=localhost:29103 --initial-cluster 2=localhost:29203 --initial-cluster 3=localhost:29303
75- databend-metactl import --raft-dir ./.databend/new_meta3 --id=3 --db meta.db --initial-cluster 1=localhost:29103 --initial-cluster 2=localhost:29203 --initial-cluster 3=localhost:29303
73+ databend-metactl import --raft-dir ./.databend/new_meta1 --db meta.db \
74+ --id=1 \
75+ --initial-cluster 1=localhost:29103 \
76+ --initial-cluster 2=localhost:29203 \
77+ --initial-cluster 3=localhost:29303
78+ databend-metactl import --raft-dir ./.databend/new_meta2 --db meta.db \
79+ --id=2 \
80+ --initial-cluster 1=localhost:29103 \
81+ --initial-cluster 2=localhost:29203 \
82+ --initial-cluster 3=localhost:29303
83+ databend-metactl import --raft-dir ./.databend/new_meta3 --db meta.db \
84+ --id=3 \
85+ --initial-cluster 1=localhost:29103 \
86+ --initial-cluster 2=localhost:29203 \
87+ --initial-cluster 3=localhost:29303
7688```
7789
78- 上面的脚本从 ` meta.db ` 导入导出的数据,并初始化三个集群节点:id 1,其 raft 目录为 ` ./.databend/new_meta1 ` ,id 2 和 3 的 raft 目录不同。
79- 注意,这三个命令行中的 ` --initial-cluster ` 参数是相同的。
90+ 在上面的命令中,集群信息都是相同的。但每个 databend-meta 节点都有一个不同的节点 ID 指定。
8091
81- 之后,可以使用新的配置和导入的数据启动一个新的三节点 databend-meta 集群。
92+ 之后,就可以启动一个新的包含三个节点的 databend-meta 集群。
0 commit comments