mysql-backup

mysql-backup

MySQL数据库备份恢复的开源工具

mysql-backup是一个开源的MySQL数据库备份恢复工具。它提供定期自动备份、多种存储选项、自定义备份计划和旧备份清理等功能。支持Docker容器和独立二进制文件两种运行方式。该工具适用于日常备份和数据恢复等多种场景,可满足MySQL数据库管理的基本需求。

MySQL备份数据库恢复容器化配置选项开源项目Github

mysql-备份

将mysql数据库备份到...任何地方!

概述

mysql-backup是一种简单的方法来执行MySQL数据库备份和恢复,以及管理您的备份。

它具有以下功能:

  • 转储和恢复
  • 转储到本地文件系统或SMB服务器
  • 选择数据库用户和密码
  • 连接到同一系统上运行的任何容器
  • 选择执行转储的频率
  • 选择开始第一次转储的时间,无论是一天中的某个时间还是相对于容器启动时间
  • 删除早于特定时间段或数量的备份

请查看CONTRIBUTORS.md获取贡献者列表。

版本

这是最新版本,基于2023年底完成的1.0.0版本的代码库完全重建,使用golang开发。

支持

可在databack Slack频道获得支持;在此处注册。我们在这里接受问题,并在Slack上回答常规支持问题。

如果您对商业支持感兴趣,请通过上面的Slack与我们联系。

运行mysql-backup

mysql-backup既可作为单独的独立二进制文件使用,也可作为容器镜像使用。

备份

要运行备份,请使用正确的参数启动mysql-backup - 作为容器或二进制文件。

例如:

docker run -d --restart=always -e DB_DUMP_FREQ=60 -e DB_DUMP_BEGIN=2330 -e DB_DUMP_TARGET=/local/file/path -e DB_SERVER=my-db-address -v /local/file/path:/db databack/mysql-backup dump # 或 mysql-backup dump --frequency=60 --begin=2330 --target=/local/file/path --server=my-db-address # 或通过unix域套接字以当前用户身份连接到本地mysqld mysql-backup dump --frequency=60 --begin=2330 --target=/local/file/path --server=/run/mysqld/mysqld.sock

mysql-backup --config-file=/path/to/config/file.yaml,其中/path/to/config/file.yaml是具有以下内容的文件:

server: my-db-address dump: frequency: 60 begin: 2330 target: /local/file/path

上述命令将每60分钟执行一次转储,从下一个本地时间2330开始,从容器my-db-address中可访问的数据库进行转储。

docker run -d --restart=always -e DB_USER=user123 -e DB_PASS=pass123 -e DB_DUMP_FREQ=60 -e DB_DUMP_BEGIN=2330 -e DB_DUMP_TARGET=/db -e DB_SERVER=my-db-address -v /local/file/path:/db databack/mysql-backup dump # 或 mysql-backup dump --user=user123 --pass=pass123 --frequency=60 --begin=2330 --target=/local/file/path --server=my-db-address --port=3306

有关执行备份的更详细说明,请参阅backup

有关所有配置选项的详细列表,请参阅configuration

恢复

要执行恢复,只需反向运行该过程。您仍然连接到数据库,但不是使用转储命令,而是传递恢复命令。您不传递转储目标,而是传递恢复目标。

转储恢复

如果您希望对现有数据库进行恢复,可以使用mysql-backup执行恢复。

您只需要以下环境变量:

