自动备份MYSQL数据库脚本

  • A+
所属分类:运维教程

vi dbbackup.sh在打开的编辑器输入:

	#!/bin/bash
	/usr/local/mysql/bin/mysqldump –uuser –ppasswd databasename >
	/home/wwwroot/backup/date_$(date ‘+%Y%m%d’).sql

命令的意思是用mysqldump导出名为databasename的数据库到/home/wwwroot/backup/文件夹并命名为date_日期.sql,-u后面的是你的Mysql的用户名,-p后面的是Mysql密码,databasename是要备份数据库名字,把这三个替换成自己的。

修改权限并执行备份脚本看能否备份成功。

chmod +x dbbackup.sh

sh dbbackup.sh

如果一切检查没问题了,就创建定时任务自动备份你的数据吧,输入命令:

crontab –e

在打开的文件输入定时任务。

	56 23 * * * /root/dbbackup.sh

然后按esc键后输入:wq退出编辑并保存文件。

好了,定时任务创建好了,每天23点56分备份执行dbbackup.sh备份数据库。

  • 我的微博
  • 这是微博的扫一扫
  • weinxin
  • 微信公众
  • 微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:80   其中:访客  73   博主  7

    • avatar Yotravel 4

      签到成功!签到时间:今日的上午9:01:45,每日打卡,生活更精彩哦!

      • avatar King-Jed 5

        签到成功!签到时间:今日的下午4:43:37,每日打卡,生活更精彩哦!

        • avatar wsdgdhai249 4

          老师我看你上面写的备份语句是直接备份的,没用什么选项,不用加锁也可以么,比如加上 -R –opt 之类的

            • avatar Penn Admin

              @wsdgdhai249 一般在这么操作时,最好是先关闭mysql服务器,然后再做备份,如果期间保持运行状态很有可能出错!

                • avatar wsdgdhai249 4

                  @Penn 了解 :cool:

                    • avatar Penn Admin

                      @wsdgdhai249 我试过锁表复制不稳定!

                        • avatar wsdgdhai249 4

                          @Penn 那热备的时候如果不锁,备份的同时用户还在写入不就麻烦了

                          • avatar Penn Admin

                            @wsdgdhai249 热备时肯定要锁表的啊,但我说的那种你没法锁!

                            • avatar wsdgdhai249 4

                              @Penn 什么情况?

                              • avatar Penn Admin

                                @wsdgdhai249 关服务做冷备就不用锁表了!

                                • avatar wsdgdhai249 4

                                  @Penn :arrow: 说得是呢

                                  • avatar Penn Admin

                                    @wsdgdhai249 还涉及pid等等!

                            • avatar wsdgdhai249 4

                              杜老师请教你个问题,现在我们公司的数据库是用的mysqldump实现热备,备份的.sql文件有十几个G。如果因为误操作数据库T1,导致数据库不能用。恢复数据时,是不是需要先进入数据删除原来的T1库(drop database T1;),再重新导入备份的.sql文件啊?还是有什么其他办法?因为我试过直接物理删除库T1的目录,再通过备份恢复时会报表结构已存在的错误。

                                • avatar Penn Admin

                                  @wsdgdhai249 你们数据库的备份是整库备,还是单表备份。是完全备,还是增量备份,这些都会影响你的恢复!另外恢复有数据库恢复、表结构恢复和数据恢复,分清之后再做恢复!

                                    • avatar wsdgdhai249 4

                                      @Penn 项目数据是分开的,每个库单库备份,恢复一个单库的数据,感觉备份十多个G,用.sql文件恢复超慢。 :evil: ,以前做实验数据量小的时候误操作就通过 “备份+binlog增量”恢复还行,现在发现数据量大了问题就来了,生产不可能给你甚至超过半小时来恢复数据的。

                                        • avatar Penn Admin

                                          @wsdgdhai249 还有一种办法就是:加一台备用服务器定期备份,然后做热切换。比如服务器A每24小时备份到B,当出现问题时直接切换到B,然后再通过A筛选数据导入到B,最后切换角色!

                                    • avatar 灰琳形泳啃寡闭稼垂刑蒂烁踊俦烤叭葡痪 9

                                      签到成功!签到时间:今日的上午10:12:28,每日打卡,生活更精彩哦!

                                      • avatar 瘟藏掩粟屹平珊遣谛陌阉孟俣仁卮云薪救 9

                                        签到成功!签到时间:今日的上午8:32:03,每日打卡,生活更精彩哦!