【云原生 | 您所在的位置:网站首页 › mysql定时备份到远程服务器里 › 【云原生 |
![]() 🤵♂️ 个人主页: @AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱🏍 🙋♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能&硬件(虽然硬件还没开始玩,但一直很感兴趣!希望大佬带带) 该文章收录专栏 [✨--- 《深入解析机器学习:从原理到应用的全面指南》 ---✨] @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编写备份脚本:创建一个Shell脚本文件,例如backup.sh,用于执行MySQL数据备份操作。在脚本中,需要包含连接MySQL数据库的相关信息、备份文件的保存路径以及备份命令。编辑备份脚本:在备份脚本中,使用适当的命令(如mysqldump)来执行MySQL数据备份。确保备份命令包括必要的选项,如备份的数据库名称、用户名、密码等。设置备份文件路径:在备份脚本中,指定备份文件的保存路径。可以选择本地路径或远程路径,例如/var/backups/mysql/。设置定时任务:使用Cron定时任务来自动执行备份脚本。打开终端,运行crontab -e命令编辑Cron表。编辑Cron表:在Cron表中,添加一行指定备份脚本的执行时间和路径。例如,0 2 * * * /path/to/backup.sh表示每天凌晨2点执行备份脚本。保存和退出:保存Cron表的修改,并退出编辑器。测试备份脚本:运行备份脚本进行测试,确保备份正常工作。在终端中执行bash /path/to/backup.sh命令,检查备份文件是否生成。自动定时备份:Cron将按照设置的时间自动执行备份脚本,并生成MySQL数据备份文件。MySQL数据备份可以使用多种命令进行,以下是一些常用的MySQL数据备份命令: 使用mysqldump命令备份整个数据库: mysqldump -u [用户名] -p [密码] [数据库名] > [备份文件路径] 示例: mysqldump -u root -p mydatabase > /var/backups/mydatabase.sql 使用mysqldump命令备份指定表: mysqldump -u [用户名] -p [密码] [数据库名] [表名] > [备份文件路径] 示例: mysqldump -u root -p mydatabase mytable > /var/backups/mytable.sql 使用--all-databases选项备份所有数据库: mysqldump -u [用户名] -p [密码] --all-databases > [备份文件路径] 示例: mysqldump -u root -p --all-databases > /var/backups/alldatabases.sql 使用--single-transaction选项备份大型数据库,以保证一致性: mysqldump -u [用户名] -p [密码] --single-transaction [数据库名] > [备份文件路径] 示例: mysqldump -u root -p --single-transaction mydatabase > /var/backups/mydatabase.sql 这些命令将会生成一个以.sql扩展名的备份文件,其中包含了数据库或表的结构和数据。在执行备份命令时,需要替换用户名、密码、数据库名、表名和备份文件路径为实际的值。 如果是在docker之中,则需要先进入到docker中 要备份Docker中的MySQL,您可以使用以下步骤:查找MySQL容器的名称或ID:运行以下命令来获取正在运行的MySQL容器的名称或ID:docker ps 进入MySQL容器:使用以下命令进入MySQL容器的命令行界面:docker exec -it bash 在MySQL容器中执行备份命令:在MySQL容器的命令行界面中,可以使用mysqldump命令来执行备份。例如,要备份整个数据库,可以运行以下命令:mysqldump -u [用户名] -p [密码] [数据库名] > [备份文件路径]示例:mysqldump -u root -p mydatabase > /var/backups/mydatabase.sql 退出MySQL容器:完成备份后,使用以下命令退出MySQL容器的命令行界面:exit 将备份文件从容器复制到宿主机:在宿主机上使用以下命令将备份文件从MySQL容器复制到宿主机的特定位置:docker cp : 示例:docker cp my-mysql:/var/backups/mydatabase.sql /host/backups/mydatabase.sql现在,您已经成功备份了Docker中的MySQL数据库,并将备份文件复制到了宿主机上的指定位置。请确保替换命令中的占位符 、 和 为实际的值。 添加定时删除文件 ls -lt /*.sql | tail -n 1 | awk '{print $9}' | xargs rm 这个命令的步骤如下: ls -lt /*.sql:使用 ls 命令列出目录中所有 .sql 文件,并按照最后修改时间降序排列。 tail -n 1:获取排序后的结果中的最后一行,即最旧的文件。 awk '{print $9}':提取出结果中的第九列,即文件名。 xargs rm:将提取出的文件名作为参数,使用 rm 命令删除该文件。 请将 替换为你要操作的目录路径,然后执行以上命令即可删除目录中最旧的一个 .sql 文件。 备份编写如下: 代码语言:shell复制#!/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文件 代码语言:shell复制@echo off echo 正在下载文件... scp -P 10086 -r [email protected]:/home/Backup/Bigdata_Backup/*.sql D:/project/易班/易班项目/数学与大叔据学院易班学工系统/数据备份/ echo 下载完成。![]() ![]() 我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖! |
CopyRight 2018-2019 实验室设备网 版权所有 |