写点什么

YashanDB yasrman 备份

作者:YashanDB
  • 2025-03-24
    广东
  • 本文字数:2792 字

    阅读完需:约 9 分钟

本文内容来自 YashanDB 官网,原文内容请见 https://doc.yashandb.com/yashandb/23.3/zh/%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%A1%E7%90%86/%E5%A4%87%E4%BB%BD%E6%81%A2%E5%A4%8D/yasrman%E5%B7%A5%E5%85%B7%E5%A4%87%E4%BB%BD%E6%81%A2%E5%A4%8D/%E5%A4%87%E4%BB%BD.html

操作说明



  • 分布式备份,只能在主库上执行备份,备份集会生成在主库节点,如果发生了主备切换,建议重新执行 LEVEL 0 的增量备份,否则恢复增量备份集的时候,会报找不到备份集的错误。

  • 备份语法详细说明请参考工具手册yasrman

  • 备份会消耗一定的系统和数据库资源,请根据业务负载酌情选择备份窗口。

  • 跟踪各个节点的 $YASDB_DATA/log/run/run.log 运行日志,可查看该节点备份恢复过程的详细日志。

  • 增量备份的多个备份集可采用不同的压缩算法。

  • 增量备份的多个备份集必须采用一致的加密策略(都加密或都不加密,都加密时密码相同),但可以采用不同的加密算法。

  • 删除备份集如果中途失败,某些可能会残留备份数据,需要在分布式集群状态 OPEN 的状态下,重新执行删除。

  • 分布式生成备份集之后,若后续要使用该备份集做恢复,必须保证待恢复分布式集群和备份前的节点部署状态完全一致。该备份集生成时分布式集群的节点状态可使用 yasrman 工具 LIST 命令查看,详情请参考yasrman

备份


# 全量备份

示例



$ yasrman sys/sys@127.0.0.1:1688 -c "BACKUP DATABASE TAG 'full_backup' FULL FORMAT 'full_001' PARALLELISM 3 DEST SERVER" -D /home/yashan/catalog

$ yasrman sys/sys@127.0.0.1:1688 -c "BACKUP CLUSTER TAG 'full_backup' FULL FORMAT 'full_001' PARALLELISM 3" -D /home/yashan/catalog
复制代码


Copied!


对本示例中出现信息解释如下:


  • “sys/sys@127.0.0.1:1688”是连接分布式部署中的 CN 节点或单机部署中的主库的用户名、密码和地址。

  • full 关键字表明当前为全量备份。

  • format 关键字指定生成备份集的文件名称为“YASDB_DATA/backup 目录下;如使用绝对路径需保证所有节点不在同一个服务器,否则可能会报文件已存在的错误。

  • tag 关键字指定备份集的标识为“full_backup”。

  • parallelism 关键字指定备份任务以 3 个线程的并行度执行。

  • -D 指定 catalog 所在文件路径。

  • DEST 关键字指定备份集备份在服务器端还是工具端,server 即为指定备份在服务器端,client 指定备份在工具端,缺省为 server。分布式备份不可指定为 client。

# 增量备份

# LEVEL 0 增量备份

示例



$ yasrman sys/password@127.0.0.1:1688 -c "BACKUP DATABASE TAG 'incr_0_backup' INCREMENTAL LEVEL 0 FORMAT 'incr_0_002'" -D /home/yashan/catalog

$ yasrman sys/password@127.0.0.1:1688 -c "BACKUP CLUSTER TAG 'incr_0_backup' INCREMENTAL LEVEL 0 FORMAT 'incr_0_002'" -D /home/yashan/catalog
复制代码


Copied!


本示例中,incremental level 0 关键字表明当前为零级增量备份,format 关键字指定生成备份集的文件名称为“$YASDB_DATA/backup/incr_0_002”。


增量备份有 LEVEL 0 和 LEVEL 1 两个级别,其中 LEVEL 0 作为后续所有 LEVEL 1 的上层基线,本质上也是一种全量备份,但是在备份概要文件中添加了与全量备份区分的物理标识。

# LEVEL 1 增量备份

示例



$ yasrman sys/sys@127.0.0.1:1688 -c "BACKUP DATABASE TAG 'incr_1_backup' INCREMENTAL LEVEL 1 FORMAT 'incr_1_002'" -D /home/yashan/catalog

