1. 常见备份分析mysql
2. mysqldump操做流程sql
彻底备份 # 温备 mysqldump --all-databases --lock-all-tables > /tmp/a.sql # 热备 mysqldump --all-databases --single-transaction > /tmp/a.sql 增量备份 # 完整备份少不了 mysqldump --all-databases --singel-transaction --fulsh-logs --master-data=2 > /tmp/a.sql # --master-data=2 (记录二进制还原点信息) 天天一下计划任务 备份上次记录的二进制日志 . 还原流程 对于彻底备份的 mysql < /tmp/a.sql . 对于增量的 mysql < /tmp/a.sql 还要导入增量信息 mysqlbinlog --start-position=pos --stop-position=pos /path/to/binfile | mysql 这里的start-position就是上一次 --master-data=2 在 /tmp/a.sql中记录的信息 . 备注 --events: 备份事件调度器代码 --routines: 备份存储过程和存储函数 --triggers:备份触发器
3. lvm快照数据库
彻底备份 FLUSH TABLES WITH READ LOCK; FLUSH LOGS; mysql -e 'show master status' > /path/to/somefile lvcreate -s -n /back/path/file 50M /dev/to/devname mount /back/path/file /tmp/backup tar cf /tmp/backup/* /tmp/back1404.tar.xz 增量备份 与mysqldump无异 . 还原流程 复制物理文件 + 二进制恢复(与mysqldump无异)
4. select .. infile多线程
部分备份 select * into outfile '/path/to/file' fields terminated by ',' optionally enclosed by '"' lines terminated by '\n' from db.table # 注意此处仅有数据,那么在部分恢复的时候须要表结构 部分恢复 load data infile '/path/to/file' into table db.table fields terminated by ',' optionally enclosed by '"' lines terminated by '\n'
常见5. innobackupexapp
彻底备份 innobackupex --user=backuser --password=backpass /tmp/backup 还原完整备份 # 整理备份(关键事务整理) innobackupex --apply-log /tmp/backup/2014-04-11_23-43-04 还原完整备份 # 注意数据目录须要为空 innobackupex --copy-back /tmp/backup/2014-04-11_23-43-04 . . 增量备份 innobackupex --user=backuser --password=backpass --incremental /tmp/backup --incremental-basedir=/tmp/backup/2014-04-11_23-43-04/ 还原增量备份 # 整理增量备份至彻底备份(事务回滚) innobackupex --user=backuser --password=backpass --apply-log --redo-only /tmp/backup/2014-04-11_23-43-04/ --incremental-dir=/tmp/backup/2014-04-11_23-49-04/ 还原增量备份 innobackupex --copy-back /tmp/backup/2014-04-11_23-43-04/ 注意: #若要还原部分数据仍是用二进制方式 . 备注: --compress 开启压缩 --compress-threads 压缩线程数 --databases=LIST 指定数据库备份 --decrypt=ENCRYPTION-ALGORITHM 指定备份加密 --export --incremental DIRECTORY 增量放置目录 --host 主机 --password 密码 --port 端口 --parallel=NUMBER-OF-THREADS 开启多线程备份 --redo-only 回滚 --incremental-dir DIRECTORY 还原增量放置目录 --incremental-basedir=DIRECTORY 基于完整备份作增量 --stream=STREAMNAME 流模式(远程传输) --defaults-file 多实例场景 . 流式压缩转移到其余主机 innobackupex --compress --stream=tar /tmp/backup/2014-04-11_23-43-04/ | ssh root@172.16.43.1 cat ">" /tmp/backup.tar