资讯专栏INFORMATION COLUMN

数据库备份方案 对象存储 US3

ernest.wang / 2934人阅读

摘要:本文介绍了如何基于完成数据库备份。应用场景应用场景应用场景目前数据库备份场景主要有以下三类备份与恢复备份方式推荐使用备份到中。

数据库备份方案

本篇目录

背景应用场景方案优势方案实施

背景

对象存储作为海量非结构化数据的云存储应用,面对日益上涨的数据库备份场景,可以有效帮助用户缩减备份流程,降低备份成本,有效提升用户体验。 本文介绍了如何基于 US3 完成数据库备份。

应用场景

目前 US3 数据库备份场景主要有以下三类:

备份与恢复:备份方式推荐使用 Filemgr 备份到 US3 中。 Filemgr 支持本地备份恢复与流式备份恢复,通过流式功能可以帮助用户完成数据不落地备份与恢复。

分级存储:针对需要定时清理备份、缩减备份成本的用户,US3 支持生命周期功能。 通过控制台指定生命周期规则,可以帮助用户完成:1、定期清理;2、定期转入低频;3、定期转入归档;

异地备份:针对需要更高安全级别的用户,US3 支持跨区域复制功能。 通过控制台配置跨区域复制功能,可以帮助用户在上传备份的同时,完成数据的异地备份。

image

方案优势

使用 Filemgr 进行流式备份以及流式恢复,完成不落地备份与恢复,可以避免落盘操作。

使用 US3 生命周期 功能,配合定期删除、低频存储、归档存储可以实现数据分级存储,帮助用户节约存储成本。

使用 US3 跨区域复制,为备份数据进行异地容灾,提高备份数据安全性。

方案实施

使用Filemgr进行流式备份,流式恢复

下载 Filemgr,迁移工具

在 Filemgr 目录下配置 config.cfg,proxy host 域名请参照 地域和域名

{
    "public_key" : "paste your public key here",
    "private_key" : "paste your private key here",
    "proxy_host" : "www.cn-bj.ufileos.com",       // proxy host请填写对应地域域名
    "api_host" : "api.spark.ucloud.cn"
}
使用 Filemgr 进行备份恢复,此处展示最简命令,其他备份命令请结合自己业务类比实现
bash
# 注意如果,欲使用低频存储(IA)或者冷存储(ARCHIVE),请在命令参数storageclass中指定,支持三种值:STANDARD, IA, ARCHIVE
# 注意如果,备份时指定了storageclass参数为ARCHIVE,需要提前对该文件restore
./filemgr-linux64 --action restore --bucket <bucketName> --key <backupKey>
# 逻辑备份
    # 全库备份
    mysqldump -A | ./filemgr-linux64 --action stream-upload --bucket <bucketName> --key <all-backupKey> --file stdin --threads <threads> --retrycount <retry> --storageclass <storage-class>
    # 分库备份
    mysqldump -B database1 database2 | ./filemgr-linux64 --action stream-upload --bucket <bucketName> --key <part-backupKey> --file stdin --threads <threads> --retrycount <retry> --storageclass <storage-class>
# 逻辑备份恢复
    # 全库备份恢复
    ./filemgr-linux --action stream-download --bucket <bucketName> --key <all-backupKey> --threads <threads> --retrycount <retry> 2>./error.log | mysql
    # 分库备份恢复
    ./filemgr-linux --action stream-download --bucket <bucketName> --key <part-backupKey> --threads <threads> --retrycount <retry> 2>./error.log | mysql
# ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# xtrabackup物理备份
    # 全量备份
    innobackupex --stream=tar | ./filemgr-linux64 --action stream-upload --bucket <bucketName> --key <full-backupKey> --file stdin --threads <threads> --retrycount <retry> --storageclass <storage-class>
    # 增量备份
    innobackupex --stream=tar --extra-lsndir=/data/backup/chkpoint /data/backup/tmp/ | ./filemgr-linux64 --action stream-upload --bucket <bucketName> --key <incre-backupKey-base> --file stdin --threads <threads> --retrycount <retry> --storageclass <storage-class> # 全备
    innobackupex --stream=xbstream --incremental --extra-lsndir=/data/backup/chkpoint --incremental-basedir=/data/backup/chkpoint /data/backup/tmp/ | ./filemgr-linux64 --action stream-upload --bucket <bucketName> --key <incre-backupKey-incre> --file stdin --threads <threads> --retrycount <retry> --storageclass <storage-class> # 增备
