mysql自动化备份方案
需求如下:
某公司有一台数据库服务器托管在IDC,为了保障数据库的安全性,需要对其做定时备份,又为了防止数据库服务器出现硬件故障,同时要求将备份数据定时传送至公司内网文件服务器上存档。
一、配置数据库服务器
1、撰写mysql自动备份脚本
mysql备份主要包括热备和冷备,在此使用热备,也就是利用mysqldump导出SQL语句的方式进行备份
#vi /etc/mysqlback.sh
#!/bin/bash
DB_NAME="luwenju" //需要备份的数据库
DB_USER="luwenju" //数据库用户名
DB_PASS="luwenju" //数据库密码
BIN_DIR="/usr/local/mysql/bin" //mysql的环境变量
BACK_DIR="/opt" //备份文件保存数据
DATE="`date +%Y%m%d`"
$BIN_DIR/mysqldump –opt -u$DB_USER -p$DB_PASS $DB_NAME > $BACK_DIR/luwenju_$DATE.sql
#chmod +x /etc/mysqlback.sh
测试
#/etc/mysqlback.sh
#ls /opt/
luwenju_20110626.sql
2、设置定时备份周期
本案例中设置的为每日凌晨进行备份一次,具体备份周期根据具体应用
#crontab –e
0 0 * * * /etc/mysqlback.sh
#/etc/init.d/crond restart
3、安装rsync
#tar zxvf rsync-3.0.8.tar.gz
#cd rsync-3.0.8
#./configure && make && make install
创建配置文件,加入如下内容
#vi /etc/rsync.conf
uid = nobody
gid = nobody
use chroot = no
max connections = 10
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
port = 873
timeout = 300
[backup]
read only = yes //只读模式
list = yes
ignore errors
comment = This is a file back
path = /opt //需要同步的目录
auth users = test //验证用户
secrets file = /etc/rsync.passwd //验证密码路径
hosts allow = 119.232.33.246 //允许连接的客户端