亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

6:多源復制的實現

發布時間:2020-08-06 10:51:14 來源:網絡 閱讀:279 作者:shixiazhoujun 欄目:MySQL數據庫
  • MySQL多源復制允許復制slave同時從多個源接收事務。可以使用多源復制將多個服務器備份到一個服務器,合并表碎片,并將來自多個服務器的數據合并到一個服務器。多源復制在應用事務時不實現任何沖突檢測或解決,如果需要,這些任務留給應用程序完成。
  • 下面我們就來配置一個多源復制,多源復制這種拓撲至少需要兩個masters和slaves。
  • 服務器環境:192.168.1.2 (master1) 192.168.1.3 (new master) 192.168.1.4 (slave)
  • 可以將多源復制拓撲中的masters配置為使用基于全局事務標識符(GTID)的復制或基于二進制日志位置的復制,有關如何使用基于GTID的復制配置master,請看https://blog.51cto.com/itzhoujun/2351367。 有關如何使用基于文件位置的復制配置master,請參見https://blog.51cto.com/itzhoujun/2352688和https://blog.51cto.com/itzhoujun/2352693
  • 本次我們基于GTID來做多源復制
    1. 登錄slave
      • 多源復制拓撲中的slaves需要基于TABLE的存儲庫。多源復制與基于FILE的存儲庫不兼容。mysqld使用的存儲庫類型可以在啟動時配置,也可以動態配置。分別有以下兩種形式
        • 要在啟動時配置復制slave使用的存儲庫類型,請使用以下選項啟動mysqld:
          • --master-info-repository=TABLE --relay-log-info-repository=TABLE
        • 要修改使用FILE存儲庫以使用TABLE存儲庫的現有復制slave,請通過運行以下命令動態轉換現有復制存儲庫:
          • STOP SLAVE;
          • SET GLOBAL master_info_repository = 'TABLE';
          • SET GLOBAL relay_log_info_repository = 'TABLE';
      • 我們使用使用動態修改
        • mysql> STOP SLAVE;
        • Query OK, 0 rows affected (0.00 sec)
        • mysql> SET GLOBAL master_info_repository = 'TABLE';
        • Query OK, 0 rows affected (0.00 sec)
        • mysql> SET GLOBAL relay_log_info_repository = 'TABLE';
        • Query OK, 0 rows affected (0.00 sec)
        • mysql> show variables like 'master_info_repository';
        • +------------------------+-------+
        • | Variable_name | Value |
        • +------------------------+-------+
        • | master_info_repository | TABLE |
        • +------------------------+-------+
        • 1 row in set (0.01 sec)
        • mysql> show variables like 'relay_log_info_repository';
        • +---------------------------+-------+
        • | Variable_name | Value |
        • +---------------------------+-------+
        • | relay_log_info_repository | TABLE |
        • +---------------------------+-------+
        • 1 row in set (0.00 sec)
        • #說明設置成功了
    2. 登錄new master(如果有多個new master就重復此步驟)
      • 要啟用基于GTID的復制,必須在啟用GTID模式的情況下啟動每個服務器,所以我們先修改配置文件,修改后配置文件再重啟mysql
        • 6:多源復制的實現
        • 參數的具體含義,我已經在https://blog.51cto.com/itzhoujun/2351367和https://blog.51cto.com/itzhoujun/2352693詳細介紹過了
        • mysql> show variables like '%gtid%';
        • +----------------------------------+-------------------------------------------+
        • | Variable_name | Value |
        • +----------------------------------+-------------------------------------------+
        • | binlog_gtid_simple_recovery | ON |
        • | enforce_gtid_consistency | ON |
        • | gtid_executed_compression_period | 1000 |
        • | gtid_mode | ON |
        • | gtid_next | AUTOMATIC |
        • | gtid_owned | |
        • | gtid_purged | b45f359b-1747-11e9-bee2-00163e0ea0d9:1-15 |
        • | session_track_gtids | OFF |
        • +----------------------------------+-------------------------------------------+
        • 8 rows in set (0.00 sec)
        • #可以看到這個結果,就說明設置成功了
      • 添加復制用戶(如果已經有復制用戶了,則跳過這一步)
        • mysql> CREATE USER 'xiaoming'@'%' IDENTIFIED BY 'Xiaoming@123456';
        • Query OK, 0 rows affected (0.01 sec)
        • mysql> GRANT REPLICATION SLAVE ON . TO 'xiaoming'@'%';
        • Query OK, 0 rows affected (0.01 sec)
    3. 登錄slave
      • 使用CHANGE MASTER TO語句通過使用FOR CHANNEL channel 子句將新master添加到通道
        • mysql> CHANGE MASTER TO MASTER_HOST=‘192.168.1.4', MASTER_USER='xiaoming', MASTER_PASSWORD='Xiaoming@123456', MASTER_AUTO_POSITION = 1 FOR CHANNEL 'newmaster-1';
        • Query OK, 0 rows affected, 2 warnings (0.03 sec)
        • #如果有多個new master 則需要重復此步驟,根據實際情況更改主機名,端口和通道名稱。
      • 啟動多源復制slaves
        • 添加了要用作復制master的所有通道后,使用START SLAVE thread_types語句啟動復制。在slave上啟用多個通道后,您可以選擇啟動所有通道,也可以選擇要啟動的特定通道
        • 要啟動所有當前配置的復制通道:
          • START SLAVE thread_types;
        • 要僅啟動命名通道,請使用FOR CHANNEL channel子句:
          • START SLAVE thread_types FOR CHANNEL channel;
      • 我們這里直接START SLAVE,啟動所有的渠道
      • 然后我們查看一下狀態信息
        • mysql> select * from performance_schema.replication_applier_status;
        • +--------------+---------------+-----------------+----------------------------+
        • | CHANNEL_NAME | SERVICE_STATE | REMAINING_DELAY | COUNT_TRANSACTIONS_RETRIES |
        • +--------------+---------------+-----------------+----------------------------+
        • | | ON | NULL | 0 |
        • | newmaster-1 | ON | NULL | 0 |
        • +--------------+---------------+-----------------+----------------------------+
        • 2 rows in set (0.00 sec)
        • #表示有兩個渠道,那么分別看下兩個渠道的信息
        • mysql> show slave status for channel '' \G
        • 6:多源復制的實現
        • #Slave_IO_Running和Slave_SQL_Running都是YES,那說明沒問題
        • mysql> show slave status for channel 'newmaster-1' \G
        • 6:多源復制的實現
        • #Slave_IO_Running和Slave_SQL_Running都是YES,那說明沒問題
          1. 接下來就是分別在master和new master針對數據庫操作一些測試數據,然后看下slave是否同步過來了,如果同步過來了,那就沒啥問題

參考資料:https://dev.mysql.com/doc/refman/5.7/en/replication-multi-source.html

PREV: 5:使用GTID進行復制 https://blog.51cto.com/itzhoujun/2352693
NEXT: 7:基于語句復制和行復制的優點和缺點 https://blog.51cto.com/itzhoujun/2354045

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大田县| 水富县| 苍南县| 福海县| 牙克石市| 南充市| 临泽县| 浏阳市| 上高县| 山阴县| 旬阳县| 星子县| 安远县| 固安县| 昭觉县| 肃宁县| 南部县| 新营市| 磴口县| 枝江市| 阿瓦提县| 南昌县| 大港区| 南汇区| 宜章县| 筠连县| 甘泉县| 洱源县| 松潘县| 老河口市| 璧山县| 建始县| 新沂市| 河北省| 共和县| 和平县| 湖口县| 内丘县| 大新县| 历史| 邵东县|