广告
返回顶部
首页 > 资讯 > 数据库 >MySQL如何实现定时全库备份数据库
  • 934
分享到

MySQL如何实现定时全库备份数据库

2023-06-20 13:06:03 934人浏览 独家记忆
摘要

这篇文章给大家分享的是有关MySQL如何实现定时全库备份数据库的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、Mysql数据备份1.1、 mysqldump命令备份数据在Mysql中提供了命令行导出数据库数据以

这篇文章给大家分享的是有关MySQL如何实现定时全库备份数据库的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

    一、Mysql数据备份

    1.1、 mysqldump命令备份数据

    在Mysql中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下mysqldump命令用法:

    #MySQLdump常用mysqldump -u root -p --databases 数据库1 数据库2 > xxx.sql

    1.2、 mysqldump常用操作示例

    备份全部数据库的数据和结构

    mysqldump -uroot -p123456 -A > /data/mysqlDump/mydb.sql

    备份全部数据库的结构(加 -d 参数)

    mysqldump -uroot -p123456 -A -d > /data/mysqlDump/mydb.sql

    备份全部数据库的数据(加 -t 参数)

    mysqldump -uroot -p123456 -A -t > /data/mysqlDump/mydb.sql

    备份单个数据库的数据和结构(,数据库名mydb)

    mysqldump -uroot-p123456 mydb > /data/mysqlDump/mydb.sql

    备份单个数据库的结构

    mysqldump -uroot -p123456 mydb -d > /data/mysqlDump/mydb.sql

    备份单个数据库的数据

    mysqldump -uroot -p123456 mydb -t > /data/mysqlDump/mydb.sql

    备份多个表的数据和结构(数据,结构的单独备份方法与上同)

    mysqldump -uroot -p123456 mydb t1 t2 > /data/mysqlDump/mydb.sql

    一次备份多个数据库

    mysqldump -uroot -p123456 --databases db1 db2 > /data/mysqlDump/mydb.sql

    1.3、 还原mysql备份内容

    有两种方式还原,第一种是在MySQL命令行中,第二种是使用shell行完成还原

    在系统命令行中,输入如下实现还原:

    mysql -uroot -p123456 < /data/mysqlDump/mydb.sql

    在登录进入mysql系统中,通过source指令找到对应系统中的文件进行还原:

    mysql> source /data/mysqlDump/mydb.sql

    二、 编写脚本维护备份的数据库文件

    linux中,通常使用BASH脚本对需要执行的内容进行编写,加上定时执行命令crontab实现日志自动化生成。

    以下代码功能就是针对mysql进行备份,配合crontab,实现备份的内容为近一个月(31天)内的每天的mysql数据库记录。

    2.1、 编写BASH维护固定数量备份文件

    在Linux中,使用vi或者vim编写脚本内容并命名为:mysql_dump_script.sh

    #!/bin/bash#保存备份个数,备份31天数据number=31#备份保存路径backup_dir=/root/mysqlbackup#日期dd=`date +%Y-%m-%d-%H-%M-%S`#备份工具tool=mysqldump#用户名username=root#密码passWord=TankB214#将要备份的数据库database_name=edoctor#如果文件夹不存在则创建if [ ! -d $backup_dir ]; then         mkdir -p $backup_dir; fi#简单写法  mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.sql$tool -u $username -p$password $database_name > $backup_dir/$database_name-$dd.sql#写创建备份日志echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt#找出需要删除的备份delfile=`ls -l -crt  $backup_dir2 * * * echo "Have a break now." >> /tmp/test.txt

    晚上11点到早上8点之间每两个小时和早上八点

    0 23-7/2,8 * * * echo "Have a Good dream" >> /tmp/test.txt

    每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

    0 11 4 * 1-3 command line

    1月1日早上4点

    0 4 1 1 * command line SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MaiLTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/

    每小时执行/etc/cron.hourly内的脚本

    01 * * * * root run-parts /etc/cron.hourly

    每天执行/etc/cron.daily内的脚本

    02 4 * * * root run-parts /etc/cron.daily

    每星期执行/etc/cron.weekly内的脚本

    22 4 * * 0 root run-parts /etc/cron.weekly

    每月去执行/etc/cron.monthly内的脚本

    42 4 1 * * root run-parts /etc/cron.monthly

    注意: "run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名。  

    每天的下午4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55 min时执行命令。

    5,15,25,35,45,55 16,17,18 * * * command

    每周一,三,五的下午3:00系统进入维护状态,重新启动系统。

    00 15 * * 1,3,5 shutdown -r +5

    每小时的10分,40分执行用户目录下的innd/bbslin这个指令:

    10,40 * * * * innd/bbslink

    每小时的1分执行用户目录下的bin/account这个指令:

    1 * * * * bin/account

    三、执行效果截图

    以下是我的测试每分钟的截图效果,其对应代码如下:

    * * * * * /root/mysql_backup_script.sh

    效果截图:

    MySQL如何实现定时全库备份数据库

    其中的log.txt记录备份的操作详细日志:

    MySQL如何实现定时全库备份数据库

    感谢各位的阅读!关于“MySQL如何实现定时全库备份数据库”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

    您可能感兴趣的文档:

    --结束END--

    本文标题: MySQL如何实现定时全库备份数据库

    本文链接: https://www.lsjlt.com/news/296994.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作