乐趣区

关于mysql:定时备份MySQL数据库

MySQL 提供了 mysqldump 命令来实现导出数据库,命令用法如下:

mysqldump -u root -p

  此处含有隐藏内容,需要正确输入密码后可见!

[database_name] > [backup].sql

在 Linux 服务器中联合 crontab 定时命令实现定时备份数据库,同时反对压缩、备份日志、定期清理等性能。

1. 备份执行脚本

新建 mysql 的备份命令脚本

$ vi db_backup.sql

复制以下内容:

#!/bin/bash

# 数据库名称
database_name="mydb"
mysql_password=""
# 备份文件保留地址
backup_dir="/mydata/backup/mydb"
# 备份文件名前缀
backup_prefix="demo"
# 备份文件的有效期,单位为 day
backup_days="30"

dd=`date +%Y-%m-%d-%H-%M-%S`
backup_file="$backup_dir/$backup_prefix-$dd.sql"

if [! -d $backup_dir]; 
then     
    mkdir -p $backup_dir; 
fi

mysqldump -u root -p$mysql_password $database_name > $backup_file

# 压缩 sql 文件
gzip -f $backup_file

# 写创立备份日志
echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt

# 革除过期的文件
find $backup_dir -name "$backup_prefix*.sql.gz" -mtime +$backup_days -exec rm {} \;

至此,执行该脚本,能够生成压缩的数据库.sql 文件

2. 定时工作

应用 crontab 命令定期执行脚本

# 编辑 cron 脚本文件
$ sudo crontab -e

在关上的配置文件中追加以下内容:

# 示例为每天凌晨 2 点 30 分执行备份脚本文件
# 留神批改要执行的脚本的门路
30 2 * * * ~/bin/db_backup.sh

查看定时工作:

$ crontab -l

# 后果会蕴含新减少的定时工作
# 30 2 * * * ~/bin/db_backup.sh

至此实现了定时备份 MySQL 数据库性能。

注:该定时工作会在零碎重启后仍旧保留,不必放心从新设置

退出移动版