mysql清除主從復制關系


mysql清除主從復制關系
 
 網頁轉自https://www.cnblogs.com/wjoyxt/p/5343662.html mysql主從復制中,需要將主從復制關系清除,需要取消其從庫角色。這可通過執行RESET SLAVE ALL清除從庫的同步復制信息、包括連接信息和二進制文件名、位置。
從庫上執行這個命令后,使用show slave status將不會有輸出。 reset slave是各版本Mysql都有的功能,在stop slave之后使用。主要做: 刪除master.info和relay-log.info文件; 刪除所有的relay log(包括還沒有應用完的日志),創建一個新的relay log文件; 從Mysql 5.5開始,多了一個all參數。如果不加all參數,那么所有的連接信息仍然保留在內存中,包括主庫地址、端口、用戶、密碼等。這樣可以直接運行start
slave命令而不必重新輸入change master to命令,而運行show slave status也仍和沒有運行reset slave一樣,有正常的輸出。但如果加了all參數,那么這
些內存中的數據也會被清除掉,運行show slave status就輸出為空了。 mysql>stop slave; QueryOK, 0 rowsaffected (0,00 sec) mysql>reset slave all; QueryOK, 0 rowsaffected (0,04 sec) mysql> show slave status\G Emptyset (0,00 sec) 此時真正實現了清除slave同步復制關系! -------------------------------------------------------------------------------- 【一】RESET MASTER 功能說明:刪除所有的binglog日志文件,並將日志索引文件清空,重新開始所有新的日志文件。用於第一次進行搭建主從庫時,進行主庫binlog初始化工作; 測試如下: 未刪除前 [root@mysql01 mysql]# pwd /usr/local/data/mysql [root@mysql01 mysql]# ls auto.cnf client-cert.pem ibdata1 ibtmp1 localhost.localdomain.pid mysql-bin.000002 mysql-bin.000005 mysqld_safe.pid public_key.pem sys ca-key.pem client-key.pem ib_logfile0 imove mysql mysql-bin.000003 mysql-bin.000006 performance_schema server-cert.pem ca.pem ib_buffer_pool ib_logfile1 localhost.localdomain.err mysql-bin.000001 mysql-bin.000004 mysql-bin.index private_key.pem server-key.pem [root@localhost bin]# ./mysql -uroot -p123456 mysql> show master status; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000006 | 16663694 | | | | +------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec) mysql> 當前有6個binlong日志,且Position的位置為16663694 運行RESET MASTER mysql> reset master; Query OK, 0 rows affected (0.03 sec) mysql> show master status\G; *************************** 1. row *************************** File: mysql-bin.000001 Position: 107 Binlog_Do_DB: Binlog_Ignore_DB: 1 row in set (0.00 sec) 顯示所有的binlog已經被刪除掉,且binlog從000001 開始記錄 注:當數據庫要清理binlog文件的時候,可以通過操作系統進行刪除,也可以運行reset master進行刪除。但是如果當前是主數據庫,且主從數據庫正常的時候,千萬不能用這種方式刪除。 【使用場景】第一次搭建主從數據庫時,用於主庫的初始化binglog操作。 【二】RESET SLAVE 功能說明:用於刪除SLAVE數據庫的relaylog日志文件,並重新啟用新的relaylog文件; 測試如下: 登錄從數據庫,未刪除前 mysql> show slave status\G; *************************** 1\. row *************************** Slave_IO_State: Connecting to master Master_Host: 192.168.47.167 Master_User: server Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000019 Read_Master_Log_Pos: 12992 Relay_Log_File: mysql02-relay-bin.000004 Relay_Log_Pos: 4 Relay_Master_Log_File: mysql-bin.000019 當前relaylog為0004; 先停止slave,運行RESET MASTER mysql> stop slave; Query OK, 0 rows affected (0.01 sec) mysql> reset slave; Query OK, 0 rows affected (0.04 sec) mysql> show slave status\G; *************************** 1\. row *************************** Slave_IO_State: Master_Host: 192.168.47.167 Master_User: server Master_Port: 3306 Connect_Retry: 60 Master_Log_File: Read_Master_Log_Pos: 4 ** Relay_Log_File: mysql02-relay-bin.000001 Relay_Log_Pos: 4** RESET SLAVE將使SLAVE忘記主從復制關系的位置信息。該語句將被用於干凈的啟動, 它刪除master.info文件和relay-log.info 文件以及所有的relay log 文件並重新啟用一個新的relaylog文件。 使用場景:當原來的主從關系被破壞之后,從庫經過重新初始化后直接連接會報 ERROR 1201的錯誤,運行reset slave后,重新配置主從連接就可以了;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM