【云原生 | Docker】Linux 定时自动化备份Mysql数据到本地 & Windows 最佳实践,确定不来看看?

这篇具有很好参考价值的文章主要介绍了【云原生 | Docker】Linux 定时自动化备份Mysql数据到本地 & Windows 最佳实践,确定不来看看?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

linux mysql 自动备份,Linux实战99精讲,云原生,2022MySQL数据库,云原生,docker,linux,自动化,mysql

🤵‍♂️ 个人主页: @AI_magician
📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。
👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍
🙋‍♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能&硬件(虽然硬件还没开始玩,但一直很感兴趣!希望大佬带带)

linux mysql 自动备份,Linux实战99精讲,云原生,2022MySQL数据库,云原生,docker,linux,自动化,mysql

该文章收录专栏
[✨— 《深入解析机器学习:从原理到应用的全面指南》 —✨]

@toc

Linux 定制自动备份至 本地及当地window目录下 (docker )

以下是在Linux(CentOS)上实现MySQL定时备份并将备份传输到Windows本地的方案详解,同时以Markdown表格的形式列出名称、介绍以及优缺点。

名称 介绍 优缺点
使用Shell脚本和Cron 使用Shell脚本和Cron定时任务来备份MySQL数据,并使用文件传输协议(如SCP或SFTP)将备份文件传输到Windows本地。 优点:简单易用,无需额外工具;可通过Cron实现定时备份;支持备份文件传输到远程服务器。缺点:备份文件传输速度受网络影响;需要配置正确的文件传输协议和权限。
使用第三方备份工具 使用第三方备份工具(如Percona XtraBackup、mysqldump等)来备份MySQL数据,并将备份文件传输到Windows本地。可以结合Shell脚本和Cron来实现定时备份和传输。 优点:提供更多备份选项和功能;备份效率高;支持备份文件的远程传输。缺点:需要额外学习和配置第三方备份工具;备份文件传输速度受网络影响。
使用数据复制方案 配置MySQL的主从复制,将数据复制到另一台Linux服务器上,然后使用文件传输协议将备份文件传输到Windows本地。 优点:实时备份,数据可靠性高;可在从服务器上进行备份文件的传输;支持主从复制的其他优点。缺点:配置复杂;需要额外的硬件和网络资源。
使用云存储服务 将MySQL备份文件上传到云存储服务(如Amazon S3、Google Cloud Storage等),然后从Windows本地下载备份文件。 优点:备份文件安全可靠;无需自行配置文件传输;支持跨平台备份文件的访问。缺点:需要注册和配置云存储服务;备份文件传输速度受网络影响;可能需要支付额外的存储和传输费用。
使用Shell脚本和Cron
  1. 编写备份脚本:创建一个Shell脚本文件,例如backup.sh,用于执行MySQL数据备份操作。在脚本中,需要包含连接MySQL数据库的相关信息、备份文件的保存路径以及备份命令。
  2. 编辑备份脚本:在备份脚本中,使用适当的命令(如mysqldump)来执行MySQL数据备份。确保备份命令包括必要的选项,如备份的数据库名称、用户名、密码等。
  3. 设置备份文件路径:在备份脚本中,指定备份文件的保存路径。可以选择本地路径或远程路径,例如/var/backups/mysql/。
  4. 设置定时任务:使用Cron定时任务来自动执行备份脚本。打开终端,运行crontab -e命令编辑Cron表。
  5. 编辑Cron表:在Cron表中,添加一行指定备份脚本的执行时间和路径。例如,0 2 * * * /path/to/backup.sh表示每天凌晨2点执行备份脚本。
  6. 保存和退出:保存Cron表的修改,并退出编辑器。
  7. 测试备份脚本:运行备份脚本进行测试,确保备份正常工作。在终端中执行bash /path/to/backup.sh命令,检查备份文件是否生成。
  8. 自动定时备份:Cron将按照设置的时间自动执行备份脚本,并生成MySQL数据备份文件。

MySQL数据备份可以使用多种命令进行,以下是一些常用的MySQL数据备份命令:

  1. 使用mysqldump命令备份整个数据库:
mysqldump -u [用户名] -p [密码] [数据库名] > [备份文件路径]

示例:

mysqldump -u root -p mydatabase > /var/backups/mydatabase.sql
  1. 使用mysqldump命令备份指定表:
mysqldump -u [用户名] -p [密码] [数据库名] [表名] > [备份文件路径]

示例:

