多种方法备份Mysql数据库

  



一、备份工具

这里介绍几种常用的备份方式

<强> InnoDB

二、cp备份与恢复

先查看数据,我们用测试库里的学生表实验

mysql>, select  *,得到test.student;   + - - - - - - - - - - - - +   |,id ,, |, name  |   + - - - - - - - - - - - - +   |,,,,1,|,a ,, |   + - - - - - - - - - - - - +   1,row  set 拷贝;(0.00,sec)

拷贝mysql数据到指定目录

mkdir /备份   cp  -a /var/lib/mysql/*,,/备份

模拟丢失数据,删除mysql数据

rm  -rf /var/lib/mysql/*

重启数据库,发现数据丢失(这里是百胜安装能直接重启数据库,如果是编译安装还需要初始化)

service  mysqld 重启      mysql>, select  *,得到test.student;   ERROR  1146, (42 s02):, Table “test.student”,并't 存在   mysql>

把备份的数据还原到数据目录

cp  -a /备份/*,,/var/lib/mysql/

登录数据库,发现数据已经还原回来了

mysql>, select  *,得到test.student;   + - - - - - - - - - - - - +   |,id ,, |, name  |   + - - - - - - - - - - - - +   |,,,,1,|,a ,, |   + - - - - - - - - - - - - +   1,row  set 拷贝;(0.00,sec)      mysql>

三,,mysqldump备份与恢复

先查看数据,我们用测试库里的学生表实验

mysql>, select  *,得到test.student;   + - - - - - - - - - - - - +   |,id ,, |, name  |   + - - - - - - - - - - - - +   |,,,,1,|,a ,, |   |,,,,2,|,b ,, |   + - - - - - - - - - - - - +   2,rows  set 拷贝;(0.00,sec)

修,改my . cnf中所做添加log_bin,重启数据库

vim 。/etc/my . cnf中所做   (mysqld)   log_bin=mysql-bin      service , mysqld ,重启

利用,Mysqldump备份数据,及参数说明

mysqldump , -uroot ,, -A ,——events ,,主数据=https://www.yisu.com/zixun/2——单一事务>/opt/all.sql   ——全备,恢复时不需要创建库   ——事件备份时间调度器   ——主数据记录时刻点   ——单独的事务锁表备份

插入新的数据

mysql>, use ,测试;   mysql>, insert  into  student 价值(3 ' c ');   Query 好吧,,1,row  affected (0.00,秒)      mysql>, select  *,得到学生;   + - - - - - - - - - - - - +   |,id ,, |, name  |   + - - - - - - - - - - - - +   |,,,,1,|,a ,, |   |,,,,2,|,b ,, |   |,,,,3,|,c ,, |   + - - - - - - - - - - - - +   3,rows  set 拷贝;(0.00,sec)

模拟数据丢失,误操作

mysql>, drop  database 测试;   Query 好吧,,1,row  affected (0.01,秒)      mysql>, show 数据库;   +--------------------+   |,Database ,,,,,,,,, |   +--------------------+   | |,information_schema    |,mysql ,,,,,,,,,,,, |   +--------------------+   2,rows  set 拷贝;(0.00,sec)

开始恢复,利用,mysqldump的全备加上增量备份

1,关闭日志记录

set , global , sql_log_bin=0;

2,恢复全备,检查数据情况

mysql  -uroot  & lt;/opt/all.sql   mysql>, select  *,得到test.student;   + - - - - - - - - - - - - +   |,id ,, |, name  |   + - - - - - - - - - - - - +   |,,,,1,|,a ,, |   |,,,,2,|,b ,, |   + - - - - - - - - - - - - +   2,rows  set 拷贝;(0.00,sec)

3,利用时刻点恢复增量恢复,查看/opt/ql的开始时刻点,在文件里有类似如下字符串

——,CHANGE  MASTER 用MASTER_LOG_FILE=癿ysql-bin.000018”, MASTER_LOG_POS=705

在看误操作的时刻点

mysqlbinlog ,/var/lib/mysql/mysql-bin.000018    # at  869   # 161102,18:36:09  server  id  1,, end_log_pos  896年,Xid =4088   提交/* ! */;   # at  896   # 161102,18:36:25  server  id  1,, end_log_pos  977年,查询thread_id=41 exec_time=0 error_code=0   SET 时间戳=1478082985/* ! */;   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

多种方法备份Mysql数据库