

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengaktifkan anotasi log biner MariaDB
<a name="USER_LogAccess.MariaDB.BinarylogAnnotation"></a>

Dalam instance MariaDB, Anda dapat menggunakan acara `Annotate_rows` tersebut untuk membuat anotasi peristiwa baris dengan salinan kueri yang menyebabkan peristiwa baris. SQL Pendekatan ini menyediakan fungsionalitas serupa untuk mengaktifkan `binlog_rows_query_log_events` parameter pada instance RDS for My SQL DB.

Anda dapat mengaktifkan anotasi log biner secara global dengan membuat grup parameter kustom dan mengatur parameter `binlog_annotate_row_events` ke **1**. Anda juga dapat mengaktifkan anotasi pada tingkat sesi, dengan memanggil `SET SESSION binlog_annotate_row_events = 1`. Gunakan `replicate_annotate_row_events` untuk mereplikasi anotasi log biner instans replika jika pencatatan log biner diaktifkan pada instans tersebut. Tidak ada hak istimewa khusus yang diperlukan untuk menggunakan pengaturan ini.

Berikut ini adalah contoh dari transaksi berbasis baris di MariaDB. Penggunaan pencatatan log berbasis baris dipicu dengan mengatur tingkat isolasi transaksi ke read-committed.

```
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;
```

Tanpa anotasi, entri log biner untuk transaksi terlihat seperti berikut:

```
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/*!*/;
```

Pernyataan berikut memungkinkan anotasi tingkat sesi untuk transaksi yang sama ini, dan menonaktifkannya setelah melakukan transaksi:

```
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;
```

Dengan anotasi, entri log biner untuk transaksi terlihat seperti berikut:

```
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/*!*/;
```