最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Centos7實現(xiàn)MySQL基于日志還原數(shù)據(jù)的示例代碼

 更新時間:2020年07月09日 10:27:42   作者:wx5ed6455937203  
這篇文章主要介紹了Centos7實現(xiàn)MySQL基于日志還原數(shù)據(jù)的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

簡介

Binlog日志,即二進制日志文件,用于記錄用戶對數(shù)據(jù)庫操作的SQL語句信息,當發(fā)生數(shù)據(jù)誤刪除的時候我們可以通過binlog日志來還原已經(jīng)刪除的數(shù)據(jù),還原數(shù)據(jù)的方法分為傳統(tǒng)二進制文件還原數(shù)據(jù)和基于GTID的二進制文件還原數(shù)據(jù)

前期準備

準備一臺Centos7虛擬機,關(guān)閉防火墻和selinux,配置IP地址,同步系統(tǒng)時間,安裝MySQL數(shù)據(jù)庫

傳統(tǒng)二進制日志還原數(shù)據(jù)

修改配置文件

[root@localhost ~]# vi /etc/my.cnf
server-id=1
log-bin=binlog

#重啟數(shù)據(jù)庫服務(wù)
[root@localhost ~]# systemctl restart mysqld

操作數(shù)據(jù)庫

mysql> create database mydb charset utf8mb4;
mysql> use mydb;
mysql> create table test(id int)engine=innodb charset=utf8mb4;
mysql> insert into test values(1);
mysql> insert into test values(2);
mysql> insert into test values(3);
mysql> insert into test values(4);
mysql> commit;
mysql> update test set id=10 where id=4;
mysql> commit;
mysql> select * from test;
+------+
| id  |
+------+
|  1 |
|  2 |
|  3 |
|  10 |
+------+
4 rows in set (0.00 sec)
mysql> drop database mydb;

查看二進制日志信息

mysql> show master status\G;
*************************** 1. row ***************************
       File: binlog.000001
     Position: 1960
   Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec)

 
#查找創(chuàng)庫和刪庫的點,為219和1868
mysql> show binlog events in 'binlog.000001';
+---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+
| Log_name   | Pos | Event_type   | Server_id | End_log_pos | Info                                |
+---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+
| binlog.000001 | 219 | Query     |     1 |     329 | create database mydb charset utf8mb4                |
| binlog.000001 | 1868 | Query     |     1 |    1960 | drop database mydb                         |
+---------------+------+----------------+-----------+-------------+--------------------------------------------------------------------+

另存為二進制日志信息

[root@localhost ~]# mysqlbinlog --start-position=219 --stop-position=1868 /var/lib/mysql/binlog.000001 > /tmp/binlog.sql

恢復(fù)數(shù)據(jù)

#臨時關(guān)閉二進制日志記錄以免重復(fù)記錄
mysql> set sql_log_bin=0;
#恢復(fù)數(shù)據(jù)
mysql> source /tmp/binlog.sql
#重啟二進制日志記錄
mysql> set sql_log_bin=1;

查看數(shù)據(jù)恢復(fù)情況

mysql> show databases;
+--------------------+
| Database      |
+--------------------+
| information_schema |
| mydb        |
| mysql       |
| performance_schema |
| sys        |
+--------------------+
5 rows in set (0.00 sec)

mysql> use mydb;
Database changed
mysql> select * from test;
+------+
| id  |
+------+
|  1 |
|  2 |
|  3 |
|  10 |
+------+
4 rows in set (0.00 sec)、

基于GTID二進制日志還原數(shù)據(jù)

修改配置文件

[root@localhost ~]# vi /etc/my.cnf
server-id=1
log-bin=binlog
gtid_mode=ON
enforce_gtid_consistency=true
log_slave_updates=1

#重啟數(shù)據(jù)庫服務(wù)
[root@localhost ~]# systemctl restart mysqld

操作數(shù)據(jù)庫

mysql> create database mydb1;
mysql> use mydb1;
Database changed
mysql> create table t1(id int)engine=innodb charset=utf8mb4;
mysql> insert into t1 values(1);
mysql> insert into t1 values(2);
mysql> insert into t1 values(3);
mysql> insert into t1 values(11);
mysql> insert into t1 values(12);
mysql> commit;
mysql> select * from t1;
+------+
| id  |
+------+
|  1 |
|  2 |
|  3 |
|  11 |
|  12 |
+------+
5 rows in set (0.00 sec)
mysql> drop database mydb1;

查看二進制日志信息

mysql> show master status\G;
*************************** 1. row ***************************
       File: binlog.000003
     Position: 1944
   Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 51d3db57-bf69-11ea-976c-000c2911a022:1-8
1 row in set (0.00 sec)

mysql> show binlog events in 'binlog.000003';
+---------------+------+----------------+-----------+-------------+-------------------------------------------------------------------+
| Log_name   | Pos | Event_type   | Server_id | End_log_pos | Info                               |
+---------------+------+----------------+-----------+-------------+-------------------------------------------------------------------+
| binlog.000003 | 154 | Gtid      |     1 |     219 | SET @@SESSION.GTID_NEXT= '51d3db57-bf69-11ea-976c-000c2911a022:1' |
| binlog.000003 | 219 | Query     |     1 |     316 | create database mydb1                       |
| binlog.000003 | 1784 | Gtid      |     1 |    1849 | SET @@SESSION.GTID_NEXT= '51d3db57-bf69-11ea-976c-000c2911a022:8' |
| binlog.000003 | 1849 | Query     |     1 |    1944 | drop database mydb1                        |
+---------------+------+----------------+-----------+-------------+-------------------------------------------------------------------+

另存為二進制日志信息

