1. 远程连接阿里云服务器
2. 使用以下命令创建一个BackupDatabase.sh的文件
touch BackupDatabase.sh
3. vim编辑该文件
vim BackupDatabase.sh
4. 使用mysqldump命令来备份数据库
- –opt 如果有这个参数表示同时激活了mysqldump命令的
- –single-transaction 设置事务的隔离级别为可重复读,然后备份的时候开启事务,这样能保证在一个事务中所有相同的查询读取到同样的数据。
注意,这个参数只对InnoDB的引擎有效,MyISAM 的引擎需要改为 -x
- –master-data=2 表示在备份过程中记录主库的 binlog 和 pos 点,并在dump文件中注释掉这一行,在使用备份文件做新备库时会用到
- –default-character-set=charset 指定数据库字符集
- -u 用户名
- -p 密码
- -B 指定数据库
- > 指定输出路径
#!/bin/sh
/usr/local/mysql/bin/mysqldump --opt --single-transaction --master-data=2 --default-character-set=utf8mb4 -uroot -p123456 -B database > /root/BackupDatabase.sql
注意:mysqldump最好指定为绝对路径;输出路径同样;
最后保存退出
5. 设置定时任务
- 设置
crontab -e
- 在后面插入新的一行
* 23 * * * /root/BackupDatabase.sh > /root/BackupDatabase.log 2>&1
- 2>&1 将错误输出追加到文件
- *号代表的解释:
- 这里设置的是每天的23时启动BackDatabase.sh并输出日志
- 退出保存
- 输入 crontab -l 查看是否添加上去
- 输入 service crond start 启动crond服务