# xtrabackup物理备份恢复, 需要提前转移原来的DB数据, 备份恢复后需要重启服务
    # 全量备份恢复
        # full-backupKey为全量备份使用的key:
        ./filemgr-linux --action stream-download --bucket <bucketName> --key <full-backupKey> --threads <threads> --retrycount <retry> 2>./error.log | tar xf - -C /data/backup/full/
        innobackupex --apply-log /data/backup/full/
        innobackupex --copy-back --rsync /data/backup/full/
    # 增量备份恢复
        # full-backupKey为全量备份使用的key,incre-backupKey为增量备份使用的key:
        ./filemgr-linux --action stream-download --bucket <bucketName> --key <incre-backupKey-base> --threads <threads> --retrycount <retry> 2>./error.log | tar xf - -C /data/backup/base/
        innobackupex --apply-log --redo-only /data/backup/base/
        ./filemgr-linux --action stream-download --bucket <bucketName> --key <incre-backupKey-incre> --threads <threads> --retrycount <retry> 2>./error.log | xbstream -x -C /data/backup/incre
        innobackupex --apply-log /data/backup/base --incremental-dir=/data/backup/incre
        innobackupex --copy-back --rsync /data/backup/base
# lvm snapshot物理备份恢复
    # 备份,/snap-lvm0为备份lv 挂载点,/data-lvm0为源lv挂载点
    tar czf - /snap-lvm0/* | ./filemgr-linux64  --action stream-upload --bucket <bucketName> --key <lvmsnap-backupKey> --file stdin
    # 恢复,本地数据被清空,--strip-components 用来去除压缩快照时产生的第一层目录
    ./filemgr-linux64 --action stream-download --bucket <bucketName> --key <lvmsnap-backupKey> 2>./error.log | tar xzf - -C /data-lvm0/ --strip-components 1
    # 合并历史快照, /snap-lvm0为快照lv挂载点
    ./filemgr-linux64 --action stream-download --bucket <bucketName> --key <lvmsnap-backupKey> 2>./error.log | tar xzf - -C /snap-lvm0/ --strip-components 1
    lvconvert --merge <vg>/<snap-lv>
针对有特殊需求的用户,这边提供了相应的逻辑备份命令,其他备份命令请类比实现:
# 压缩
    # 备份
    mysqldump -A | gzip | ./filemgr-linux64 --action stream-upload --bucket <bucketName> --key <all-backupKey> --file stdin --threads <threads> --retrycount <retry> --storageclass <storage-class>
    # 恢复
    ./filemgr-linux --action stream-download --bucket <bucketName> --key <all-backupKey> --threads <threads> --retrycount <retry> 2>./error.log | gzip -d | mysql
# 加密
    # 备份,使用aes256,指定密码文件key file在备份路径中进行压缩
    mysqldump -A | openssl enc -e -aes256 -in - -out - -kfile <key file> | ./filemgr-linux64 --action stream-upload --bucket <bucketName> --key <all-backupKey> --file stdin --threads <threads> --retrycount <retry> --storageclass <storage-class>
    # 恢复
    ./filemgr-linux --action stream-download --bucket <bucketName> --key <all-backupKey> --threads <threads> --retrycount <retry> 2>./error.log | openssl enc -d -aes256 -in - -out - -kfile <key file> | mysql

备注: 如果不希望异常情况终止任务,请将 retrycount 参数设置为一个比较大的值,默认为 10。每次执行失败会开始重试,第 5 次重试开始每次重试会等待 5s,请合理计算重试次数。

使用生命周期实现定期删除打开对象存储控制台,进入备份使用的 bucket 详情页

image

点击生命周期 tab,进入生命周期配置页

image

为该 bucket 配置定期删除任务

当备份文件超过配置期限,文件会被自动删除

使用跨区域复制进行异地容灾打开对象存储控制台,进入备份使用的 bucket 详情页

image

点击开区域复制 tab,进入跨区域复制配置页

image

为该 bucket 配置跨区域复制任务

当该 bucket 下产生备份文件时,文件会被自动同步到配置好的异地 bucket 中

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/126798.html

相关文章

  • 概览 对象存储 US3

    摘要:概览概览产品简介产品概述功能概览产品优势使用限制存储类型地域和域名计量计费产品价格计费规则欠费处理计费案例快速上手开通服务开始使用控制台指南存储空间日志管理文件管理生命周期静态网站托管域名管理镜像回源跨区域复制跨域设置数据分析防盗链统计报 概览产品简介产品概述功能概览产品优势使用限制存储类型地域和域名计量计费产品价格计费规则欠费处理计费案例快速上手开通 US3 服务开始使用 US3控制台指南...

    ernest.wang 评论0 收藏2651
  • UCloud优刻得推出自研存储引擎US3 持续降低用户存储成本

    摘要:本次大会上,优刻得基于自研的全新存储底层架构推出新一代对象存储产品。推出新一代自研存储引擎,持续降低存储成本优刻得在今年月推出了元月的归档存储产品,打破了存储领域降本的边界。伴随着5G、大数据的广泛应用,带来了数据量的爆炸式增长。根据IDC预测,2025年全球数据总量将达到惊人的175ZB。数据存储在未来的数字化时代将面临更多挑战:每秒钟存储数据写入性能、数据云端存储可靠性、数据存储成本增高...

    Tecode 评论0 收藏0
  • 【归档存储 UArchive】使用场景、控制台快速上手

    摘要:更多归档存储类型的使用说明请参考数据归档方案。控制台快速上手注产品已作为归档存储类型合并至对象存储,目前不再向新用户提供独立的归档存储服务。创建归档存储空间登录控制台,选择右侧归档存储后进入归档存储列表页,选择创建归档存储空间按钮。使用场景注:UArchive 产品已作为归档存储类型合并至 US3 对象存储,目前不再向新用户提供独立的归档存储服务。如需使用更低成本的对象存储服务,请至 US3...

    Tecode 评论0 收藏0
  • 【归档存储 UArchive】主要概念、产品优势

    摘要:归档存储空间英文名称,是归档文件的组织单位,相当于目录的作用,也是计费权限控制等功能的管理单位。归档文件英文名称,是数据操作的基本单元,支持任意数据类型。主要概念注:UArchive 产品已作为归档存储类型合并至 US3 对象存储,目前不再向新用户提供独立的归档存储服务。如需使用更低成本的对象存储服务,请至 US3 对象存储控制台 。更多 US3 归档存储类型的使用说明请参考 数据归档方案。...

    Tecode 评论0 收藏0
  • 打通本地部署和公有云,混合云架构让“鱼”和“熊掌”兼得(一)

    摘要:对于上述问题,混合云架构无疑是企业的最佳选择。解决方案将本地环境与公有云连通组成混合云架构,实现对本地环境计算能力的快速扩展。前言当前各行各业在积极拥抱云计算,但由于一些历史原因和合规要求导致很多企业全面上云比较困难,比如企业监管制度及合规要求一些核心数据库必须保留在本地数据中心;本地数据中心作为企业固定资产不容易完全抛弃;有些大型集团企业IT架构复杂,全面迁移上云的影响难以评估等等。因此,...

    Tecode 评论0 收藏0
  • 打通本地部署和公有云,混合云架构让“鱼”和“熊掌”兼得(一)

    摘要:对于上述问题,混合云架构无疑是企业的最佳选择。解决方案将本地环境与公有云连通组成混合云架构,实现对本地环境计算能力的快速扩展。前言当前各行各业在积极拥抱云计算,但由于一些历史原因和合规要求导致很多企业全面上云比较困难,比如企业监管制度及合规要求一些核心数据库必须保留在本地数据中心;本地数据中心作为企业固定资产不容易完全抛弃;有些大型集团企业IT架构复杂,全面迁移上云的影响难以评估等等。因此,...

    Tecode 评论0 收藏0

发表评论

0条评论

ernest.wang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<