您应该考虑使用--env-file=来将您的密钥保存在shell历史记录之外

  • DB_SERVER: 连接到数据库的主机名或unix域套接字路径(以斜杠开头)。必需。
  • DB_PORT: 用于连接数据库的端口。可选,默认为3306
  • DB_USER: 数据库的用户名
  • DB_PASS: 数据库的密码
  • DB_NAMES: 要恢复的数据库名称,用空格分隔。如果SINGLE_DATABASE=true,则必需。
  • SINGLE_DATABASE: 如果设置为true,则DB_NAMES是必需的,且必须只包含一个数据库名称。Mysql命令将使用--database=$DB_NAMES标志运行。这避免了需要USE <database>;语句,这在从使用SINGLE_DATABASE设置为true保存的文件恢复时很有用。
  • DB_RESTORE_TARGET: 实际恢复文件的路径,应该是压缩的转储文件。目标可以是应该挂载的绝对路径,smb或S3 URL,类似于目标。
  • DB_DUMP_DEBUG: 如果为true,在恢复时向容器日志输出大量输出。
  • 要使用S3驱动程序,需要定义AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_DEFAULT_REGION

示例:

  1. 从本地文件恢复: docker run -e DB_SERVER=gotodb.example.com -e DB_USER=user123 -e DB_PASS=pass123 -e DB_RESTORE_TARGET=/backup/db_backup_201509271627.gz -v /local/path:/backup databack/mysql-backup restore
  2. 使用ssl从本地文件恢复: docker run -e DB_SERVER=gotodb.example.com -e DB_USER=user123 -e DB_PASS=pass123 -e DB_RESTORE_TARGET=/backup/db_backup_201509271627.gz -e RESTORE_OPTS="--ssl-cert /certs/client-cert.pem --ssl-key /certs/client-key.pem" -v /local/path:/backup -v /local/certs:/certs databack/mysql-backup restore
  3. 从SMB文件恢复: docker run -e DB_SERVER=gotodb.example.com -e DB_USER=user123 -e DB_PASS=pass123 -e DB_RESTORE_TARGET=smb://smbserver/share1/backup/db_backup_201509271627.gz databack/mysql-backup restore
  4. 从S3文件恢复: docker run -e DB_SERVER=gotodb.example.com -e AWS_ACCESS_KEY_ID=awskeyid -e AWS_SECRET_ACCESS_KEY=secret -e AWS_REGION=eu-central-1 -e DB_USER=user123 -e DB_PASS=pass123 -e DB_RESTORE_TARGET=s3://bucket/path/db_backup_201509271627.gz databack/mysql-backup restore

恢复特定数据库

如果您的数据库中有多个模式,您可以选择只恢复其中的一些。

要做到这一点,您必须使用DB_DUMP_BY_SCHEMA=true转储数据库,然后使用DB_NAMES指定要恢复的模式。

执行此操作时,模式将以其原始名称恢复。要使用其他名称恢复,您必须在转储和恢复时都使用SINGLE_DATABASE=true,并且一次只能恢复一个模式。

示例:

  1. 转储多模式数据库并仅恢复其中一些:
    • docker run -e DB_SERVER=gotodb.example.com -e DB_USER=user123 -e DB_PASS=pass123 -e DB_DUMP_BY_SCHEMA=true -v /local/path:/backup databack/mysql-backup dump
    • docker run -e DB_SERVER=gotodb.example.com -e DB_USER=user123 -e DB_PASS=pass123 -e DB_RESTORE_TARGET=/backup/db_backup_201509271627.gz -e DB_NAMES="database1 database3" -v /local/path:/backup databack/mysql-backup restore
  2. 以不同名称转储和恢复模式:
    • docker run -e DB_SERVER=gotodb.example.com -e DB_USER=user123 -e DB_PASS=pass123 -e SINGLE_DATABASE=true -e DB_NAMES=database1 -v /local/path:/backup databack/mysql-backup dump
    • docker run -e DB_SERVER=gotodb.example.com -e DB_USER=user123 -e DB_PASS=pass123 -e DB_RESTORE_TARGET=/backup/db_backup_201509271627.gz -e SINGLE_DATABASE=true DB_NAMES=newdatabase1 -v /local/path:/backup databack/mysql-backup restore

有关执行恢复的更详细说明,请参阅restore

有关所有配置选项的详细列表,请参阅configuration

许可证

根据MIT许可证发布。 版权所有 Avi Deitcher https://github.com/deitch

编辑推荐精选

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

下拉加载更多