写点什么

YashanDB 备份

作者:YashanDB
  • 2025-03-21
    广东
  • 本文字数:2899 字

    阅读完需:约 10 分钟

本文内容来自 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/SQL%E5%91%BD%E4%BB%A4%E5%A4%87%E4%BB%BD%E6%81%A2%E5%A4%8D/%E5%A4%87%E4%BB%BD.html

操作说明



  • 使用本方式执行备份时,要求数据库运行于 OPEN 状态且归档模式开启。

  • 备份命令仅 SYS 超级用户或拥有 SYSDBA、SYSBACKUP 权限的用户才可执行,备份语法详细说明请参考开发手册BACKUP DATABASE

  • 若数据库在只读模式(主备模式下,备库进行备份)下备份,需要指定 FORCE 关键字。

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

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

  • 可通过select * from V$BACKUP_PROGRESS语句实时查看备份进度。

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

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

  • 共享集群部署中,同一时间只能在一个实例上执行备份操作,且备份期间如果任一实例宕机,该集群的备份操作将被中断。

备份


# 全量备份

示例(单机)


BACKUP DATABASE FULL FORMAT '/data/backup/full_20211209191000' TAG 'yas_full_backup' PARALLELISM 3;
复制代码


示例(共享集群)


BACKUP DATABASE FULL FORMAT '+DG0/backup/yfs_full_20211209191000' TAG 'yfs_yas_full_backup' PARALLELISM 3;
复制代码


本示例中,full 关键字表明当前为全量备份,format 关键字指定生成备份集的文件名称,tag 关键字指定备份集的标识为"yas_full_backup",parallelism 关键字指定备份任务以 3 个线程的并行度执行。


其中,备份共享集群部署的数据库时,format 关键字指定的内容决定了备份集放于实例所在服务器磁盘,或者放于共享存储。当指定的内容为 YFS 路径时,表示将备份至共享存储;为普通磁盘绝对路径时,表示备份至服务器磁盘。

# LEVEL 0 增量备份

示例(单机)


BACKUP DATABASE INCREMENTAL LEVEL 0  FORMAT '/data/backup/incr_0_20211209193516';
复制代码


示例(共享集群)


BACKUP DATABASE INCREMENTAL LEVEL 0 FORMAT '+DG0/backup/incr_0_20211209193516';
复制代码


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


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


其中,备份共享集群部署的数据库时,format 关键字可以指定为普通磁盘路径或者 YFS 路径。

# LEVEL 1 增量备份

示例(单机)


BACKUP DATABASE INCREMENTAL LEVEL 1 FORMAT '/data/backup/incr_1_20211209193740';
复制代码


示例(共享集群)


BACKUP DATABASE INCREMENTAL LEVEL 1 FORMAT '+DG0/backup/incr_1_20211209193740';
复制代码


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


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


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


其中,备份共享集群部署的数据库时,format 关键字可以指定为普通磁盘路径或者 YFS 路径,但需注意的是,如果某次增量备份想与之前的备份指定不同的备份集存储(例如在 level 0 指定了 YFS 路径存储至共享存储,而 level 1 希望指定普通磁盘路径存储至实例所在磁盘),必须保证其与之前所有次备份的操作均是在同一个实例上发起,否则备份操作将失败。

# 基于 tag 的增量备份

# LEVEL 0

示例(单机)


BACKUP DATABASE INCREMENTAL LEVEL 0  FORMAT '/data/backup/base_incr_0_20211209193516' TAG 'base_incr_0' INDEPEND ;
复制代码


本示例中,incremental level 0 关键字表明当前为零级增量备份,format 关键字指定生成备份集的文件名称为"/YashanDB/backup/base_incr_0_20211209193516",INDEPEND 关键字指定为独立的增量备份链,后续基于 tag 的增量备份必须为独立的增量备份链,指定的 tag 关键字是该备份集的唯一标识,后续可指定该 tag 作为基线做增量备份。

# LEVEL 1

示例(单机)


BACKUP DATABASE INCREMENTAL LEVEL 1  FORMAT '/data/backup/base_incr_1_20211209193516' TAG 'base_incr_1' BASE ON 'base_incr_0' ;
复制代码


本示例中,incremental level 1 关键字表明当前为一级增量备份,format 关键字指定生成备份集的文件名称为"/YashanDB/backup/base_incr_1_20211209193516",指定的 tag 关键字是该备份集的唯一标识,后续可指定该 tag 作为基线做增量备份。BASE ON 可以指定独立增量备份集的 tag 作为基线,在该基线的基础上做增量备份。实际表现与普通增量备份一致,仅仅是通过指定基线 tag 来生成不同的增量备份链。


Note

若指定的基线为 level 0,其备份集生成时必须指定 INDEPEND 关键字。 若指定的基线为 level 1 备份集,该备份集也必须是指定 BASE ON 关键字生成的。 如果源库执行过 RESTORE DATABASE 重新建库,必须重建基于 tag 增量备份的基线,即重新生成新的增量备份链。

# 备份压缩

示例(单机)


BACKUP DATABASE COMPRESSION ALGORITHM  ZSTD LOW FORMAT '/data/backup/full_compress' TAG 'yas_full_compress';
复制代码


示例(共享集群)


BACKUP DATABASE COMPRESSION ALGORITHM  ZSTD LOW FORMAT '+DG0/backup/full_compress' TAG 'yas_full_compress';
复制代码


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

# 备份加密

示例(单机)


BACKUP DATABASE ENCRYPTION AES256 IDENTIFIED BY yas2022 FORMAT '/data/backup/full_encryption' TAG 'yas_full_encryption';
复制代码


示例(共享集群)


BACKUP DATABASE ENCRYPTION AES256 IDENTIFIED BY yas2022 FORMAT '+DG0/backup/full_encryption' TAG 'yas_full_encryption';
复制代码


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

常见问题



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

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

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

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

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

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

  • 主备在最大保护模式下,如果备库断连,主库事务无法提交,继续在主库执行备份会偶现备份卡住问题。将主库事务切换为最大可用模式即可继续执行备份。

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

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

YashanDB

关注

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

还未添加个人简介

评论

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