MySQL备份
来源:互联网 发布:淘宝详情页怎么做 编辑:程序博客网 时间:2024/04/27 21:19
1. 准备工作
1) 创建用户并授权
grant all on *.* to 'xtrabackup'@'localhost' identified by '123456'2) 下载XtraBackup
wget http://www.percona.com/downloads/XtraBackup/XtraBackup-2.1.9/binary/Linux/x86_64/percona-xtrabackup-2.1.9-744-Linux-x86_64.tar.gz
3) 解压缩XtraBackup
tar –xvf percona-xtrabackup-2.1.9-744-Linux-x86_64.tar.gz mv percona-xtrabackup-2.1.9-744-Linux-x86_64 /usr/local/xtrabackupchown –R mysql.mysql /usr/local/xtrabackupcd /usr/binln -s /usr/local/xtrabackup/bin/innobackupexln -s /usr/local/xtrabackup/bin/xtrabackup_55ln -s /usr/local/xtrabackup/bin/xtrabackup_56ln -s /usr/local/xtrabackup/bin/xtrabackup4)设置/etc/my.cnf
datadir=/usr/local/mysql/data/
5)安装依赖软件
yum -y install perl-Time-HiRes yum -y install perl-DBD-MySQL
2. 物理备份脚本innobackup.sh
用today=`date +u` 整除7 判断是星期几,如果为0,周日全备,其它增量备份。如果是周一,已全备为基础增量备份,如果是其它,则以上一个增量备份为基础增量备份。同一个日期只保留一个备份,用crontab可实现自动备份。
#!/bin/shall_dir=/mysqlbackup/allinc_dir=/mysqlbackup/incUSER=xtrabackupPASSWORD=123456today=`date +u`today2=`date +%Y-%m-%d`today3=`date +%Y%m%d`yesterday=`expr $today3 - 1`if [ $(($today%7)) -eq 0 ]; then rm -rf $all_dir/$today3 2>> $all_dir/all.log innobackupex --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock --user=$USER --password=$PASSWORD $all_dir 2>> $all_dir/all.log mv $all_dir/$today2* $all_dir/$today3elif [ $(($today%7)) -eq 1 ]; then rm -rf $inc_dir/$today3 2>> $inc_dir/increment.log innobackupex --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock --user=$USER --password=$PASSWORD --incremental $inc_dir --incremental-basedir=$all_dir/$yesterday 2>> $inc_dir/increment.log mv $inc_dir/$today2* $inc_dir/$today3else rm -rf $inc_dir/$today3 2>> $inc_dir/increment.log innobackupex --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock --user=$USER --password=$PASSWORD --incremental $inc_dir --incremental-basedir=$inc_dir/$yesterday 2>> $inc_dir/increment.log mv $inc_dir/$today2* $inc_dir/$today3 fi3. 逻辑备份脚本dumpbackup.sh
用mysqldump实现,删除前15天的备份。
#!/bin/shUSER=xtrabackupPASSWORD=123456dump_dir=/mysqlbackup/dumptoday=`date +%Y%m%d`old_day=`expr $today - 15` for db in `mysql -u$USER -p$PASSWORD -N -e "show databases"|grep -v -E "(percona|information_schema|performance_schema)"`do chattr -i $dump_dir/* #rm -f $dump_dir/*$old_day.sql* &>/dev/null filename=${db}_${today} mysqldump -u$USER -p$PASSWORD --events --routines $db |gzip > $dump_dir/${filename}.sql.gz chattr +i $dump_dir/* done
0 0
- php备份备份mysql
- MySQL备份
- MySql备份
- mysql备份
- mysql 备份
- mysql备份
- mysql备份
- MySql备份
- mysql备份
- mysql备份
- mysql 备份
- MySQL 备份
- Mysql备份
- mysql备份
- mysql 备份
- mysql 备份
- mysql备份
- mysql 备份
- LitJSON创建解析
- Git 实战教程(2)
- 4.eclipse的基本使用
- linux系统samba服务器配置(完整)
- java中的this关键字
- MySQL备份
- Git 实战教程(3)
- 内核调试神器SystemTap — 简介与使用(一)
- 分本挖掘之基本概念
- 电脑蓝屏代码大全
- applicationContext.xml报Error occured processing XML 'Prohibited package name: java.lang'.
- servlet中如何获取PageContext对象
- 转: mmap文件映射内存分析
- gitflow 开发流程