lightdb22.4-分布式逻辑备份与恢复
Posted 紫无之紫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lightdb22.4-分布式逻辑备份与恢复相关的知识,希望对你有一定的参考价值。
lightdb22.4-支持分布式逻辑备份与恢复v1.0
在22.4 之前对于分布式进行逻辑备份只能通过对cn节点执行lt_dump 来备份所有数据,虽然有-j
选项来进行并发备份, 但 -j
只支持在表间进行并发,表内不能进行并发。
在22.4 通过lt_distribute_dump.py脚本可以支持对表内数据进行并发备份, 通过lt_distributed_restore.py脚本 支持对表内数据进行并发恢复。
基本原理
dump
- 通过cn节点获取dn信息
- 分开dump cn 表结构和约束, 并生成建分布式表语句
- 并发dump dn上数据, dump cn 上数据
restore
- restore cn 表结构, 然后建分布式表
- 建立新旧shard 间建映射关系
- rename new_table to new_table_old
- restore dn 数据 table_old
- reame table_old to new_table, drop new_table_old
note
由于上述原理不建议dump 成sql 脚本,因为在用ltsql 执行时,需要自己去手动执行多个文件,且新旧shard 映射,rename 操作都有自己完成。
用法及example
用法与lt_dump 及lt_restore基本相同, 不支持lt_dump与lt_restore的 一些选项, 具体可以查看help 及官方文档。
对于dump 需要指定dump 文件存放路径(dump目录原先需要不存在), 对于restore指定dump 文件所在路径。
example
环境及前提
dump server: 192.168.247.126;
dump dir: /home/lightdb/dump
数据库 lt_test
用户lightdb
coordinator info: 192.168.247.127:54332
datanode1 info: 192.168.247.128:54332
datanode2 info: 192.168.247.129:54332
需要配置lightdb用户免密登陆
操作
-
dump
lt_distributed_dump.py -d lt_test -U lightdb -h 192.168.247.127 -p 54332 --folder /home/lightdb/dump --lt-exclude-lightdb-objects ## 并发3 lt_distributed_dump.py -d lt_test -U lightdb -h 192.168.247.127 -p 54332 --folder /home/lightdb/dump --lt-exclude-lightdb-objects --parallel-num=3
-
restore
# 新数据库restore test 数据库 lt_distributed_restore.py -f /home/lightdb/dump -Ulightdb -h 192.168.247.127 -p 54332 -dtest --parallel-num=2 # 在lt_test 上恢复 lt_distributed_restore.py -f /home/lightdb/dump -Ulightdb -h 192.168.247.127 -p 54332 -dtest --parallel-num=2 -c --if-exists
以上是关于lightdb22.4-分布式逻辑备份与恢复的主要内容,如果未能解决你的问题,请参考以下文章