mysqldump -u root -p mydatabase mytable > /var/backups/mytable.sql
  1. 使用–all-databases选项备份所有数据库:
mysqldump -u [用户名] -p [密码] --all-databases > [备份文件路径]

示例:

mysqldump -u root -p --all-databases > /var/backups/alldatabases.sql
  1. 使用–single-transaction选项备份大型数据库,以保证一致性:
mysqldump -u [用户名] -p [密码] --single-transaction [数据库名] > [备份文件路径]

示例:

mysqldump -u root -p --single-transaction mydatabase > /var/backups/mydatabase.sql

这些命令将会生成一个以.sql扩展名的备份文件,其中包含了数据库或表的结构和数据。在执行备份命令时,需要替换[用户名]、[密码]、[数据库名]、[表名]和[备份文件路径]为实际的值。

如果是在docker之中,则需要先进入到docker中

要备份Docker中的MySQL,您可以使用以下步骤:

  1. 查找MySQL容器的名称或ID:运行以下命令来获取正在运行的MySQL容器的名称或ID:
docker ps
  1. 进入MySQL容器:使用以下命令进入MySQL容器的命令行界面:
docker exec -it <容器名称或ID> bash
  1. 在MySQL容器中执行备份命令:在MySQL容器的命令行界面中,可以使用mysqldump命令来执行备份。例如,要备份整个数据库,可以运行以下命令:
mysqldump -u [用户名] -p [密码] [数据库名] > [备份文件路径]

示例:

mysqldump -u root -p mydatabase > /var/backups/mydatabase.sql
  1. 退出MySQL容器:完成备份后,使用以下命令退出MySQL容器的命令行界面:
exit
  1. 将备份文件从容器复制到宿主机:在宿主机上使用以下命令将备份文件从MySQL容器复制到宿主机的特定位置:
docker cp <容器名称或ID>:<容器内备份文件路径> <宿主机备份文件路径>

示例:

docker cp my-mysql:/var/backups/mydatabase.sql /host/backups/mydatabase.sql

现在,您已经成功备份了Docker中的MySQL数据库,并将备份文件复制到了宿主机上的指定位置。请确保替换命令中的占位符 <容器名称或ID><容器内备份文件路径><宿主机备份文件路径> 为实际的值。

添加定时删除文件

