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

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

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

Binlog獲取策略

連接方式

Binlog獲取策略

  • 主地址

  • 默認集群地址

  • 包含主節(jié)點的自定義集群地址

均從主節(jié)點獲取。

說明

如何設(shè)置集群連接地址,請參見配置數(shù)據(jù)庫代理

僅包含只讀節(jié)點的自定義集群地址

從任意只讀節(jié)點獲取。

說明

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

  • 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報錯。

關(guān)于如何查看集群版本和升級集群版本,請參見版本管理

遠程獲取Binlog日志

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

    說明

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

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

  3. 通過MySQL客戶端連接PolarDB集群,詳細操作步驟,請參見連接數(shù)據(jù)庫集群。本文以Linux系統(tǒng)為例。1

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

    show binary logs;

    返回結(jié)果如下:

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

    本文中以Linux系統(tǒng)為例,在執(zhí)行如下語句前,需先執(zhí)行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

    參數(shù)

    說明

    示例值

    -u

    PolarDB MySQL版集群中的賬號名稱。如何創(chuàng)建賬號,請參見創(chuàng)建和管理數(shù)據(jù)庫賬號

    test_api

    -p

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

    TestPwd123

    -h

    PolarDB MySQL版的私網(wǎng)地址或公網(wǎng)地址。

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

    • 若您訪問的PolarDB MySQL版集群位于相同的地域且使用相同的網(wǎng)絡(luò)類型,請選擇私有網(wǎng)絡(luò)地址進行連接。例如,所有位于華東1(杭州)的專有網(wǎng)絡(luò)集群均建議使用私有網(wǎng)絡(luò)地址,這樣可以確保安全高效的訪問體驗。

    • 其他情況只能使用公網(wǎng)地址。如何申請公網(wǎng)連接地址,請參見管理連接地址

    test-polardb.rwlb.rds.aliyuncs.com

    --raw

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

    --raw

    mysql-bin.******

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

    mysql-bin.000005

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

  • 執(zhí)行如下命令,通過mysqlbinlog工具查看Binlog日志文件內(nèi)容:

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

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

    具體的Binlog日志內(nèi)容如下圖中紅框所示部分:

    3

  • 解析Binlog日志

    關(guān)于如何解析Binlog日志,請參見解析Binlong日志

常見問題

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

    A:PolarDB集群默認關(guān)閉Binlog參數(shù),請確保您已開啟Binlog

    說明

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

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

    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工具版本過低時,可能會出現(xiàn)以上錯誤提示中的任意一種。請檢查您使用的mysqlbinlog工具版本,建議您升級到較高版本的mysqlbinlog工具再嘗試遠程獲取Binlog日志。例如使用Ver 3.3版本出現(xiàn)如上錯誤提示,您可以將mysqlbinlog工具升級至Ver 3.4版本進行查看。

  • Q:為什么我看到的Binlog日志內(nèi)容未經(jīng)過解析?

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

    3

  • Q:從只讀節(jié)點獲取Binlog時,為什么出現(xiàn)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或以上

    支持從只讀節(jié)點獲取Binlog。如何查看集群版本和升級集群版本,請參見版本管理

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

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

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

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