您的位置:首页 > 数据库 > MySQL

mysql自动备份与还原

2012-11-30 01:08 387 查看
1、修改配置文件:#vim /etc/my.cnf
在[mysqld]的最后面加上
log-bin=binlog ------------------------------------------------------------->打开binblog功能
log-bin-index=binlog.index------------------------------------------------>规定索引文件
sync_binlog=0----------------------------------------------------------------->数据先写到内存再写到文件
重启mysql服务:#service mysqld restart
2、截取/etc/passwd文件中的用户名,UID,GID,家目录到文件/tmp/mydata
cat /etc/passwd | awk -F: ‘{print $1,$3,$4,$6}’>/tmp/mydata
3、将文件/tmp/mydata导入数据库
#mysql -u root -h localhost -p --------------->回车进入数据库,默认没有密码
mysql>create database mybinlog;------------------------>创建数据库mybinlog
mysql>create table mybinlog.a (name char(10),uid int,gid int,homedir char(10));------------>创建表
mysql>load data infile '/tmp/mydata' into table mybinlog.a;---------------------------->向表内加载数据
4、添加计划任务,周日全备份,周一到周六增量备份,每天通过flush执行binlog
#crontab -e
* 0 * * 7 /usr/bin/mysqldump mybinlog > /tmp/binlog.bak
* 0 * * 1-6/1 /usr/bin/mysql -e 'flush logs'
5、恢复周三之前备份,根据查看at进行时间点恢复
  1)删除所有数据
2)然后恢复第一周的数据,再恢复周一的数据,一次恢复到周三的数据
mysqlbinlog <binlog文件位置>
mysqlbinglog --start-position <开始的at号> --stop-position <结束的at号> <binlog文件位置>
如何用shell脚本实现呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: