Home
Linux
Golang
MySQL
PHP
Other
Message
MySQL备份数据库-冷热备份
创建日期:2019-09-05 21:01:46
更新日期:2020-10-22 22:40:30
栏目:
MySQL
浏览:708
备份的重要意义这些客套话咋就不说了,直接来干货 [TOC] ## mysqldump使用说明 查找磁盘上的最大空间 `df -h` 创建备份文件夹 `mkdir backup` ### 1.编写shell脚本 ``` cd backup vim bkDatabase.sh //取个好记的名字,直接用数据库名字 输入以下内容 #!/bin/bash mysqldump -uroot -proot -B DatabaseName > /backup/Database_$(date +%Y%m%d_%H%M%S).sql //一个SQL文件,日期格式命名 #!/bin/bash mysqldump -uroot -proot -B DatabaseName | gzip > /backup/Database_$(date +%Y%m%d_%H%M%S).sql.gz //一个压缩格式的 ``` > 注:加了-B参数后,备份文件中会多 `create DatabaseName` 和 `use DatabaseName` 命令,有很多可选参数的,具体看附录。 ### 2.添加可执行权限 ``` chmod u+x bkDatabase.sh //添加可执行权限 ./bkDatabase.sh //试运行 ``` ### 3.添加计划任务 ``` crontab -l //查看已经配置的定时任务 crontab -e //添加计划任务 输入以下内容 */1 * * * * /backup/bkDatabase.sh //每分钟运行一次 ``` ### 4.查看是否备份成功 ## 附录一、计划任务配置格式说明 ``` 格式说明: 分 时 日 月 周 要运行的命令 分 1-59 时 1-23 日 1-31 月 1-12 周 0-6 (0表示星期天) 举例说明 22 11 * * * /backup/bkDatabase.sh //每天11:22备份数据库 44 12 1,15,30 * * /backup/bkDatabase.sh //每个月的1,,1,30号12:44备份 5 * * * * ls 指定每小时的第5分钟执行一次ls命令 30 5 * * * ls 指定每天的 5:30 执行ls命令 30 7 8 * * ls 指定每月8号的7:30分执行ls命令 30 5 8 6 * ls 指定每年的6月8日5:30执行ls命令 30 6 * * 0 ls 指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等] 30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段] 25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段] */15 * * * * ls 每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ] 30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls命令] 50 7 * * * root run-parts /etc/cron.daily 每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件 [ 注:run-parts参数表示,执行后面目录中的所有可执行文件] ``` ## 附录二、数据库简单导入导出 导出数据库 ``` mysqldump -u数据库名 -p 目标数据库 > 存储的文件名 mysqldump -uroot -p test > /home/shuxiaoyuan/test.sql ``` 导入数据库 ``` mysql -u用户名 -p 数据库名 < 数据库名.sql mysql -uroot -p test < /home/shuxiaoyuan/test.sql ``` ## 附录三、mysqldump参数说明 格式:`mysqldump -u<username> -p<dbname> > /path/to/***.sql` --all-databases 备份所有数据库
内容版权声明:本文为舒孝元原创文章,转载无需和我联系,但请注明来自
舒孝元博客:https://www.shuxiaoyuan.com/info/28
联系邮箱:sxy@shuxiaoyuan.com