MySQL - SHOW BINLOG EVENTS 語句



MySQL SHOW BINLOG EVENTS 語句

SHOW BINLOG EVENTS 語句顯示指定二進位制日誌中的事件。如果您未指定日誌名稱,則顯示第一個日誌。要執行此語句,您需要 REPLICATION SLAVE 許可權。此語句顯示以下詳細資訊:

  • Log_name - 日誌檔名。

  • Pos - 事件的起始位置。

  • Event_type - 指定事件型別的識別符號。

  • Server_id - 伺服器的 ID。

  • End_log_pos - 事件在日誌中的結束位置。

  • Info - 關於事件的更多資訊。

語法

以下是 MySQL SHOW BINLOG EVENTS 語句的語法:

SHOW BINLOG EVENTS
   [IN 'log_name']
   [FROM pos]
   [LIMIT [offset,] row_count]

示例

您可以如下所示顯示二進位制日誌中的事件列表:

SHOW BINLOG EVENTS\G;

輸出

以上查詢產生以下輸出:

********** 1. row **********
   Log_name: TP-bin.000105
        Pos: 4
 Event_type: Format_desc
  Server_id: 1
End_log_pos: 125
       Info: Server ver: 8.0.22, Binlog ver: 4
********** 2. row **********
   Log_name: TP-bin.000105
        Pos: 125
 Event_type: Previous_gtids
  Server_id: 1
End_log_pos: 156
       Info:
********** 3. row **********
   Log_name: TP-bin.000105
        Pos: 156
 Event_type: Anonymous_Gtid
  Server_id: 1
End_log_pos: 233
   Info: SET @@SESSION.GTID_NEXT= 'ANONYMOUS'
********** 4. row **********
   Log_name: TP-bin.000105
        Pos: 233
 Event_type: Query
  Server_id: 1
End_log_pos: 366
   Info: use `test`; DROP TABLE `employee` /* generated by server */ 
              /* xid=8 */
********** 5. row **********
   Log_name: TP-bin.000105
        Pos: 366
 Event_type: Anonymous_Gtid
  Server_id: 1
End_log_pos: 445
   Info: SET @@SESSION.GTID_NEXT= 'ANONYMOUS'
********** 6. row **********
   Log_name: TP-bin.000105
        Pos: 445
 Event_type: Query
  Server_id: 1
End_log_pos: 730
       Info: use `test`; CREATE TABLE EMPLOYEE(
         ID INT NOT NULL,
         FIRST_NAME CHAR(20) NOT NULL,
         LAST_NAME CHAR(20),
         AGE INT,
         SEX CHAR(1),
         INCOME FLOAT,
         CONTACT INT
) /* xid=9 */
********** 7. row **********
   Log_name: TP-bin.000105
        Pos: 730
 Event_type: Anonymous_Gtid
  Server_id: 1
End_log_pos: 809
   Info: SET @@SESSION.GTID_NEXT= 'ANONYMOUS'
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .

IN 子句

使用 IN 子句,您可以顯示特定檔案中事件的詳細資訊。

SHOW BINLOG EVENTS IN TP-bin.000113';

輸出

以下是上述 MySQL 查詢的輸出:

Log_name Pos Event_type Server_id End_log_pos Info
TP-bin.000113 4 Format_desc 1 125 Server ver: 8.0.22, Binlog ver: 4
TP-bin.000113 125 Previous_gtids 1 156
TP-bin.000113 156 Stop 1 179

FROM 子句

FROM 子句用於顯示日誌中特定位置起的事件列表。

SHOW BINLOG EVENTS IN TP-bin.000111' FROM 1241 \G;

輸出

執行上述查詢後,將產生以下輸出:

********** 1. row **********
   Log_name: TP-bin.000111
        Pos: 1241
 Event_type: Anonymous_Gtid
  Server_id: 1
End_log_pos: 1320
Info: SET @@SESSION.GTID_NEXT= 'ANONYMOUS'
********** 2. row **********
   Log_name: TP-bin.000111
        Pos: 1320
 Event_type: Query
  Server_id: 1
End_log_pos: 1543
       Info: use `xo`; CREATE DEFINER=`root`@`localhost` PROCEDURE 
	         `sample4`()
BEGIN
      SELECT 'This is a sample procedure';
END /* xid=12 */
********** 3. row **********
   Log_name: TP-bin.000111
        Pos: 1543
 Event_type: Stop
  Server_id: 1
End_log_pos: 1566
       Info:
3 rows in set (0.00 sec)

LIMIT 子句

您可以使用 LIMIT 子句限制顯示日誌中的事件。

SHOW BINLOG EVENTS IN TP-bin.000113' LIMIT 2\G;

輸出

以下是上述查詢的輸出:

********** 1. row **********
   Log_name: TP-bin.000113
        Pos: 4
 Event_type: Format_desc
  Server_id: 1
End_log_pos: 125
       Info: Server ver: 8.0.22, Binlog ver: 4
********** 2. row **********
   Log_name: TP-bin.000113
        Pos: 125
 Event_type: Previous_gtids
  Server_id: 1
End_log_pos: 156
       Info:
2 rows in set (0.00 sec)
廣告