RESET MASTER和RESET SLAVE使用場景和說明

来源:https://www.cnblogs.com/DataArt/archive/2018/10/28/9866567.html
-Advertisement-
Play Games

【前言】在配置主從的時候經常會用到這兩個語句,剛開始的時候還不清楚這兩個語句的使用特性和使用場景。 經過測試整理了以下文檔,希望能對大家有所幫助; 【一】RESET MASTER參數 功能說明:刪除所有的binglog日誌文件,並將日誌索引文件清空,重新開始所有新的日誌文件。用於第一次進行搭建主從庫 ...


【前言】在配置主從的時候經常會用到這兩個語句,剛開始的時候還不清楚這兩個語句的使用特性和使用場景。

經過測試整理了以下文檔,希望能對大家有所幫助;

 

【一】RESET MASTER參數

功能說明:刪除所有的binglog日誌文件,並將日誌索引文件清空,重新開始所有新的日誌文件。用於第一次進行搭建主從庫時,進行主庫binlog初始化工作;

 註意reset master 不同於purge binary log的兩處地方
1. reset master 將刪除日誌索引文件中記錄的所有binlog文件,創建一個新的日誌文件 起始值從000001 開始,然而purge binary log 命令並不會修改記錄binlog的順序的數值
2. reset master 不能用於有任何slave 正在運行的主從關係的主庫。因為在slave 運行時刻 reset master 命令不被支持,reset master 將master 的binlog從000001 開始記錄,slave 記錄的master log 則是reset master 時主庫的最新的binlog,從庫會報錯無法找的指定的binlog文件。

 

測試如下:

未刪除前

[root@mysql01 mysql]# pwd
/data/mysql


[root@mysql01 mysql]# ls
 


mysql> show master status\G;
*************************** 1. row ***************************
            File: mysql-bin.000025
        Position: 107
    Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.01 sec)


當前有25個binlong日誌,且Position的位置為107

 

運行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文件;

 

reset slave 將使slave 忘記主從複製關係的位置信息。該語句將被用於乾凈的啟動, 它刪除master.info文件和relay-log.info 文件以及所有的relay log 文件並重新啟用一個新的relaylog文件。

使用reset slave之前必須使用stop slave 命令將複製進程停止。

 

登錄從資料庫,未刪除前

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;

 

刪除後

mysql> stop slave;                先停止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後,重新配置主從連接就可以了;

mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.167',MASTER_USER='test',MASTER_PASSWORD='test', MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=176658;

 

 

ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log

 

 

總結:如果是需要刪除mysql binlog和relaylog文件的時候,那麼通過操作系統的刪除或者PURGE命令都可以,但是涉及到mysql主從配置的時候便需要使用RESET MASTER和RESET SLAVE解決問題;


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一。win10系統下c盤,program 文件下 軟體一般為32 或者 64位,但是現在win10系統有些C盤會顯示program x86 向這種情況的話我們的軟體預設安裝在這個盤的話可能會造成很多文件消失,但是功能依舊存在!!! 從文件所在位置可以看到安裝目錄部分文件,但是返回上一級則會消失(位數 ...
  • nbtstat -A ip 對方136到139其中一個埠開了的話,就可查看對方最近登陸的用戶名(03前的為用戶名)-註意:參數-A要大寫 tracert -參數 ip(或電腦名) 跟蹤路由(數據包),參數:“-w數字”用於設置超時間隔。 ping ip(或功能變數名稱) 向對方主機發送預設大小為32位元組 ...
  • 第1節 查看當前系統版本及內核 cat /etc/redhat-release (查看系統版本) CentOS Linux release 7.4.1708 (Core) uname -r (查看系統內核) 3.10.0-693.el7.x86_64 uname -a (查看當前操作系統) x86_ ...
  • 安裝redis 部署集群 參考資料 https://www.cnblogs.com/it-cen/p/4295984.html https://blog.csdn.net/naixiyi/article/details/51346880 https://www.cnblogs.com/Patrick ...
  • mkfs 在磁碟分區上創建ext2、ext3、ext4、ms-dos、vfat文件系統,預設情況下會創建ext2。mkfs用於在設備上構建Linux文件系統,通常是硬碟分區。文件要麼是設備名稱(例如/dev/hda1,/dev/sdb2),要麼是包含文件系統的常規文件。成功返回0,失敗返回1。 實際 ...
  • 有時候,管理員終端登陸了系統,如果離開沒有退出賬戶,則會有安全隱患存在,因此需要優化終端超時。 設置終端超時: export TMOUT=10 永久生效: echo "export TMOUT=600" >>/etc/profile source /etc/profile 檢查是否生效: ...
  • 目的:表操作(表維護) 一、一對一(略過) 二、一對 1、建表原則:在多的一方創建外鍵指向一的一方的外鍵 2、建表:實體中添加 3、操作 1、參數: name屬性:集合屬性名 column屬性: 外鍵列名 class屬性: 與我關聯的對象完整類名 2、級聯操作: cascade save-updat ...
  • Spark 中有兩個類似的api,分別是 reduceByKey 和 groupByKey 。這兩個的功能類似,但底層實現卻有些不同,那麼為什麼要這樣設計呢?我們來從源碼的角度分析一下。 先看兩者的調用順序(都是使用預設的Partitioner,即defaultPartitioner) 所用 spa ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...