ls -lt <目录路径>/*.sql | tail -n 1 | awk '{print $9}' | xargs rm

这个命令的步骤如下:

  1. ls -lt <目录路径>/*.sql:使用 ls 命令列出目录中所有 .sql 文件,并按照最后修改时间降序排列。
  2. tail -n 1:获取排序后的结果中的最后一行,即最旧的文件。
  3. awk '{print $9}':提取出结果中的第九列,即文件名。
  4. xargs rm:将提取出的文件名作为参数,使用 rm 命令删除该文件。

请将 <目录路径> 替换为你要操作的目录路径,然后执行以上命令即可删除目录中最旧的一个 .sql 文件。

备份编写如下:

#!/bin/bash
docker exec -it f73d6e43f9cc bash -c "mysqldump -u root -pBigData@2021  --single-transaction  BigData  > /backup/BigData.sql"
docker cp f73d6e43f9cc:/backup/BigData.sql "/home/Backup/Bigdata_Backup/$(date '+%Y-%m-%d')-BigData.sql"
ls -lt ./*.sql | tail -n 1 | awk '{print $9}' | xargs rm
chmod 777 /home/Backup/Bigdata_Backup/$(date '+%Y-%m-%d')-BigData.sql ## 用户下载到本地

windows 自动下载

使用scp命令编写bat文件

@echo off
echo 正在下载文件...

scp -P 10086 -r root@10.10.61.7:/home/Backup/Bigdata_Backup/*.sql D:/project/易班/易班项目/数学与大叔据学院易班学工系统/数据备份/

echo 下载完成。

linux mysql 自动备份,Linux实战99精讲,云原生,2022MySQL数据库,云原生,docker,linux,自动化,mysql文章来源地址https://www.toymoban.com/news/detail-784349.html

						  🤞到这里,如果还有什么疑问🤞
					🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩
					 	 🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳

到了这里,关于【云原生 | Docker】Linux 定时自动化备份Mysql数据到本地 & Windows 最佳实践,确定不来看看?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 轻松拿捏Jenkins(Linux)+Java11+Docker自动化打包部署

    注:本文由笔者小白亲手实践写作,涵盖较全,创作不易,且行且珍惜!! 历时24小时,包含Jenkins环境构建部署过程中的99%问题,确定不来看一下吗? 由于Jenkins自2.357版本之后,上新的版本需要提供Java11及以上版本的支持,且之前的版本市场上推荐的绝大多数插件已经不再

    2024年02月06日
    浏览(41)
  • Java定时任务、自动化任务调度

    Java提供了多种方式来实现定时任务,使得开发人员能够在指定的时间间隔或固定时间点执行特定的任务。本文将介绍Java中实现定时任务的几种常用方法,并探讨它们的优势和适用场景。 Java中的Timer类是最早引入的定时任务工具,它可以用于执行一次性或重复性的定时任务。

    2024年02月16日
    浏览(50)
  • 【云原生持续交付和自动化测试】5.2 自动化测试和集成测试

    往期回顾: 第一章:【云原生概念和技术】 第二章:【容器化应用程序设计和开发】 第三章:【基于容器的部署、管理和扩展】 第四章:【微服务架构设计和实现】 第五章:【5.1 自动化构建和打包容器镜像】 5.2.1 什么是自动化测试和集成测试? 云原生的自动化测试和集

    2024年02月14日
    浏览(61)
  • Django+Celery框架自动化定时任务开发

    本章介绍使用DjCelery即Django+Celery框架开发定时任务功能,在Autotestplat平台上实现单一接口自动化测试脚本、业务场景接口自动化测试脚本、App自动化测试脚本、Web自动化测试脚本等任务的定时执行、调度、管理等,从而取代Jenkins上的定时执行脚本和发送邮件等功能。** 自动化

    2024年04月15日
    浏览(44)
  • Postman-脚本自动化及定时执行脚本(7)

    一.postman脚本自动化 ( 从postman至Newman可以一键执行脚本并生成报告: ) Postman Newman 是一个 CLI(命令行界面)工具,可以使用它来运行 Postman 中的集合(Collection)和环境(Environment)进行自动化测试。postman使用newman插件完成命令执行postman脚本。**(1)newman按装** 1.Newman安

    2024年01月21日
    浏览(44)
  • GitHub Actions自动化部署+定时百度链接推送

    # 前言 最近用VuePress搭建了一个静态网站,由于是纯静态的东西,每次修改完文章都要重新打包上传很是麻烦。虽然vuepress-theme-vdoing主题作者提供了GitHub Actions自动化部署的教程文章,但是过于简陋且是19年发布的。。 # 1. 创建一个GitHub仓库(私有仓库也可以) # 2. 设置服务器地

    2024年02月12日
    浏览(53)
  • Windows环境下使用MySQL:实现自动定时备份

    一、编写备份脚本 1 2 3 4 5 6 7 8 9 rem auther:www.yumi-info.com rem date:20230209 rem ******MySQL backup start******** @echo off forfiles /p \\\"E:mysqlMySQL BackUp\\\" /m backup_*.sql -d -30 /c \\\"cmd /c del /f @path\\\" set \\\"Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%\\\" \\\"E:mysqlMySQL Server 5.6binmysqldump\\\" --opt --single-tran

    2023年04月14日
    浏览(38)
  • 【Python自动化】定时自动采集,并发送微信告警通知,全流程案例讲解!

    目录 一、概要 二、效果演示 三、代码讲解 3.1 爬虫采集行政处罚数据 3.2 存MySQL数据库 3.3 发送告警邮件微信通知 3.4 定时机制 四、总结 您好!我是@马哥python说,一名10年程序猿。 我原创开发了一套定时自动化爬取方案,完整开发流程如下: 采集数据 - 筛选数据 - 存MySQL数据

    2024年02月05日
    浏览(45)
  • .NET Core部署到linux(CentOS)最全解决方案,入魔篇(使用Docker+Jenkins实现持续集成、自动化部署)

    通过前面三篇: .NET Core部署到linux(CentOS)最全解决方案,常规篇 .NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx) .NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus) 通过前面三篇文章的介绍,我们已经对.net core多方案部署到linux下有了非常全面的认识

    2024年02月02日
    浏览(42)
  • 软件测试 | 测试开发 | Django+Celery框架自动化定时任务开发

    ** 本章介绍使用DjCelery即Django+Celery框架开发定时任务功能,在Autotestplat平台上实现单一接口自动化测试脚本、业务场景接口自动化测试脚本、App自动化测试脚本、Web自动化测试脚本等任务的定时执行、调度、管理等,从而取代Jenkins上的定时执行脚本和发送邮件等功能。** 自动

    2023年04月08日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包