MySQL 数据库自动备份
MySQL 备份命令
手抖、写错条件、写错表名、错连生产库造成的误删库表和数据总有听说,那么删库之后除了跑路,还能做什么呢,当然是想办法恢复,恢复数据的基础就在于完善的备份策略。下面就来介绍下MySQL自带备份工具mysqldump
。
mysqldump 介绍
数据备份
-
InnoDB 全库备份
mysqldump --opt --single-transaction --master-data=2 --default-character-set=utf8 -h -u -p -A > backup.sql
-
MyISAM 全库备份
mysqldump --opt --lock-all-tables --master-data=2 --default-character-set=utf8 -h -u -p -A > backup.sql
-
备份带上压缩
mysqldump -h -u -p -A | gzip >> backup.sql.gz
-
备份指定库(可多个库)
mysqldump -h -u -p --databases > backup.sql
数据恢复
gzip 介绍
-
用法:
gzip [OPTION]... [FILE]...
-
常用参数
-d
--decompress
解压
-c
--stdout
保留原始文件,把压缩/解压流重定向到新文件(如: gzip -c aa > aa.gz
)
-l
--list
列出压缩文件信息,并不解压
-r
--recursive
对目录进行递归操作
-t
--test
测试压缩文件的完整性
-v
--verbose
冗长模式
-num
num为压缩效率,是一个介于1~9
的数值,预设值为“6
”,指定愈大的数值,压缩效率就会愈高;
-1
--fast
最快压缩方法(低压缩比)
-9
--best
最慢压缩方法(高压缩比)
-
栗子
MySQL 备份脚本
Linux 定时任务-crontab
crontab
是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。
-
用法:
- crontab [-u user] file
- crontab [-u user] [ -e | -l | -r ]
-
参数解释:
-e
编辑用户的定时任务 (edit user's crontab)
-l
列出用户的定时任务 (list user's crontab)
-r
删除用户的定时任务 (delete user's crontab)
-i
在删除用户的定时任务前提示 (prompt before deleting user's crontab)
-s
(selinux context)
-
栗子
-
编辑
crontab -e
-
执行计划 (每天23点执行service iptables status
命令)
00 23 * * * service iptables status
-
详情
* * * * * commad
分 时 日 月 周 命令
第`1`列表示分钟 `1~59`, 每分钟用 `*` 或者 `*/1`表示
第`2`列表示小时 `1~23` (0表示0点)
第`3`列表示日期 `1~31`
第`4`列表示月份 `1~12`
第`5`列表示星期 `0~6` (0表示星期日)
第`6`列是要运行的命令
Reference