#8號事務(wù)記錄為刪除數(shù)據(jù)庫,因此只需恢復(fù)1-7號事務(wù)記錄即可
[root@localhost ~]# mysqlbinlog --skip-gtids --include-gtids='51d3db57-bf69-11ea-976c-000c2911a022:1-7' /var/lib/mysql/binlog.000003 > /tmp/gtid.sql

參數(shù)說明:
--include-gtids:包含事務(wù)
--exclude-gtids:排除事務(wù)
--skip-gtids:跳過事務(wù)

恢復(fù)數(shù)據(jù)

mysql> set sql_log_bin=0;
mysql> source /tmp/gtid.sql
mysql> set sql_log_bin=1;

查看數(shù)據(jù)恢復(fù)情況

mysql> show databases;
+--------------------+
| Database      |
+--------------------+
| information_schema |
| mydb        |
| mydb1       |
| mysql       |
| performance_schema |
| sys        |
+--------------------+
6 rows in set (0.00 sec)

mysql> use mydb1;
Database changed
mysql> select * from t1;
+------+
| id  |
+------+
|  1 |
|  2 |
|  3 |
|  11 |
|  12 |
+------+
5 rows in set (0.00 sec)

 到此這篇關(guān)于Centos7實現(xiàn)MySQL基于日志還原數(shù)據(jù)的示例代碼的文章就介紹到這了,更多相關(guān)Centos7 MySQL日志還原數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Apache環(huán)境下配置多個ssl證書搭建多個站點的方法

    Apache環(huán)境下配置多個ssl證書搭建多個站點的方法

    這篇文章主要介紹了Apache環(huán)境下配置多個ssl證書搭建多個站點的方法,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-07-07
  • Linux系統(tǒng)中sudo命令的十個技巧總結(jié)

    Linux系統(tǒng)中sudo命令的十個技巧總結(jié)

    Linux 下使用Sudo 命令,可以讓普通用戶也能執(zhí)行一些或者全部的root命令,下面這篇文章主要給大家介紹了關(guān)于Linux系統(tǒng)中sudo命令的十個技巧,需要的朋友可以參考借鑒,下面來一起看看吧。
    2018-04-04
  • Linux下Kafka單機安裝配置方法(圖文)

    Linux下Kafka單機安裝配置方法(圖文)

    Kafka是一個分布式的、可分區(qū)的、可復(fù)制的消息系統(tǒng)。它提供了普通消息系統(tǒng)的功能,但具有自己獨特的設(shè)計。這個獨特的設(shè)計是什么樣的呢
    2015-12-12
  • 在 Ubuntu Linux 上安裝 Oracle Java 14的方法

    在 Ubuntu Linux 上安裝 Oracle Java 14的方法

    最近,Oracle 宣布 Java 14(或 Oracle JDK 14)公開可用。如果你想進行最新的實驗或者開發(fā)的話,那么你可以試試在 Linux 系統(tǒng)上安裝 Java 14,感興趣的朋友可以參考下本文
    2020-04-04
  • Linux設(shè)置Service服務(wù)開機自啟的教程指南

    Linux設(shè)置Service服務(wù)開機自啟的教程指南

    在 Linux 系統(tǒng)中,確保關(guān)鍵服務(wù)能夠在系統(tǒng)啟動時自動運行是一項非常重要的任務(wù),尤其是在服務(wù)器環(huán)境中,我們希望一些服務(wù)能夠在系統(tǒng)每次啟動后自動啟動,從而確保業(yè)務(wù)的持續(xù)運行,本指南將詳細介紹如何在Linux系統(tǒng)中設(shè)置Service服務(wù)開機自啟,需要的朋友可以參考下
    2024-10-10
  • Linux VPS利用SSH重置ROOT密碼的方法

    Linux VPS利用SSH重置ROOT密碼的方法

    如果我們的VPS使用的是SolusVM客戶端管理面板,我們直接在VPS商的管理后臺就可以重置ROOT密碼
    2012-09-09
  • Linux下自動刪除歸檔日志文件的方法

    Linux下自動刪除歸檔日志文件的方法

    這篇文章主要介紹了Linux下自動刪除歸檔日志文件的方法,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2016-12-12
  • linux使用scp實現(xiàn)服務(wù)器A向服務(wù)器B傳輸文件

    linux使用scp實現(xiàn)服務(wù)器A向服務(wù)器B傳輸文件

    這篇文章主要介紹了linux使用scp實現(xiàn)服務(wù)器A向服務(wù)器B傳輸文件的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • Linux下查看binlog文件創(chuàng)建時間的命令

    Linux下查看binlog文件創(chuàng)建時間的命令

    這篇文章主要介紹了Linux下查看binlog文件創(chuàng)建時間的命令,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • Apache+Weblogic實現(xiàn)URL轉(zhuǎn)發(fā)

    Apache+Weblogic實現(xiàn)URL轉(zhuǎn)發(fā)

    由于項目部署在Weblogic應(yīng)用服務(wù)器上,用戶訪問的時候需要加端口號,這就非常的不友好了,所以又架設(shè)了Apache,使用URL轉(zhuǎn)發(fā)方式來處理這個問題,本文是記錄一下方法,給需要的小伙伴參考下
    2014-11-11

最新評論

东港市| 故城县| 敖汉旗| 浦东新区| 南溪县| 盐山县| 莲花县| 广州市| 颍上县| 安福县| 上饶县| 哈尔滨市| 门头沟区| 内江市| 永济市| 惠水县| 大方县| 怀化市| 湘西| 崇阳县| 福安市| 德化县| 上饶市| 舟山市| 麟游县| 依兰县| 峨边| 临澧县| 五莲县| 元氏县| 新建县| 北票市| 木兰县| 东兰县| 灌南县| 宜章县| 安义县| 宣恩县| 大竹县| 大竹县| 淳化县|