mysql备份与恢复
导出所有数据库
mysqldump -q --single-transaction -A >all.sql
导出某几个数据库
mysqldump -q --single-transaction -B db1 db2 >a.sql
导出某几张表
mysqldump -q --single-transaction -B db1.a db2.c >a.sql
导出表结构
mysqldump -q -d --skip-triggers
导出存储过程
mysqldum -q -Rtdn --skip-triggers
导出触发器
mysqldump -q -tdn --skip-triggers
导出事件
mysqldump -q -Etdn --skip-triggers
导出数据
mysqldump -q --single-transaction --skip-triggers -t
建立新slave
mysqldump -q --single-transaction --master-data=2 -A>all.sql
恢复
mysql -uroot -p1222 <all.sql
mydumper 性能比mysqldump 性能快10倍
安装
image.png
mydumper -uroot -pxxx -B db1 db2 -o a.sql
myloader -uroot -pxx
全量备份脚本:
!/bin/bash
mkdir /backup
cd /backup
datadir=date +"%Y-%m-%d"
mkdir -p i|gzip>/backup/i_binlog_rm"
凌晨1点
增量备份
!/bin/bash
cd /backup
datadir=date +"%Y-%m-%d"
mkdir -p path/mysql-bin.index|sed 's/.///'for i in $binlog_cp do mysql -uroot -p123456 -e "\cp -p $path/$i /backup/$datadir/data/;" done binlog_rm=
tail -n 1 binlog_rm'"
热备份工具:xtrabackup
安装
全量 备份所有
innobackupex --user=root --password=123456 --defaults-file=/etc/my.cnf /bak/
备份数据库
innobackupex --user=root --password=123456 --defaults-file=/etc/my.cnf --databases=/bak/
恢复
1、mysqld stop
2、删除数据文件和事务日志文件
3、innobackupex --defaults-file=/etc/my.cnf --apply-log /bak/2013xxxxx
4、innobackupex --defaults-file=/etc/my.cnf --copy-back /bak/2013xxxx
5、chown -R mysql.mysql /usr/local/mysql/data
6、mysqld start