$ yasrman sys/sys@127.0.0.1:1688 -c "BACKUP CLUSTER TAG 'incr_1_backup' INCREMENTAL LEVEL 1 FORMAT 'incr_1_002'" -D /home/yashan/catalog
复制代码


Copied!


本示例中,incremental level 1 关键字表明当前为一级增量备份,format 关键字指定生成备份集的文件名称为“$YASDB_DATA/backup/incr_1_002”。


增量备份只有 LEVEL 0 和 LEVEL 1 两个级别,其中 LEVEL 1 只备份自上次执行增量备份以后系统产生的增量数据(以上示例),相较于全量备份,增量备份数据量不大,能节省磁盘空间,恢复所需时间短。


YashanDB 支持 1000 次连续 LEVEL 1 增量备份,考虑到备份集的可维护性与存储资源使用,不建议连续多次 LEVEL 1 增量备份。


在零级增量备份指定了 DEST 备份方向之后,后续依赖于该零级增量备份的一级增量备份都需指定和零级增量备份一致的备份方向,否则会导致备份集无法正常恢复。

# 备份压缩

示例



$ yasrman sys/sys@127.0.0.1:1688 -c "BACKUP DATABASE TAG 'full_compress' COMPRESSION ALGORITHM ZSTD LOW" -D /home/yashan/catalog

$ yasrman sys/sys@127.0.0.1:1688 -c "BACKUP CLUSTER TAG 'full_compress' COMPRESSION ALGORITHM ZSTD LOW" -D /home/yashan/catalog
复制代码


Copied!


本示例中,COMPRESSION 关键字表明对源数据进行压缩备份,ALGORITHM 关键字指定压缩算法,压缩算法可选 ZSTD 或 LZ4。LOW 表示该种算法的压缩级别,有 LOW、MEDIUM、HIGH 三种可选项。压缩也可以单独指定 COMPRESSION 参数,其余参数可以省略,即会使用默认的压缩算法 ZSTD 和压缩级别 LOW。FORMAT 可以省略,默认会在"$YASDB_DATA/backup"下生成默认的备份集名称。

# 备份加密

示例



$ yasrman sys/sys@127.0.0.1:1688 -c "BACKUP DATABASE TAG 'full_encryption' ENCRYPTION AES256 IDENTIFIED BY yas2022" -D /home/yashan/catalog

$ yasrman sys/sys@127.0.0.1:1688 -c "BACKUP CLUSTER TAG 'full_encryption' ENCRYPTION AES256 IDENTIFIED BY yas2022" -D /home/yashan/catalog
复制代码


Copied!


本示例中,ENCRYPTION 关键字表明对源数据进行加密备份,AES256 关键字表示加密算法,缺省值为 AES128 加密算法。其中加密算法可选 AES128、AES192、AES256 和 SM4。IDENTIFIED BY 关键字为指定加密备份集使用的密码。

# 备份查询


$ yasrman sys/sys@127.0.0.1:1688 -c "LIST BACKUP TAG 'full_encryption'" -D /home/yashan/catalog

$ yasrman sys/sys@127.0.0.1:1688 -c "LIST BACKUP" -D /home/yashan/catalog
复制代码


Copied!


本示例中,将打印备份集的元信息,包括各节点的 地址、TAG 名称以及备份集路径等。

# 备份删除

$ yasrman sys/sys@127.0.0.1:1688 -c "DELETE BACKUPSET TAG 'full_encryption'" -D /home/yashan/catalog
复制代码


Copied!


本示例中,将删除 TAG 为“full_encryption”的备份集,前提是目标主库为 OPEN 状态。

常见问题



  • 备份必须运行在归档模式下,否则会触发 YAS-02079 报错。

  • 第一次增量备份必须为 LEVEL 0 备份,否则会触发 YAS-02507 错误。

  • 如指定了备份文件保存目录,必须保证该目录为空,否则会触发 YAS-00318 错误。

  • 确保备份文件保存目录的磁盘空间充足,否则会触发 YAS-00301 错误。

  • 备份并行度取值范围为[0,8]整数,否则会触发 YAS-04204 错误。

  • 超过 1000 次连续 LEVEL 1 增量备份,会触发 YAS-02508 错误。

  • 备份不允许和表空间、redo 文件等数据文件的增删、resize 操作并发,需要等待任一操作完成之后才可执行。

发布于: 刚刚阅读数: 4
用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
YashanDB yasrman备份_数据库_YashanDB_InfoQ写作社区