日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

遠程獲取并解析PolarDB MySQL版Binlog日志

本文介紹如何遠程獲取PolarDB MySQL版Binlog日志,并通過mysqlbinlog工具查看并解析Binlog日志。

Binlog獲取策略

連接方式

Binlog獲取策略

  • 主地址

  • 默認集群地址

  • 包含主節點的自定義集群地址

均從主節點獲取。

說明

如何設置集群連接地址,請參見配置數據庫代理

僅包含只讀節點的自定義集群地址

從任意只讀節點獲取。

說明

集群版本需為以下版本之一:

  • PolarDB MySQL版8.0版本且Revision version為8.0.1.1.12或以上

  • PolarDB MySQL版5.7版本且Revision version為5.7.1.0.12或以上

否則,將返回Only allow to dump binary log on primary instance報錯。

關于如何查看集群版本和升級集群版本,請參見小版本升級

遠程獲取Binlog日志

  1. PolarDB MySQL版集群開啟Binlog,詳細操作步驟,請參見開啟Binlog

    說明

    您需要先為集群開啟Binlog才能查看并獲取Binlog日志,否則將出現You are not using binary logging錯誤提示。

  2. 在本地服務器上安裝MySQL。

  3. 通過MySQL客戶端連接PolarDB集群,詳細操作步驟,請參見使用客戶端連接集群。本文以Linux系統為例。1

  4. 在已連接PolarDB集群的客戶端中執行如下命令查看目標集群的Binlog文件列表:

    show binary logs;

    返回結果如下:

    +------------------+-----------+
    | Log_name         | File_size |
    +------------------+-----------+
    | mysql-bin.000005 |      2639 |
    +------------------+-----------+
    1 row in set (0.00 sec)
  5. 在客戶端執行如下命令,遠程獲取Binlog日志并保存至本地。

    本文中以Linux系統為例,在執行如下語句前,需先執行exit退出MySQL后,才能遠程獲取Binlog日志并保存至本地。2

    mysqlbinlog -u<用戶名> -p<密碼> -h<連接地址> --read-from-remote-server --raw mysql-bin.******

    示例:

    mysqlbinlog -utest_api -p -htest-polardb.rwlb.rds.aliyuncs.com --read-from-remote-server --raw mysql-bin.000005

    參數

    說明

    示例值

    -u

    PolarDB MySQL版集群中的賬號名稱。如何創建賬號,請參見創建數據庫賬號

    test_api

    -p

    以上賬號的密碼。如果此處留空,則在執行此命令后會被要求輸入。

    TestPwd123

    -h

    PolarDB MySQL版集群的公網連接地址。

    說明
    • 若您的PolarDB MySQL版集群連接地址使用的是默認的端口號3306,端口號可省略不寫,否則需要在連接地址后加上端口號。

    • 當前僅支持通過主地址或集群地址(包括默認集群地址和自定義集群地址)的公網連接地址遠程獲取Binlog。如何申請公網連接地址,請參見管理連接地址

    test-polardb.rwlb.rds.aliyuncs.com

    --raw

    表示將獲取到的Binlog文件按數據原有格式打印,而不會展示解析后的數據。

    --raw

    mysql-bin.******

    通過show binary logs;命令獲取的目標Binlog文件的名字,即Log_name

    mysql-bin.000005

使用mysqlbinlog工具查看、解析Binlog日志

  • 執行如下命令,通過mysqlbinlog工具查看Binlog日志文件內容:

    mysqlbinlog -vv --base64-output=decode-rows mysql-bin.****** | more
    說明
    • -vv:查看具體SQL語句及備注。

    • --base64-output=decode-rows:解析Binlog日志文件。

    具體的Binlog日志內容如下圖中紅框所示部分:

    3

  • 解析Binlog日志

    關于如何解析Binlog日志,請參見解析Binlong日志

常見問題

  • Q:執行show binary logs;后,為什么會提示You are not using binary logging錯誤信息?

    A:PolarDB集群默認關閉Binlog參數,請確保您已開啟Binlog

    說明

    開啟或關閉Binlog后,集群會自動重啟使參數新配置生效。建議您在業務低谷期進行操作并確保應用程序具備重連機制。

  • Q:為什么遠程獲取Binlog日志失敗,并出現如下錯誤提示?

    ERROR: Error in Log_event::read_log_event(): 'Sanity check failed', data_len: 151, event_type: 35
    ERROR: Could not read entry at offset 120: Error in log format or read error.
    ERROR: Goterrorreadingpacketfromserver: 'Slave can not handle replication events with the checksum that master is configured to log; 

    A:當您使用的mysqlbinlog工具版本過低時,可能會出現以上錯誤提示中的任意一種。請檢查您使用的mysqlbinlog工具版本,建議您升級到較高版本的mysqlbinlog工具再嘗試遠程獲取Binlog日志。例如使用Ver 3.3版本出現如上錯誤提示,您可以將mysqlbinlog工具升級至Ver 3.4版本進行查看。

  • Q:為什么我看到的Binlog日志內容未經過解析?

    A:若在查看Binlog日志時,未使用--base64-output=decode-rows參數,導出的Binlog日志將會顯示未經解析的日志(如下圖所示)。請確保在使用mysqlbinlog工具查看Binlog日志時,已使用--base64-output=decode-rows參數。

    3

  • Q:從只讀節點獲取Binlog時,為什么出現Only allow to dump binary log on primary instance錯誤提示?

    A:當集群版本為以下版本之一時:

    • PolarDB MySQL版8.0版本且Revision version為8.0.1.1.12或以上

    • PolarDB MySQL版5.7版本且Revision version為5.7.1.0.12或以上

    支持從只讀節點獲取Binlog。如何查看集群版本和升級集群版本,請參見小版本升級

  • Q:從只讀節點獲取的Binlog時,為什么有時候結果會與從主節點上獲取的不一致?

    A:PolarDB支持在主節點和只讀節點間共享Binlog,當主節點上的Binlog源信息同步到只讀節點后,才能從只讀節點獲取Binlog。當出現同步延遲(源信息數據量很小,延遲一般不會很大)時,只讀節點可能會讀不到主節點上新寫入的Binlog。

  • Q:為什么在超出保存時長參數(binlog_expire_logs_seconds)設置的時間后,Binlog并沒有被刪除?

    A:若只讀節點上有線程正在獲取Binlog,該Binlog不會被立即刪除。當主節點寫入新的Binlog后,會再次檢查是否有超時的Binlog,若此時該Binlog未參與任何只讀節點上的線程,即被刪除。