

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 啟用 MariaDB 二進位日誌註釋
<a name="USER_LogAccess.MariaDB.BinarylogAnnotation"></a>

在 MariaDB 資料庫執行個體中，您可以使用會導致行事件之含有 SQL 查詢副本的 `Annotate_rows` 事件來對行事件做註釋。此方法提供類似的功能，可啟用 RDS for MySQL 資料庫執行個體上的 `binlog_rows_query_log_events` 參數。

您可以建立自訂參數群組，並將 `binlog_annotate_row_events` 參數設為 **1**，以全域啟用二進位日誌註釋。您也可以透過呼叫 `SET SESSION binlog_annotate_row_events = 1`，於工作階段層級啟用註釋。若已啟用二進位日誌，請使用 `replicate_annotate_row_events` 將二進位日誌註釋複寫至複本執行個體。不需要特殊權限即可使用這些設定。

下列為 MariaDB 中行形式交易的範例。將交易隔離等級設定為專供讀取時，將觸發使用行形式日誌。

```
CREATE DATABASE IF NOT EXISTS test;
USE test;
CREATE TABLE square(x INT PRIMARY KEY, y INT NOT NULL) ENGINE = InnoDB;
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
BEGIN
INSERT INTO square(x, y) VALUES(5, 5 * 5);
COMMIT;
```

若沒有註釋，交易的二進位日誌項目將如下所示：

```
BEGIN
/*!*/;
# at 1163
# at 1209
#150922  7:55:57 server id 1855786460  end_log_pos 1209         Table_map: `test`.`square` mapped to number 76
#150922  7:55:57 server id 1855786460  end_log_pos 1247         Write_rows: table id 76 flags: STMT_END_F
### INSERT INTO `test`.`square`
### SET
###   @1=5
###   @2=25
# at 1247
#150922  7:56:01 server id 1855786460  end_log_pos 1274         Xid = 62
COMMIT/*!*/;
```

下列陳述式為此相同交易啟用工作階段等級的註釋，並在完成交易後停用：

```
CREATE DATABASE IF NOT EXISTS test;
USE test;
CREATE TABLE square(x INT PRIMARY KEY, y INT NOT NULL) ENGINE = InnoDB;
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
SET SESSION binlog_annotate_row_events = 1;
BEGIN;
INSERT INTO square(x, y) VALUES(5, 5 * 5);
COMMIT;
SET SESSION binlog_annotate_row_events = 0;
```

若有註釋，交易的二進位日誌項目將如下所示：

```
BEGIN
/*!*/;
# at 423
# at 483
# at 529
#150922  8:04:24 server id 1855786460  end_log_pos 483  Annotate_rows:
#Q> INSERT INTO square(x, y) VALUES(5, 5 * 5)
#150922  8:04:24 server id 1855786460  end_log_pos 529  Table_map: `test`.`square` mapped to number 76
#150922  8:04:24 server id 1855786460  end_log_pos 567  Write_rows: table id 76 flags: STMT_END_F
### INSERT INTO `test`.`square`
### SET
###   @1=5
###   @2=25
# at 567
#150922  8:04:26 server id 1855786460  end_log_pos 594  Xid = 88
COMMIT/*!*/;
```