定时备份数据库的解决方案

  1. 定时调度器
  • Windows的定时计划
  • Linux的Crontab
  • 编程语言的Timer
  1. 数据库备份脚本
  • DOS批处理脚本
  • Linux Shell脚本
  • … …
  1. SELECT…INTO OUTFILE
  2. mysqldump

Windows上实现定时备份MySQL

schtasks.exe用于安排命令和程序在指定时间内运行或定期运行,它可以从计划表中添加和删除任 务、按需要启动和停止任务、显示和更改计划任务。

#备份数据库的脚本mysql_mydb_backup.bat
mysqldump -h localhost -uroot -p123456 mydb > d:\backup\mydb.sql

#创建计划任务(每隔指定时间备份一次MySQL)
schtasks /create /sc minute /mo 1 /tn 定期备份MySQL /tr d:\backup\mysql_mydb_backup.bat

#删除计划任务

Linux上实现定时备份MySQL(1)

#!/bin/bash
#备份目录
backup_dir=/home/st/backup

#备份文件名
backup_filename="mydb-`date +%Y%m%d`.sql"

#进入备份目录
cd $backup_dir

#备份数据库
MySQL备份脚本 mysql_mydb_backup.sh
mysqldump -h localhost -uroot -p123456 mydb > ${backup_dir}/${backup_filename}

#删除7天以前的备份
find ${backup_dir} -mtime +7 -name "*.sql" -exec rm -rf {} \;

Linux上实现定时备份MySQL(2)

crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于周期性执行任务。

#每天凌晨01:30执行shell脚本(备份数据库)
30 1 * * * bash