mariadb 还原mysql_mariadb备份与恢复工具

1.mysqldump:shell> mysqldump [options] db_name [tbl_name ...]  #可以备份单个数据库的单个表,不会自动创建数据库,恢复时需要先创建数据库

shell> mysqldump [options] --databases db_name ...

shell> mysqldump [options] --all-databases

例如:

mysqldump -uroot --databases hellodb > /root/hellodbbak.sql #仅备份一个数据库

mysqldump -uroot --databases hellodb mysql > /root/dbbak.sql #同时备份多个库

对于MyIsam引擎的数据库:

MyISAM:支持温备;锁定备份库,而后启动备份操作;

锁定方法:

--lock-all-tables:锁定所有库的所有表;

--lock-tables:对于每个单独的数据库,在启动备份之前锁定其所有表

上面两个参数对InnoDB表一样生效,实现温备;

InnoDB:支持热备;

--single-transaction 备份数据前启动一个事务,达到数据一致效果

其它选项:

-E, --events:备份指定数据库相关的所有event scheduler;

-R, --routines:备份指定数据库相关的所有存储过程和存储函数;

--triggers:备份表相关的触发器;

--master-data[=#]:

1:记录为CHANGE MASTER TO语句,此语句不被注释;

2:记录为注释的CHANGE MASTER TO语句;

CHANGE MASTER TO记录了启动备份前时间处于哪个二进制文件的哪个位置

--flush-logs:锁定表完成后,执行flush logs命令可以实现二进制日志滚动

注意:二进制日志文件不应该与数据文件放在同一磁盘;二进制日志文件记录了全库信息,不能执行单独库还原,除非编辑它只针对一个库作用后再还原。

应该经常对二进制文件做增量备份,例如每过半填,让二进制日志自动滚动一次,把之前的备份起来。示例:

[root@testserver ~]# mysqldump -uroot --databases hellodb --lock-tables --master-data=2 > /root/hellodbbak.sql

[root@testserver ~]# less hellodbbak.sql | grep CHANGE

-- CHANGE MASTER TO MASTER_LOG_FILE=‘mysql-bin.000011‘, MASTER_LOG_POS=7655;#这样就得到了当前使用的二进制日志文件名和当前记录位置

修改当前库里的某些数据:

MariaDB [hellodb]> INSERT INTO students (Name,Age,Gender,ClassID,TeacherID) VALUES (‘Chao Gai‘,47,‘M‘,3,7);

Query OK, 1 row affected (0.00 sec)

DELETE FROM students WHERE StuID=3;

Query OK, 1 row affected (0.00 sec)

此时mysql服务器挂了,我们把数据还原到另一个服务器上,执行恢复操作:

还原前要注意先要关掉Bin_log  set bin_log=0,等还原完了再开启bin_log

[root@node1 ~]# mysql 

查看恢复的状况:发现没有完全恢复:晁盖没进来,谢烟客还在

MariaDB [hellodb]> SELECT * FROM students;

+-------+---------------+-----+--------+---------+-----------+

| StuID | Name          | Age | Gender | ClassID | TeacherID |

+-------+---------------+-----+--------+---------+-----------+

|     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |

|     2 | Shi Potian    |  22 | M      |       1 |         7 |

|     3 | Xie Yanke     |  53 | M      |       2 |        16 |

|     4 | Ding Dian     |  32 | M      |       4 |         4 |

|     5 | Yu Yutong     |  26 | M      |       3 |         1 |

|     6 | Shi Qing      |  46 | M      |       5 |      NULL |

|     7 | Xi Ren        |  19 | F      |       3 |      NULL |

|     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |

|     9 | Ren Yingying  |  20 | F      |       6 |      NULL |

|    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |

|    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |

|    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |

|    13 | Tian Boguang  |  33 | M      |       2 |      NULL |

|    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |

|    15 | Duan Yu       |  19 | M      |       4 |      NULL |

|    16 | Xu Zhu        |  21 | M      |       1 |      NULL |

|    17 | Lin Chong     |  25 | M      |       4 |      NULL |

|    18 | Hua Rong      |  23 | M      |       7 |      NULL |

|    19 | Xue Baochai   |  18 | F      |       6 |      NULL |

|    20 | Diao Chan     |  19 | F      |       7 |      NULL |

|    21 | Huang Yueying |  22 | F      |       6 |      NULL |

|    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |

|    23 | Ma Chao       |  23 | M      |       4 |      NULL |

|    24 | Xu Xian       |  27 | M      |    NULL |      NULL |

|    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |

+-------+---------------+-----+--------+---------+-----------+

25 rows in set (0.00 sec)

继续使用二进制文件恢复:根据上面列出来的二进制日志文件和当前记录位置

[root@testserver ~]# mysqlbinlog --start-position=7655 /mydata/data/mysql-bin.000011 > incre.sql

看一下这个二进制日志文件:

[root@testserver ~]# mysqlbinlog  --start-position 7655 /mydata/data/mysql-bin.000011

/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;

/*!40019 SET @@session.max_insert_delayed_threads=0*/;

/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;

DELIMITER /*!*/;

# at 4

#151110 21:35:57 server id 1  end_log_pos 245     Start: binlog v 4, server v 5.5.44-MariaDB-log created 151110 21:35:57 at startup

# Warning: this binlog is either in use or was not closed properly.

ROLLBACK/*!*/;

BINLOG ‘

vfJBVg8BAAAA8QAAAPUAAAABAAQANS41LjQ0LU1hcmlhREItbG9nAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAC98kFWEzgNAAgAEgAEBAQEEgAA2QAEGggAAAAICAgCAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAA8nm5Lg==

‘/*!*/;

# at 7655

#151110 23:14:20 server id 1  end_log_pos 7726     Query    thread_id=10    exec_time=0    error_code=0

SET TIMESTAMP=1447168460/*!*/;

SET @@session.pseudo_thread_id=10/*!*/;

SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;

SET @@session.sql_mode=0/*!*/;

SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;

/*!\C utf8 *//*!*/;

SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;

SET @@session.lc_time_names=0/*!*/;

SET @@session.collation_database=DEFAULT/*!*/;

BEGIN

/*!*/;

# at 7726

#151110 23:14:20 server id 1  end_log_pos 7754     Intvar

SET INSERT_ID=26/*!*/;

# at 7754

#151110 23:14:20 server id 1  end_log_pos 7907     Query    thread_id=10    exec_time=0    error_code=0

use `hellodb`/*!*/;

SET TIMESTAMP=1447168460/*!*/;

INSERT INTO students (Name,Age,Gender,ClassID,TeacherID) VALUES (‘Chao Gai‘,47,‘M‘,3,7)

/*!*/;

# at 7907

#151110 23:14:20 server id 1  end_log_pos 7934     Xid = 780

COMMIT/*!*/;

# at 7934

#151110 23:16:55 server id 1  end_log_pos 8005     Query    thread_id=10    exec_time=0    error_code=0

SET TIMESTAMP=1447168615/*!*/;

BEGIN

/*!*/;

# at 8005

#151110 23:16:55 server id 1  end_log_pos 8105     Query    thread_id=10    exec_time=0    error_code=0

SET TIMESTAMP=1447168615/*!*/;

DELETE FROM students WHERE StuID=3

/*!*/;

# at 8105

#151110 23:16:55 server id 1  end_log_pos 8132     Xid = 781

COMMIT/*!*/;

DELIMITER ;

# End of log file

ROLLBACK /* added by mysqlbinlog */;

/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

拷贝到那台好的服务器进行还原:

[root@testserver ~]# scp incre.sql root@192.168.3.131:/root/

root@192.168.3.131‘s password:

incre.sql                                                100% 2373     2.3KB/s   00:00

[root@node1 ~]# mysql 

查看:发现谢烟客没了,晁盖来了,数据被完整恢复了!

+-------+---------------+-----+--------+---------+-----------+

| StuID | Name          | Age | Gender | ClassID | TeacherID |

+-------+---------------+-----+--------+---------+-----------+

|     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |

|     2 | Shi Potian    |  22 | M      |       1 |         7 |

|     4 | Ding Dian     |  32 | M      |       4 |         4 |

|     5 | Yu Yutong     |  26 | M      |       3 |         1 |

|     6 | Shi Qing      |  46 | M      |       5 |      NULL |

|     7 | Xi Ren        |  19 | F      |       3 |      NULL |

|     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |

|     9 | Ren Yingying  |  20 | F      |       6 |      NULL |

|    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |

|    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |

|    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |

|    13 | Tian Boguang  |  33 | M      |       2 |      NULL |

|    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |

|    15 | Duan Yu       |  19 | M      |       4 |      NULL |

|    16 | Xu Zhu        |  21 | M      |       1 |      NULL |

|    17 | Lin Chong     |  25 | M      |       4 |      NULL |

|    18 | Hua Rong      |  23 | M      |       7 |      NULL |

|    19 | Xue Baochai   |  18 | F      |       6 |      NULL |

|    20 | Diao Chan     |  19 | F      |       7 |      NULL |

|    21 | Huang Yueying |  22 | F      |       6 |      NULL |

|    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |

|    23 | Ma Chao       |  23 | M      |       4 |      NULL |

|    24 | Xu Xian       |  27 | M      |    NULL |      NULL |

|    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |

|    26 | Chao Gai      |  47 | M      |       3 |         7 |

+-------+---------------+-----+--------+---------+-----------+

25 rows in set (0.00 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值