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命令可以实现二进制日志滚动

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

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

示例:
[[email protected]estserver ~]# mysqldump -uroot --databases hellodb --lock-tables --master-data=2 > /root/hellodbbak.sql
[[email protected] ~]# 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
[[email protected] ~]# mysql < hellodbbak.sql
查看恢复的状况:发现没有完全恢复:晁盖没进来,谢烟客还在
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)
继续使用二进制文件恢复:根据上面列出来的二进制日志文件和当前记录位置
[[email protected] ~]# mysqlbinlog --start-position=7655 /mydata/data/mysql-bin.000011 > incre.sql
看一下这个二进制日志文件:
[[email protected] ~]# 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 @[email protected]@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 [email protected]_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
拷贝到那台好的服务器进行还原:
[[email protected] ~]# scp incre.sql [email protected]:/root/
[email protected]‘s password: 
incre.sql                                                100% 2373     2.3KB/s   00:00
[[email protected] ~]# mysql < incre.sql
查看:发现谢烟客没了,晁盖来了,数据被完整恢复了!
+-------+---------------+-----+--------+---------+-----------+
| 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)
时间: 2024-10-28 10:24:10

mariadb备份与恢复工具的相关文章

本地活动目录备份与恢复工具5大缺点

在许多组织中,微软活动目录(AD)是一款重要的网络服务工具:如果没有它,这些组织的整个网络就会戛然而止.正因为如此,AD管理员需要在防御AD受到各种威胁时做好充足准备.微软提供本地解决方案以防域控制器崩溃时迅速恢复.然而,当在AD环境下恢复操作时,有很多注意事项.本篇博客将分析本地工具的常见缺点,告诉您使用中您可能会遇到的问题. 1.?不支持细粒度恢复微软本地备份与恢复不支持个体对象恢复或者特定对象恢复.这仅可以从裸机备份中恢复全部活动目录(AD).如果仅是一小部分用户和OUs删除,恢复整个域控

MySQL数据库自带备份与恢复工具:MySQLdump.exe与mysql.exe

数据库的备份工作是保护数据库正常运行的关键,以下的文章主要讲述的是MySQL数据库备份的一些小妙招,我们大家都知道使用MySQL dump备份数据库的用户所需要的权限相对而言还是比较小的,只需要select与lock table的权限就足够了. 所以可以创建一个备份数据库的用户,专门用于备份数据库,这样可以避免数据库受到意外的破坏. MySQLdump是备份MySQL数据库的一种好工具.它相对于用phpmyadmin等备份工具更加快速,又避免受php.ini等的限制,在windows系统下还可以

MySQL在线备份与恢复工具 --&gt; Xtrabackup

1 Xtrabackup原理简介 xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品.      xtrabackup有两个主要的工具:xtrabackup.innobackupex    (1)xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表 (2)innobackupex是参考了InnoDB Hotbackup的innoback脚本修改

MySQL数据库自带备份与恢复工具:MySQLdump.exe与mysql.exe

数据库的备份工作是保护数据库正常运行的关键,以下的文章主要讲述的是MySQL数据库备份的一些小妙招,我们大家都知道使用MySQL dump备份数据库的用户所需要的权限相对而言还是比较小的,只需要select与lock table的权限就足够了. 所以可以创建一个备份数据库的用户,专门用于备份数据库,这样可以避免数据库受到意外的破坏. MySQLdump是备份MySQL数据库的一种好工具.它相对于用phpmyadmin等备份工具更加快速,又避免受php.ini等的限制,在windows系统下还可以

第18章 使用MariaDB数据库管理系统

章节概述: MYSQL数据库管理系统被Oracle公司收购后从开源换向到了封闭,导致包括红帽在内的许多Linux发行版选择了MariaDB. 本章节将教会您使用mariaDB数据库管理工具来管理数据库,学习对数据表单的新建.搜索.更新.插入.删除等常用操作. 并且熟练掌握对数据库内用户的创建与授权,数据库的备份与恢复方法,不仅满足了RHCE考题要求,还能帮助您的运维工作. 本章目录结构 18.1 数据库管理系统 18.2 初始化mariaDB服务程序 18.3 管理数据库与表单数据 18.3.1

PPAS数据库备份与恢复

PPAS数据库备份不同于普通的Postgresql数据库的备份,因为PPAS数据库是兼容Oracle数据库的,所以会涉及到同义词.包.存储过程等,这个时候用Postgresql社区的备份与恢复工具时,在恢复时上述提及到的同义词等就不会恢复过去.而且,PPAS数据库因为支持Clob字符大对象类型等,而Postgresql数据库不支持,在恢复的过程也会因为这个原因而导致某些存储过程或者表创建失败.所以,这边如果在本地恢复的话,一定要安装PPAS数据库服务器(ppasmeta),用PPAS数据库自带的

Linux安装配置MariaDB数据库全程详解

MariaDB在很多方面强于MySQL,在Linux下如何安装MariaDB数据库成为大家比较头疼的一个问题,下面用实例为大家讲解下 MariaDB是采用Maria存储引擎的MySQL分支版本,在很多方面强于MySQL,那么在Linux下如何安装MariaDB数据库呢?下面小编就给大家介绍下Linux安装配置MariaDB数据库的方法. 说明: 操作系统:CentOS 5.10 32位 MariaDB版本:mariadb-5.5.33a MariaDB数据库存放目录:/data/mysql 准备

[资源分享]不吹牛 全网!最全!!最新!!!最优质!!!!

好久没有分享资源干货了,近期多途径收集了很多优质的学习资源,包括Java.Python.Linux.前端.人工智能等优质学习资源,来回馈所有的读者朋友.保证全网最优质!!! 资源领取方式 关注公众号「苦逼的码农」回复相应关键词即可. 长按二维码即可关注. Java篇 1 2018传智黑马JAVA 关键词:传智 2 秒杀系统企业级实战应用(真实工业界案例) 关键词:秒杀 部分截图 Python篇 1 2018年传智播客黑马python15期 关键词:黑马 2 Python Web开发企业直通班 关

如何学习VMware虚拟化技术

如何学习VMware虚拟化技术 虚拟化与云计算,是一项综合的技术,需要掌握网络.存储.服务器等方面的知识,有一定的动手实践能力. 1 需要有VMware Workstation与网络基础 如果你只是一个初学者,能给自己的笔记本.台式机安装操作系统,安装Office.QQ等常用软件,那么,你可以先从VMware Workstation学起,你只要有一台配置了最低4GB内存的Windows 7操作系统的计算机,有一定的网络搜索能力(从网上下载常用操作系统的镜像.VMware Workstation软