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

  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
    

以上是关于lightdb22.4-分布式逻辑备份与恢复的主要内容,如果未能解决你的问题,请参考以下文章

lightdb22.4-分布式物理备份

lightdb-分布式物理备份脚本

lightdb-归档日志清理优化(22.4)

lightdb-归档日志清理优化(22.4)

lightdb22.4-新增优化器提示cardinality 和ordered_predicates

lightdb22.4-新增优化器提示cardinality 和ordered_predicates