<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                MySQL作為常用生產數據庫中的一種,容災及高可用方面設計是必須考慮的。而MySQL replicate是容災、負載均衡、讀寫分離、高可用性等技術的基礎,不僅使用廣泛且易于擴展,是一項成熟的技術。成功的商業案例如:replicate+MHA;replicate+corbar;replicate+MMM等。 ## 1.MySQL replicate復制常見用途: * 數據容災:復制是備份的擴展方案,但不能直接取代備份; * 負載均衡:通過復制可以將讀操作分布到多個服務器上; * 高可用性:能避免單點故障,一個包含復制的良好設計系統能夠顯著縮短宕機時間; * MySQL升級:復制也是作為常用升級測試的解決方案。 ## 2.MySQL replicate復制原理: ![](https://box.kancloud.cn/66a6c508c1adbf4e7c1ac972b5872931_554x352.png) * 在每次準備提交事務完成數據更新前,主庫將數據更新的事件記錄到二進制日志中。MySQL會按事務提交的順序而非每條語句執行的順序來記錄二進制日志。在記錄二進制日志后,主庫會告訴存儲引擎可以提交事務了。 * 備庫將主庫的二進制日志復制到本地中繼日志中。備庫會啟動一個IO線程,IO線程跟主庫建立一個普通的客戶端連接,然后再主庫上啟動一個特殊的二進制(binlog dump)線程,這個二進制轉儲線程會讀取主庫上二進制日志中的事件。它不會對事件進行輪詢。如果該線程追趕上了主庫,它將進入睡眠狀態,知道主庫發送信號通知其有新的事件產生時才會被喚醒,備庫IO線程會將接受到的事件記錄到中繼日志中。 * 備庫啟動SQL線程從中繼日志中讀取事件并在備庫執行,從而實現備庫數據的更新。當SQL線程追趕上IO線程時,中繼日志通常已經在系統緩存中,所以中繼日志開銷很低。SQL線程執行的事件也可以通過配置選項來決定是否寫入其自己的二進制日志中。 ## 3.MySQL replicate實現方式 * 環境 主庫IP:192.168.1.75 從庫IP:192.168.1.76 ### 3.1 追加主庫my.cnf配置文件 ``` [mysqld] # 要體現出server的唯一性 server-id = 75 # 啟用二進制日志 log_bin = /var/log/mysql/mysql-bin.log # 磁盤刷新指令.1表示每次寫入時都將binlog與硬盤同步,影響效率 sync_binlog=1 # binlog日志格式,mysql默認采用statement,建議使用mixed binlog_format=mixed ``` 修改完成之后,重新啟動主數據庫 `service mysql restart` ### 3.2 在主庫創建同步賬號 ``` GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.76' IDENTIFIED BY 'repl'; flush privileges; ``` >注意:IP是從庫所在的IP地址 ## 3.2 修改從庫my.cnf配置文件 ``` [mysqld] # 服務器唯一ID,默認是1,一般取IP最后一段 server-id=76 # 啟用二進制日志 log-bin=/var/log/mysql/mysql-bin.log ``` 修改完成之后,重新啟動從數據庫 ### 3.3 主庫鎖表備份 * 鎖表 ``` #mysql -uroot -p mysql>FLUSH TABLES WITH READ LOCK; mysql> SHOW MASTER STATUS; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000002 | 120 | | | | +------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec) ``` 二進制日志文件是mysql-bin.000002,位置是120,記錄下這兩個值,稍后要用到。 * 備份主庫數據 ``` # mysqldump -uroot -p -h127.0.0.1 -P3306 --all-databases --triggers --routines --events > ./all.sql ``` * 解鎖主庫鎖表 ``` mysql>UNLOCK TABLES; ``` ### 3.4 從庫導入快照 * 導入主庫備份的數據 ``` mysql -uroot -p -h127.0.0.1 -P3306 < ./all.sql ``` * 開啟從庫同步 ``` #mysql -uroot -p mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.75',MASTER_USER='repl',MASTER_PASSWORD='repl',MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=120; #然后啟動從數據庫的復制線程: mysql>START slave; # 接著查詢數據庫的slave狀態: mysql> SHOW slave STATUS #如果下面兩個參數都是Yes(不能是Running),則說明主從配置成功! Slave_IO_Running:Yes Slave_SQL_Running:Yes ``` > 注意:MASTER_LOG_FILE,MASTER_LOG_POS修改成主庫3.3中的查詢結果 ## 參考 http://www.cnblogs.com/kezf/p/mysql-slave.html http://blog.csdn.net/stuartjing/article/details/9719701
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看