iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql数据库增量恢复多实例实战演示
  • 358
分享到

mysql数据库增量恢复多实例实战演示

2024-04-02 19:04:59 358人浏览 八月长安
摘要

Mysql主从复制原理要点       1、异步方式同步      &nbs

Mysql主从复制原理要点

       1、异步方式同步

         2、逻辑同步模式,多种模式,默认是通过sql语句执行

         3、主库通过记录binlog实现对从库的同步,binlog记录数据库的更新语句

         4、主库1个io线程,从库由1个IO线程和一个sql线程来完成的

         5、从库关键文件master.info,relay-log,relay-info功能

         6、如果从库还想级联从库,需要打开bin-log和log-slave-updates参数

 

mysql数据库增量恢复多实例实战演示

[root@opm02-test ~]# mysql -uroot -poldboy-S /data/3306/mysql.sock

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 8

Server version: 5.5.32-log Sourcedistribution

 

mysql> show variableslike '%character_set%';               ##查看mysql字符集

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

| Variable_name            | Value                                     |

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

| character_set_client     | utf8                                      |

| character_set_connection | utf8                                      |

| character_set_database   | latin1                                    |

| character_set_filesystem | binary                                    |

| character_set_results    | utf8                                      |

| character_set_server     | latin1                                    |

| character_set_system     | utf8                                      |

| character_sets_dir       | /application/mysql-5.5.32/share/charsets/|

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

8 rows in set (0.02 sec)

 

mysql> create database oldboy;                                                    ##创建一个oldboy库

Query OK, 1 row affected (0.01 sec)

 

mysql> use oldboy;

Database changed

mysql> create table test( id int(4) not null auto_increment, name char(20) notnull, primary key (id));                                                                                                 ##创建一个test表

Query OK, 0 rows affected (0.11 sec)

 

mysql> show create table test;                                                      ##查看建表语句    

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

| Table | Create Table                                                                                                                                        |

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

