总结:MySQL备份与恢复的三种方法
作者:网络转载 发布时间:[ 2012/12/7 10:03:04 ] 推荐标签:
1、利用mysqldump实现从逻辑角度完全备份mysql,配合二进制日志备份实现增量备份
2、利用lvs快照从物理角度实现几乎热备的完全备份,配合二进制日志备份实现增量备份
3、利用percona公司的xrabackup实现完全热备份与增量热备份
实验环境:RHEL5.8,SElinux关闭,MySQL是tar包初始化安装版本5.5.28
一、测试环境准备
1.1 mysql的安装不说了,见http://laoguang.blog.51cto.com/6013350/1039208
1.2 编缉/etc/my.cnf把二进制日志存放目录改到其它非数据目录,innodb每表一文件
建立一目录用于存放二进制日志
1.mkdir /mybinlog
2.chown mysql:mysql /mybinlog
修改my.cnf
1.vim /etc/my.cnf
2.log-bin=/mybinlog/mysql-bin ##二进制日志目录及文件名前缀
3.innodb_file_per_table = 1 ##启用InnoDB表每表一文件,默认所有库使用一个表空间
启动mysqld
service mysqld start
1.3 创建一个测试库与测试表
1.mysql> create database laoguang;
2.mysql> use laoguang;
3.mysql> create table linux (id tinyint auto_increment primary key,name char(10));
4.mysql> insert into linux (name) values ('apache'),('nginx'),('php');
1.4 创建用于存放备份的目录
1.mkdir /myback
2.chown -R mysql:mysql /myback
二、用mysqldump实现备份
2.1 mysqldump用来温备,所以我们得为所有库加读锁,并且滚动一下二进制日志,并记录当前二进制文件位置
1.mysqldump --all-databases --lock-all-tables --routines --triggers --master-data=2
2.--flush-logs > /myback/2012-12-3.19-23.full.sql
3.
4.--all-databases 备份所有库
5.--lock-all-tables 为所有表加读锁
6.--routines 存储过程与函数
7.--triggers 触发器
8.--master-data=2 在备份文件中记录当前二进制日志的位置,并且为注释的,1是不注释掉在主从复制中才有意义
9.--flush-logs 日志滚动一次
查看有没有备份成功,有没有启用新二进制的日志,查看备份的文件中有没有记录完整备份后二进制的位置
备份二进制日志
cp /mybinlog/mysql-bin.000001 /myback/2012-12-3.19-23.full.00001
2.2 模拟数据库意外损坏,测试完整恢复
1.rm -rf /data/mydata/*
2.rm -rf
3./mybinlog/*
初始化mysql并启动mysql
1.cd /usr/local/mysql
2../scripts/mysql_install_db --user=mysql --datadir=/data/mydata
3.rm -rf /mybinlog/* ##因为我们不是全新初始化的,可能会有报错的二进制日志,我们不需要
4.service mysqld start ##启动时会重新生成新的二进制日志的
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11