lightdb22.4-分布式逻辑备份与恢复

lightdb22.4-支持分布式逻辑备份与恢复v1.0

在22.4 之前对于分布式进行逻辑备份只能通过对cn节点执行lt_dump 来备份所有数据,虽然有-j 选项来进行并发备份, 但 -j 只支持在表间进行并发,表内不能进行并发。

在22.4 通过lt_distribute_dump.py脚本可以支持对表内数据进行并发备份, 通过lt_distributed_restore.py脚本 支持对表内数据进行并发恢复。

基本原理

dump

  1. 通过cn节点获取dn信息
  2. 分开dump cn 表结构和约束, 并生成建分布式表语句
  3. 并发dump dn上数据, dump cn 上数据

restore

  1. restore cn 表结构, 然后建分布式表
  2. 建立新旧shard 间建映射关系
  3. rename new_table to new_table_old
  4. restore dn 数据 table_old
  5. 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用户免密登陆

操作

  1. 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
    
    
  2. 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
    

你可能感兴趣的:(lightdb,数据库,分布式,数据库,lightdb,备份恢复,dump)