• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • linux mysql的主從復制(GTID)/并行復制/無損復制

    標簽: mysql  GTID

    安裝mysql

    本次使用五個rpm包安裝

     

    安裝后修改密碼即可

    密碼默認在log中

     

    初始化修改即可

     

    開啟mysql二進制日志

    可以設定徐亞同步的數據庫或不需要的數據庫

    進入mysql創建備份賬戶

    查看日至位置以及pos在備份機使用

    grant replication slave on  *.* to  'bobo'@'172.25.15.%'  identified by 'Hh~802119323'

     

    備份機設置同主機

    但把server-id改為2即可

    進入mysql配置即可

    都出現yes為正確設置

     

    測試

    主機上的數據被備份成功

     

     

    基于GTID

    GTID是對于一個已提交事務的編號,并且是一個全局唯一的編號。
    ?GTID = source_id :transaction_id
    每一個 GTID 代表一個數據庫事務
    在mysql的數據目錄(/var/lib/mysql)里查看二進制日志

    配置主機my.cnf

     

    添加gtid數據

     

    備份主機配置

     

    change master to master_host='172.25.15.12', master_user='bobo',master_password='Hh~802119323',master_auto_position=1;

     

    查看狀態

    Slave_IO_Running, Slave_SQL_Running為YES,

    Slave_SQL_Running_State 為Slave has read all relay log; waiting for more updates時表示成功構建復制鏈路

    可以在備份主機上看到個gtid  測試成功

     

     

     

    半同步復制

    半同步復制:異步復制和同步復制的折中,主庫上提交事務時,需要等待至少一個從庫發來的收到事件確認信息,才向客戶端返回成功。

    主節點安裝 rpl_semi_sync_master 插件

     

    root@localhost:mysql>INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

    Query OK, 0 rows affected (0.17 sec)

     

    root@localhost:mysql>show variables like '%rpl%';

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

    | Variable_name                             | Value      |

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

    | rpl_semi_sync_master_enabled              | OFF        |

    | rpl_semi_sync_master_timeout              | 10000      |

    | rpl_semi_sync_master_trace_level          | 32         |

    | rpl_semi_sync_master_wait_for_slave_count | 1          |

    | rpl_semi_sync_master_wait_no_slave        | ON         |

    | rpl_semi_sync_master_wait_point           | AFTER_SYNC |

    | rpl_stop_slave_timeout                    | 31536000   |

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

     

    7 rows in set (0.03 sec)

     

    備節點安裝 rpl_semi_sync_slave 插件

    root@localhost:mysql>INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

    Query OK, 0 rows affected (0.15 sec)

     

    root@localhost:mysql>show variables like '%rpl%';

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

    | Variable_name                   | Value    |

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

    | rpl_semi_sync_slave_enabled     | OFF      |

    | rpl_semi_sync_slave_trace_level | 32       |

    | rpl_stop_slave_timeout          | 31536000 |

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

    3 rows in set (0.03 sec)

     

     

    主節點my.cnf配置增加以下

     

    rpl_semi_sync_master_enabled=1

    rpl_semi_sync_master_timeout=10000 

    備節點

    rpl_semi_sync_slave_enabled=1

     

     

    關閉從庫后,在主庫上創建一張表延遲了 10 秒左右,剛好是參數 rpl_semi_sync_master_timeout 設置的值。

     

    關于數據手動備份恢復

    在備份數據被從庫恢復時 恢復文件中會有sql語句刪除已經存在的table——————mysqldump

     

    二進制日志的恢復

    基于行的日志格式 binlog_format=ROW

    • 這是mysql5.7之后默認的二進制日志格式
    • 記錄的是增刪改查的數據行信息
    • 優點:
      • 使mysql主從復制更加安全
      • 對每一行數據的修改比基于段的復制高效
      • 由于誤操作修改數據庫信息,且沒有備庫可恢復時,可通過對日志文件數據操作反向處理恢復數據
    • 缺點:
      • 記錄日志量較大
        • binlog_row_image =[FULL|MINIMAL|NOBLOB]

     

    基于時間恢復數據

    mysqlbinlog –no-defaults   –stop-datetime=’2017-04-11 09:48:48’/var/lib/mysql/mysql-bin.000007 |mysql –uroot –pHh~802119323

    基于position恢復數據

    mysqlbinlog –no-defaults –start-position=”1159” –stop-position=”1594” /varlib/mmysql/binlog.000007 | mysql -u root -pHh~802119323

     

    并行復制

    slave端開啟  my.cnf

    slave-parallel-type=LOGICAL_CLOCK
    slave-parallel-workers=16
    master_info_repository=TABLE
    relay_log_info_repository=TABLE
    relay_log_recovery=ON

     

    無損復制

    官方文檔

    https://dev.mysql.com/doc/refman/5.7/en/replication-semisync-installation.html

    On the master:

    INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

    On each slave:

    INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

    查看狀態

    SELECT PLUGIN_NAME, PLUGIN_STATUS
           FROM INFORMATION_SCHEMA.PLUGINS
           WHERE PLUGIN_NAME LIKE '%semi%';

     master-

    SET GLOBAL rpl_semi_sync_master_enabled = {0|1};
    SET GLOBAL rpl_semi_sync_master_timeout = N;

     slave

    SET GLOBAL rpl_semi_sync_slave_enabled = {0|1};

    重啟io

    STOP SLAVE IO_THREAD;
    START SLAVE IO_THREAD;

     

    測試 在添加數據后  slave端看到收到兩條信息

    slave 端看master yes tx數據可以看到幾條信息

    可以看到設置本slave的maser與slave狀態都開啟

     

    mysql group replication 去中心化

    官方文檔

    https://dev.mysql.com/doc/refman/5.7/en/group-replication-adding-instances.html

    配置解析用于主機互相連接

     

    編輯配置文件

    修改serverid  本機ip即可

    登陸數據庫  修改初始密碼

     ALTER USER root@localhost identified  by  'Hh~802119323'

     SET SQL_LOG_BIN=0;

    CREATE USER rpl_user@'%' IDENTIFIED BY 'Hh~802119323'

     GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';

     FLUSH PRIVILEGES;

    reset master;

    CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='Hh~802119323' FOR CHANNEL 'group_replication_recovery';

    INSTALL PLUGIN group_replication SONAME 'group_replication.so';

    SHOW PLUGINS;

    SET GLOBAL group_replication_bootstrap_group=ON;

    START GROUP_REPLICATION;           

    SET GLOBAL group_replication_bootstrap_group=ON;

    SET GLOBAL group_replication_bootstrap_group=OFF;

    下圖為正確結果

    配置第二臺加入集群的主機

     

    SET SQL_LOG_BIN=0;

    CREATE USER rpl_user@'%' IDENTIFIED BY 'password';

    GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';

    SET SQL_LOG_BIN=1;

    CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='password' FOR CHANNEL 'group_replication_recovery';

    start GROUP_REPLICATION;

    看到下圖即可

     

     

    節點三與節點的配置相同 不再贅述

     

    測試  在2節點創創建數據庫 以節點可以看到

     

    版權聲明:本文為iaMay_____原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/iaMay_____/article/details/81489860

    智能推薦

    MySQL主從復制Linux實現

    主從復制 注意事項 1、主DB server和從DB server數據庫的版本一致 2、主DB server和從DB server數據庫數據一致[ 可以把主的備份在從上還原 也可以直接將主的數據目錄,拷貝到從的相應數據目錄 3、主DB server開啟二進制日志 主DB server和從DB server的server_id都必須唯一 主服務器配置 第一步 修改/etc/my.conf文件 在my...

    linux , mysql互為主從復制

      Master-1:192.169.7.242 Master-2:192.169.0.197 MySQL版本:mysql-5.7 1.mysql配置文件修改及說明 分別修改兩個節點的mysql,此處修改配置文件為:/etc/my.cnf 修改Master-1如下:   修改Master-2如下:   注意: Master-1和Master-2的server-id和a...

    linux進階-MySQL主從復制

    文章目錄 MySQL主從復制的架構和原理 MySQL主從復制形式 MySQL主從復制原理 MySQL主從復制過程 MySQL異步復制 實現MSQL主從復制 主節點Master配置 從節點Slave配置 主服務器非新建時 主節點Master配置 從節點Slave配置 MySQL主從復制的架構和原理 性能擴展 服務性能擴展方式: Scale Up #向上擴展 Scale Out #向外擴展 MySQL...

    linux--mysql(主從復制gid)

    gid主從輔助復制(在position的基礎上) GTID復制不像傳統的復制方式(異步復制、半同步復制)需要找到binlog(MASTER_LOG_FILE)和POS點(MASTER_LOG_POS) 只需要知道master的IP、端口、賬號、密碼即可,因為復制是自動的,MySQL會通過內部機制GTID自動找點同步 和基于position的主從復制的不同之處在于:它是以一整個事件為單位進行復制的 ...

    linux--mysql(主從復制position)

    異步復制(主從復制)master節點不會關心slave節點的狀態,只需要寫自己的數據即可 能不能完成復制看slave節點的io線程和sql線程是否開啟 mysql的主從配置又叫replication,AB復制,基于binlog二進制日志,主數據庫必須開啟binlog二進制日志才能進行復制 mysql的主從復制(異步復制)(基于position)把一個事件拆開來復制,并不是以一個完整的事件為單位來進...

    猜你喜歡

    Linux上MySQL主從復制配置

    1.我的Linux是centos7 mysql版本是5.7 2.準備兩個能正常啟動的MySQL的服務器 ,我的兩個IP分別是128和129,我是把129作為master節點,128作為slave節點 3.防火墻要關閉 , systemctl stop firewalld.service, 還要把這個也跟關閉SeLinux權限問題 /usr/sbin/sestatus -v 這個是查看SeLinux...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    精品国产乱码久久久久久蜜桃不卡