| test | CREATE TABLE `test` (

 `id` int(4) NOT NULL AUTO_INCREMENT,

 `name` char(20) NOT NULL,

 PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 |

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

1 row in set (0.01 sec)

 

mysql> insert into test(id,name)values(1,'oldboy');                 ##在test表中插入数据

Query OK, 1 row affected (0.02 sec)

 

mysql> select * from test;

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

| id | name   |

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

|  1| oldboy |

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

1 row in set (0.01 sec)

 

mysql> insert into test(id,name)values(2,'oldboy11');            ##在test表中插入数据oldboy11

Query OK, 1 row affected (0.01 sec)

 

mysql> insert into test(id,name)values(3,'oldboy12');            ##在test表中插入数据oldboy12,以此类推

Query OK, 1 row affected (0.00 sec)

 

mysql> select * from test;                                                       ##查看表中数据

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

| id | name     |

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

|  1| oldboy   |

|  2| oldboy11 |

|  3| oldboy12 |

|  4| oldboy13 |

|  5| oldboy14 |

|  6| oldboy15 |

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

6 rows in set (0.00 sec)

 

mysql> quit

Bye

[root@opm02-test ~]# date -s '2016-06-28'                          ##在凌晨12点做备份

2016年 06月 28日 星期二 00:00:00 CST

[root@opm02-test ~]# mysqldump -uroot -poldboy -S /data/3306/mysql.sock-F -B oldboy  >/opt/quanbei.sql          ##做一次全量备份

[root@opm02-test ~]# ll /opt/

总用量 524

-rw-r--r--. 1 root root   2087 6月  28 00:02 quanbei.sql

-rw-r--r--. 1 root root 528847 5月  26 01:40 rep.sql

[root@opm02-test ~]# mysql -uroot -poldboy-S /data/3306/mysql.sock

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 10

Server version: 5.5.32-log Sourcedistribution

 

mysql> use oldboy

Database changed

mysql> desc test;

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

| Field | Type     | Null | Key | Default | Extra          |

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

| id   | int(4)   | NO   | PRI | NULL    | auto_increment |

| name | char(20) | NO   |     | NULL   |                |

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

2 rows in set (0.01 sec)

 

mysql> insert into test(name)values('oldboy101');                           ##插入2条语句用来做增量

Query OK, 1 row affected (0.02 sec)

 

mysql> insert into test(name)values('oldboy102');                           ##插入语句用来做增量

Query OK, 1 row affected (0.00 sec)

 

mysql> select * from test;

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

| id | name      |

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

|  1| oldboy    |

|  2| oldboy11  |

|  3| oldboy12  |

|  4| oldboy13  |

|  5| oldboy14  |

|  6| oldboy15  |

|  7| oldboy101 |

|  8| oldboy102 |

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

8 rows in set (0.00 sec)

 

mysql> show databases;                                                                           ##删除之前查看oldboy库

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

| Database           |

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

| infORMation_schema |

| mysql              |

| oldboy             |

| performance_schema |

| test               |

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

5 rows in set (0.00 sec)

 

mysql> drop database oldboy;                                                                 ##删除oldboy库             

Query OK, 1 row affected (0.03 sec)

 

mysql> show databases;                                                                           #删除之后查看oldboy库,没有了

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

| Database           |

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

| information_schema |

| mysql              |

| performance_schema |

| test               |

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

4 rows in set (0.00 sec)

 

mysql> quit;

Bye

[root@opm02-test ~]# ll /opt/                                                              ##查看备份数据目录

总用量 524

-rw-r--r--. 1 root root   2087 6月  28 00:02 quanbei.sql

-rw-r--r--. 1 root root 528847 5月  26 01:40 rep.sql

[root@opm02-test ~]# cd /data/3306/                                                 ##查看数据库的binlog日志

[root@opm02-test 3306]# ll

总用量 32

drwxr-xr-x. 5 mysql mysql 4096 6月  28 00:07 data

-rw-r--r--. 1 mysql mysql 1899 5月  26 00:35 my.cnf

-rwxr-xr-x. 1 mysql mysql 1307 5月  26 00:41 mysql

-rw-rw----. 1 mysql mysql 2290 6月  28 00:02 mysql-bin.000001

-rw-rw----. 1 mysql mysql  656 6月  28 00:07 mysql-bin.000002           ##binlog位置点

-rw-rw----. 1 mysql mysql   56 6月  28 00:02 mysql-bin.index

-rw-rw----. 1 mysql mysql    6 5月  26 00:57 mysqld.pid

-rw-r-----. 1 mysql root  2669 5月  26 01:39 mysql_oldboy3306.err

srwxrwxrwx. 1 mysql mysql    0 5月  26 00:57 mysql.sock

 

[root@opm02-test 3306]# mysqladmin -uroot -poldboy -S/data/3306/mysql.sock flush-logs                ##不确定binlog位置点的情况下,用mysqladmin刷新binlog日志,新生成binlog之前就是恢复binlog位置点,也根据时间点确定是不是凌晨12操作的

[root@opm02-test 3306]# ll

总用量 36

drwxr-xr-x. 5 mysql mysql 4096 6月  28 00:07 data

-rw-r--r--. 1 mysql mysql 1899 5月  26 00:35 my.cnf

-rwxr-xr-x. 1 mysql mysql 1307 5月  26 00:41 mysql

-rw-rw----. 1 mysql mysql 2290 6月  28 00:02 mysql-bin.000001

-rw-rw----. 1 mysql mysql  699 6月  28 00:17 mysql-bin.000002

-rw-rw----. 1 mysql mysql  107 6月  28 00:17 mysql-bin.000003                 ##新生成的binlog日志

-rw-rw----. 1 mysql mysql   84 6月  28 00:17 mysql-bin.index

-rw-rw----. 1 mysql mysql    6 5月  26 00:57 mysqld.pid

-rw-r-----. 1 mysql root  2669 5月  26 01:39 mysql_oldboy3306.err

srwxrwxrwx. 1 mysql mysql    0 5月  26 00:57 mysql.sock

[root@opm02-test 3306]# cp mysql-bin.000002/opt/

[root@opm02-test 3306]# ll /opt/

总用量 528

-rw-r-----. 1 root root    699 6月  28 00:18 mysql-bin.000002

-rw-r--r--. 1 root root   2087 6月  28 00:02 quanbei.sql

-rw-r--r--. 1 root root 528847 5月  26 01:40 rep.sql

[root@opm02-test 3306]# mysqlbinlog  -d oldboy /opt/mysql-bin.000002##查看binlog日志内容

;

;

;

DELIMITER ;

 

[root@opm02-test3306]# cd /opt/

[root@opm02-testopt]# mysqlbinlog  -d oldboy mysql-bin.000002>bin.sql                ##将binlog放到bin.sql下

[root@opm02-testopt]# vi bin.sql                                                                                   ##vi编辑进去删除drop数据的那条语句,保存退出

 

[root@opm02-test opt]# mysql -uroot-poldboy -S /data/3306/mysql.sock

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 13

Server version: 5.5.32-log Sourcedistribution

 

mysql> show variables like 'log_bin';

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

| Variable_name | Value |

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

| log_bin       | ON    |

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

1 row in set (0.00 sec)

 

mysql> quit

Bye

[root@opm02-test opt]# mysql -uroot-poldboy -S /data/3306/mysql.sock <quanbei.sql                   ##主库恢复全备

[root@opm02-test opt]# mysql -uroot-poldboy -S /data/3306/mysql.sock oldboy <bin.sql                   ##再恢复binlog

[root@opm02-test opt]# mysql -uroot -poldboy-S /data/3306/mysql.sock

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 17

Server version: 5.5.32-log Sourcedistribution

 

mysql> select * from oldboy test;                                        ##进入数据库查看,此时数据已恢复

ERROR 1046 (3D000): No database selected

mysql> select * from oldboy.test;

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

| id | name      |

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

|  1| oldboy    |

|  2| oldboy11  |

|  3| oldboy12  |

|  4| oldboy13  |

|  5| oldboy14  |

|  6| oldboy15  |

|  7| oldboy101 |

|  8| oldboy102 |

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

8 rows in set (0.00 sec)

 

mysql>

 

增量恢复小结:

         1、人为sql造成的误操作

         2、要有全备和增量

         3、恢复时建议对外停止更新

         4、恢复全量,然后把增量日志中有问题的sql语句删除,恢复到数据库

        

总结数据库增量恢复:

         1、停止一个从库,主库刷新binlog,把mysql-bin-000002恢复成bin.sql       (vi bin.sql)

         去掉删除的语句,/drop搜索删除的语句,在vi里干掉

         2、把全备quanbei.sql及10点前的增量bin.sql恢复到从库

         3、数据丢多少? 10:10分刷新binlog以后的数据mysql-bin.000003

         4、停止主库,快速把mysql-bin.000003解析为sql,恢复到从库。

         5、切换到从库提供服务

 

增量恢复的核心思想:

         1、流程制度控制,防止问题发生,如果不做,面临服务和数据丢失问题

         2、通过延迟备份来解决,或者监控、黑名单、白名单机制

         3、业务需求容忍度,选择停库或表或容忍丢失部分数据


您可能感兴趣的文档:

--结束END--

本文标题: mysql数据库增量恢复多实例实战演示

本文链接: https://www.lsjlt.com/news/38923.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL数据库怎么增量恢复数据
    本篇内容介绍了“MySQL数据库怎么增量恢复数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、场景概述...
    99+
    2024-04-02
  • MySQL增量备份与恢复的示例
    小编给大家分享一下MySQL增量备份与恢复的示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!文章目录一、MySQL 增量备份1...
    99+
    2024-04-02
  • Mysql数据库按时间点恢复实战记录
    简介:Mysql数据库按时间点恢复实战 对于任何一家企业来讲,数据都是最宝贵的财富。 如何保护数据完整性,数据不受损坏,在发生故障时,如何保住数据,在发生误操作,黑客入侵,数据篡改...
    99+
    2024-04-02
  • mysql数据库增量数据恢复的方法是什么
    本篇内容介绍了“mysql数据库增量数据恢复的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、工作场景(1)MySQL数据库每晚...
    99+
    2023-06-02
  • Android数据库增删改查实战案例
    目录一、案例演示二、实现步骤1、activity_main.xml2、MainActivity.java3、UserDao.java4、User.java5、SQLiteOpenHe...
    99+
    2023-05-16
    android数据库增删改查实例 android数据库增删改查代码 android中数据库的增删改查
  • mysql怎么增量备份和恢复数据
    这篇文章主要介绍“mysql怎么增量备份和恢复数据”,在日常操作中,相信很多人在mysql怎么增量备份和恢复数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql怎么增...
    99+
    2024-04-02
  • Mysql数据库多实例配置的示例分析
    小编给大家分享一下Mysql数据库多实例配置的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!二进制安装: [root@lufengcentos ~]# mkdi...
    99+
    2024-04-02
  • MySQL怎么全量、增量备份与恢复数据
    这篇文章主要讲解了“MySQL怎么全量、增量备份与恢复数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL怎么全量、增量备份与恢复数据”吧!数据备份...
    99+
    2024-04-02
  • Mysql实现增量恢复的方法详解
    实验介绍 增量恢复一般适用的场景: 1、人为的sql语句破坏了数据库 2、在进行下一次完全备份之前发生系统故障导致数据库数据丢失 3、在主从架构中,主库数据发生了故障 丢失完全备份之后更改的数据的恢复步骤 ...
    99+
    2024-04-02
  • python如何实现Mysql数据库批量新增数据
    本篇内容主要讲解“python如何实现Mysql数据库批量新增数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python如何实现Mysql数据库批量新增数据”吧!一、批量插入数据的场景在进行...
    99+
    2023-06-29
  • MySQL常用函数大全(实例演示)
    此博客主要包括如下类型函数: 一、数字函数 二、字符串函数 三、日期函数 四、MySQL高级函数 一、数字函数 1、ABS(x) 返回x的绝对值 SELECT ABS(-1); 结果:  2、AVG(expression) 返回...
    99+
    2023-09-03
    java 数据库 服务器
  • MySQL数据库复合查询操作实战
    目录1.基本查询回顾2.多表查询 (重要)3.自连接4.子查询1)单行子查询 (子查询的结果是单行)(2)多行子查询(3)多列子查询5.合并查询总结:1.基本查询回顾 准备工作,创建一个雇员信息表:(来自oracle 9...
    99+
    2023-05-12
    mysql复合查询语句 mysql复合语句 sql复合查询语句
  • 数据库恢复技术的示例分析
    小编给大家分享一下数据库恢复技术的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!数据库恢复...
    99+
    2024-04-02
  • Node.js对MySQL数据库的增删改查实战记录
    目录在项目中操作数据库的三大步骤操作数据库的具体步骤一:安装MySQL模块及express模块二:通过express创建一个服务器三:配置MySQL模块四:测试 mysql 模块能否...
    99+
    2024-04-02
  • mysql增量备份及断点恢复脚本的示例分析
    这篇文章给大家分享的是有关mysql增量备份及断点恢复脚本的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。简介增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只...
    99+
    2024-04-02
  • 数据库备份与恢复的实战笔记:从理论到实践
    数据库备份是保护数据库数据免受意外数据丢失或损坏的重要措施。恢复操作则是将已备份的数据还原到数据库中的过程。本笔记提供从理论到实践的综合指南,帮助用户掌握数据库备份和恢复的各个方面。 备份 物理备份 vs 逻辑备份 物理备份:对整个数据...
    99+
    2024-04-02
  • 将RAC备份集恢复为单实例数据库
    实验环境介绍 源库:1 1.2.0.1   rac库 2个节点 目标库:11.2.0. 1  RHEL6.5   ...
    99+
    2024-04-02
  • MSSQL  附加数据库提示“错误 823”数据恢复实操
    故障: 数据库报错:“MSSQL Server 2000 附加数据库错误823”,附加数据库失败。 故障分析: 数据库出现“823”报...
    99+
    2024-04-02
  • Oracle数据库备份恢复的示例分析
    这篇文章主要为大家展示了“Oracle数据库备份恢复的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Oracle数据库备份恢复的示例分析”这篇文章吧。在...
    99+
    2024-04-02
  • MySQL数据库中怎么实现备份与恢复
    MySQL数据库中怎么实现备份与恢复,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、数据库备份的一些概念1.造成数据丢失的原...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作