Fujitsu Cloud Direct ブログ

初心者エンジニア向け技術ブログ

ニフクラRDB(MySQL)のバイナリログの参照方法と取得方法

この記事は、ニフクラブログで2022-03-07に公開された記事を移転したものです。

こんにちは、CRE部 技術支援チームです。

MySQLは、オープンソースのリレーショナルデータベース管理システム(RDBMS)として幅広く利用されていますが、ニフクラRDBでもMySQL DBエンジンを利用可能です。

MySQLには、バイナリログというログの出力機能があります。 バイナリログにはテーブル作成操作やテーブルデータ変更などクエリが実行された操作イベントが記録されます。 記録された情報はレプリケーションやデータのリカバリーに利用されます。

今回はニフクラRDB(MySQL)のバイナリログ参照方法とバイナリログをファイルに出力する取得方法を紹介します。

前提条件

本ブログ記事は、以下の前提知識がある方を想定しています。

  • ニフクラの基本的なコントロールパネルの操作、サービスを利用する知識
    (サーバー作成、ネットワーク構築など)
  • MySQLの基本的な操作、知識
  • Linuxサーバーの基本的な操作、知識

検証概要

接続クライアント用サーバーでmysqlbinlogコマンドを実行して、RDBサーバーのバイナリログを出力ファイルとして保管します。

利用リソース

リソース 数量
ルーター 1
プライベートLAN 1
RDB(RDBMS:MySQL 5.7.15) 1
RDB接続用クライアントサーバー(Red Hat Enterprise Linux 8.4) 1

構成パターン

検証実施前準備

環境構築

1.ルーターの作成
グローバルネットワークとプライベートLAN間を接続するためにルーターを作成します。
作成方法の詳細は以下をご参照ください。
クラウドヘルプ(ルーターの作成)

2.プライベートLANの作成
今回はIPアドレス帯を「172.16.1.0/24」としています。
作成方法の詳細は以下をご参照ください。
クラウドヘルプ(プライベートLAN作成)

3.仮想サーバーの作成

リソース グローバル IP サーバー名
Red Hat Enterprise Linux 8.4 172.16.1.1 BinLogTest01

今回はRed Hat Enterprise Linux 8.4を使用します。
作成方法の詳細は以下をご参照ください。
クラウドヘルプ(SSHキー)
クラウドヘルプ(サーバーの作成)
クラウドヘルプ(ファイアウォールグループの新規作成)

4.RDBの作成

リソース プライベート IP サーバー名 DB名 冗長化 自動バックアップデータ
MySQL 5.7.15 172.16.1.101 binlog-testdb-srv BINLOG_DB 優先 YES

今回はMySQL 5.7.15を使用します。
バイナリログを出力するために下記の設定をします。

  • 冗長化:優先

  • 自動バックアップデータ:YES

作成方法の詳細は以下をご参照ください。
クラウドヘルプ(RDB作成)

MySQLクライアント導入

RDBサーバーに接続するためにMySQLクライアントをインストールします。

1.以下のコマンドでMySQLクライアントのリポジトリ(https://~以降)をインストールします。
指定するリポジトリについては対象OSをMySQLのダウンロードサイトを参照して指定

dnf localinstall http://dev.mysql.com/get/mysql80-community-release-el8-3.noarch.rpm

2.途中以下のメッセージが表示されたら"y"を入力します。

Is this ok [y/N]: y

3.完了のメッセージが表示されます。

Complete!

4.以下のコマンドを実行してクライアントパッケージを確認します。

dnf search mysql-community-client

5."mysql-community-client"等のパッケージが表示されていることを確認します。

Last metadata expiration check: 0:05:55 ago on Fri 18 Feb 2022 11:12:55 AM JST.
================= Name Exactly Matched: mysql-community-client =================
mysql-community-client.x86_64 : MySQL database client applications and tools
================ Name & Summary Matched: mysql-community-client ================
mysql-community-client-debuginfo.x86_64 : Debug information for package
                                        : mysql-community-client
mysql-community-client-plugins-debuginfo.x86_64 : Debug information for package
                                                : mysql-community-client-plugins
===================== Name Matched: mysql-community-client =====================
mysql-community-client-plugins.x86_64 : Shared plugins for MySQL client
                                      : applications

6.以下のコマンドを実行してクライアントパッケージをインストールします。

dnf install -y mysql-community-client

7.完了のメッセージが表示されます。

Complete!

8.以下のコマンドでバージョンを確認します。

mysql --version

9.以下のメッセージが表示されたらクライアントのインストールは完了です。

mysql  Ver 8.0.28 for Linux on x86_64 (MySQL Community Server - GPL)

RDB接続確認

1.以下のコマンドでRDBへ接続します。

mysql --host=RDBのIPアドレス --user=RDB管理者ID --password DB名 --ssl-mode=DISABLED

2.コマンドを実行します。パスワードにRDB管理者用パスワードを入力します。

[root@localhost work]# mysql --host=172.16.1.101 --user=ユーザ名 --password BINLOG_DB --ssl-mode=DISABLED
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 19437
Server version: 5.7.15-log MySQL Community Server (GPL)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

3.RDBの接続が確認できました。

バイナリログ出力確認

1.以下のコマンドでバイナリログ一覧を表示します。

show binary logs;

2.コマンドを実行します。

mysql>show binary logs;
+----------------------------+-----------+
| Log_name                   | File_size |
+----------------------------+-----------+
| mysql-bin-changelog.004297 |       355 |
| mysql-bin-changelog.004298 |       355 |
| mysql-bin-changelog.004299 |       355 |
| mysql-bin-changelog.004300 |       355 |
| mysql-bin-changelog.004301 |       555 |
| mysql-bin-changelog.004302 |       355 |
| mysql-bin-changelog.004303 |       355 |
| mysql-bin-changelog.004304 |       355 |
| mysql-bin-changelog.004305 |       355 |
| mysql-bin-changelog.004306 |       355 |
| mysql-bin-changelog.004307 |       298 |
+----------------------------+-----------+
11 rows in set (0.00 sec)

3.バイナリログの出力が確認できました。

検証実施

バイナリログの参照

1.以下のmysqlbinlogコマンドでRDB上のバイナリログを参照します。

mysqlbinlog --ssl-mode=DISABLED --read-from-remote-server --host=RDBのIPアドレス  --user=RDB管理者ID --password  バイナリログ名

2.mysqlに接続しないで、クライアントサーバー上でコマンドを実行します。
バイナリログ名には「mysql-bin-changelog.004300」を指定します。
パスワードにRDB管理者用パスワードを入力するとバイナリログの内容が出力されます。

[root@localhost ~]# mysqlbinlog --ssl-mode=DISABLED --read-from-remote-server --host=172.16.1.101 --user=admin --password mysql-bin-changelog.004300
Enter password:
# The proper term is pseudo_replica_mode, but we use this compatibility alias
# to make the statement usable on server versions 8.0.24 and older.
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;

出力内容詳細

[root@localhost ~]# mysqlbinlog --ssl-mode=DISABLED --read-from-remote-server --host=172.16.1.101 --user=admin --password mysql-bin-changelog.004300
Enter password:
# The proper term is pseudo_replica_mode, but we use this compatibility alias
# to make the statement usable on server versions 8.0.24 and older.
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#220126 16:40:05 server id 727351350  end_log_pos 123 CRC32 0x925084e9  Start: binlog v 4, server v 5.7.15-log created 220126 16:40:05
BINLOG '
1frwYQ82gFordwAAAHsAAAAAAAQANS43LjE1LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AemEUJI=
'/*!*/;
# at 123
#220126 16:40:05 server id 727351350  end_log_pos 154 CRC32 0x31e166e7  Previous-GTIDs
# [empty]
# at 154
#220126 16:40:47 server id 727351350  end_log_pos 219 CRC32 0xd9d437b8  Anonymous_GTID  last_committed=0        sequence_number=1       rbr_only=no     original_committed_timestamp=0  immediate_commit_timestamp=0    transaction_length=0
# original_commit_timestamp=0 (1970-01-01 09:00:00.000000 JST)
# immediate_commit_timestamp=0 (1970-01-01 09:00:00.000000 JST)
/*!80001 SET @@session.original_commit_timestamp=0*//*!*/;
/*!80014 SET @@session.original_server_version=0*//*!*/;
/*!80014 SET @@session.immediate_server_version=0*//*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 219
#220126 16:40:47 server id 727351350  end_log_pos 298 CRC32 0x11ff2275  Query   thread_id=19519 exec_time=0     error_code=0
SET TIMESTAMP=1643182847/*!*/;
SET @@session.pseudo_thread_id=19519/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1073741824/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C latin1 *//*!*/;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=33/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
FLUSH error LOGS
/*!*/;
# at 298
#220126 16:45:05 server id 727351350  end_log_pos 355 CRC32 0xa9655fda  Rotate to mysql-bin-changelog.002056  pos: 4
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

3.DBを操作して、その内容がバイナリログに記録されることを確認します。mysqlに接続してInsertを実行します。

mysql> insert into user values ('001', 'USER_001');
Query OK, 1 row affected (0.01 sec)

mysql> insert into user values ('002', 'USER_002');
Query OK, 1 row affected (0.01 sec)

mysql>  select * from user;
+------+----------+
| id   | name     |
+------+----------+
| 001  | USER_001 |
| 002  | USER_002 |
+------+----------+
2 rows in set (0.00 sec)

mysql> show binary logs;
+----------------------------+-----------+
| Log_name                   | File_size |
+----------------------------+-----------+
| mysql-bin-changelog.004302 |       355 |
| mysql-bin-changelog.004303 |       355 |
| mysql-bin-changelog.004304 |       355 |
| mysql-bin-changelog.004305 |       355 |
| mysql-bin-changelog.004306 |       355 |
| mysql-bin-changelog.004307 |       355 |
| mysql-bin-changelog.004308 |       355 |
| mysql-bin-changelog.004309 |       355 |
| mysql-bin-changelog.004310 |       355 |
| mysql-bin-changelog.004311 |      1264 |
| mysql-bin-changelog.004312 |       778 |
+----------------------------+-----------+
11 rows in set (0.00 sec)

4.DB操作直後の最終のバイナリログ「mysql-bin-changelog.004312」をmysqlbinlog コマンドで指定します。
パスワードにRDB管理者用パスワードを入力するとバイナリログの内容が出力されます。

[root@localhost ~]# mysqlbinlog --ssl-mode=DISABLED --read-from-remote-server --host=172.16.1.101 --user=RDB管理者ID --password  mysql-bin-changelog.004312
Enter password:
# The proper term is pseudo_replica_mode, but we use this compatibility alias
# to make the statement usable on server versions 8.0.24 and older.
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;

出力内容詳細

[root@localhost ~]# mysqlbinlog --ssl-mode=DISABLED --read-from-remote-server --host=172.16.1.101 --user=RDB管理者ID --password  mysql-bin-changelog.004312
Enter password:
# The proper term is pseudo_replica_mode, but we use this compatibility alias
# to make the statement usable on server versions 8.0.24 and older.
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#220218 14:20:09 server id 903810333  end_log_pos 123 CRC32 0x15141011  Start: binlog v 4, server v 5.7.15-log created 220218 14:20:09
BINLOG '
iSwPYg8dDd81dwAAAHsAAAAAAAQANS43LjE1LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AREQFBU=
'/*!*/;
# at 123
#220218 14:20:09 server id 903810333  end_log_pos 154 CRC32 0x7c9f4096  Previous-GTIDs
# [empty]
# at 154
#220218 14:20:31 server id 903810333  end_log_pos 219 CRC32 0x129a5959  Anonymous_GTID  last_committed=0        sequence_number=1       rbr_only=no     original_committed_timestamp=0  immediate_commit_timestamp=0    transaction_length=0
# original_commit_timestamp=0 (1970-01-01 09:00:00.000000 JST)
# immediate_commit_timestamp=0 (1970-01-01 09:00:00.000000 JST)
/*!80001 SET @@session.original_commit_timestamp=0*//*!*/;
/*!80014 SET @@session.original_server_version=0*//*!*/;
/*!80014 SET @@session.immediate_server_version=0*//*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 219
#220218 14:20:31 server id 903810333  end_log_pos 308 CRC32 0x2e44a881  Query   thread_id=40956 exec_time=0     error_code=0
SET TIMESTAMP=1645161631/*!*/;
SET @@session.pseudo_thread_id=40956/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1073741824/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8mb3 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
/*!*/;
# at 308
#220218 14:20:31 server id 903810333  end_log_pos 435 CRC32 0x45245a94  Query   thread_id=40956 exec_time=0     error_code=0
use `BINLOG_DB`/*!*/;
SET TIMESTAMP=1645161631/*!*/;
insert into user values ('001', 'USER_001')
/*!*/;
# at 435
#220218 14:20:31 server id 903810333  end_log_pos 466 CRC32 0x220b731f  Xid = 101346
COMMIT/*!*/;
# at 466
#220218 14:20:41 server id 903810333  end_log_pos 531 CRC32 0xbc694d05  Anonymous_GTID  last_committed=1        sequence_number=2       rbr_only=no     original_committed_timestamp=0  immediate_commit_timestamp=0    transaction_length=0
# original_commit_timestamp=0 (1970-01-01 09:00:00.000000 JST)
# immediate_commit_timestamp=0 (1970-01-01 09:00:00.000000 JST)
/*!80001 SET @@session.original_commit_timestamp=0*//*!*/;
/*!80014 SET @@session.original_server_version=0*//*!*/;
/*!80014 SET @@session.immediate_server_version=0*//*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 531
#220218 14:20:41 server id 903810333  end_log_pos 620 CRC32 0x17b4be9c  Query   thread_id=40956 exec_time=0     error_code=0
SET TIMESTAMP=1645161641/*!*/;
BEGIN
/*!*/;
# at 620
#220218 14:20:41 server id 903810333  end_log_pos 747 CRC32 0x2d45f138  Query   thread_id=40956 exec_time=0     error_code=0
SET TIMESTAMP=1645161641/*!*/;
insert into user values ('002', 'USER_002')
/*!*/;
# at 747
#220218 14:20:41 server id 903810333  end_log_pos 778 CRC32 0x47185cbb  Xid = 101347
COMMIT/*!*/;
# at 778
#220218 14:21:07 server id 903810333  end_log_pos 843 CRC32 0xb4601d18  Anonymous_GTID  last_committed=2        sequence_number=3       rbr_only=no     original_committed_timestamp=0  immediate_commit_timestamp=0    transaction_length=0
# original_commit_timestamp=0 (1970-01-01 09:00:00.000000 JST)
# immediate_commit_timestamp=0 (1970-01-01 09:00:00.000000 JST)
/*!80001 SET @@session.original_commit_timestamp=0*//*!*/;
/*!80014 SET @@session.original_server_version=0*//*!*/;
/*!80014 SET @@session.immediate_server_version=0*//*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 843
#220218 14:21:07 server id 903810333  end_log_pos 922 CRC32 0x7c35ddb6  Query   thread_id=40958 exec_time=0     error_code=0
SET TIMESTAMP=1645161667/*!*/;
/*!\C latin1 *//*!*/;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=33/*!*/;
FLUSH error LOGS
/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

5.以下はバイナリログからの抜粋です。Insertの内容が記録されている事が確認できます。

# at 308
#220218 14:20:31 server id 903810333  end_log_pos 435 CRC32 0x45245a94  Query   thread_id=40956 exec_time=0     error_code=0
use `BINLOG_DB`/*!*/;
SET TIMESTAMP=1645161631/*!*/;
insert into user values ('001', 'USER_001')
/*!*/;
# at 435
#220218 14:20:31 server id 903810333  end_log_pos 466 CRC32 0x220b731f  Xid = 101346
COMMIT/*!*/;
# at 620
#220218 14:20:41 server id 903810333  end_log_pos 747 CRC32 0x2d45f138  Query   thread_id=40956 exec_time=0     error_code=0
SET TIMESTAMP=1645161641/*!*/;
insert into user values ('002', 'USER_002')
/*!*/;
# at 747
#220218 14:20:41 server id 903810333  end_log_pos 778 CRC32 0x47185cbb  Xid = 101347
COMMIT/*!*/;

バイナリログの取得

1.mysqlbinlogコマンドにファイル出力するオプションを設定して、バイナリログの内容をクライアント用サーバーで保管します。

mysqlbinlog --ssl-mode=DISABLED --read-from-remote-server --host=RDBのIPアドレス --user=RDB管理者ID --password --result-file=出力先ディレクトリ/ファイル名  バイナリログ名

2.コマンドを実行します。バイナリログ名には「mysql-bin-changelog.004312」を指定します。
パスワードにRDB管理者用パスワードを入力するとバイナリログの内容が「力先ディレクトリ/ファイル名」に出力されます。

[root@localhost ~]# mysqlbinlog --ssl-mode=DISABLED --read-from-remote-server --host=172.16.1.101 --user=admin --password  --result-file=/root/work/mysql-bin-changelog.004312  mysql-bin-changelog.004312
Enter password:

3.実行後、出力指定したディレクトリに「mysql-bin-changelog.004312」のファイルが作成されています。

[root@localhost work]# pwd
/root/work
[root@localhost work]# ls -l
total 8
-rw-r-----. 1 root root 4426 Feb 18 14:25 mysql-bin-changelog.004312
[root@localhost work]#

4.cat コマンドを実行してファイル内容を参照します。バイナリログの内容が出力されている事が確認できます。

[root@localhost work]# cat mysql-bin-changelog.004312
# The proper term is pseudo_replica_mode, but we use this compatibility alias
# to make the statement usable on server versions 8.0.24 and older.
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;

出力内容詳細

[root@localhost work]# cat mysql-bin-changelog.004312
# The proper term is pseudo_replica_mode, but we use this compatibility alias
# to make the statement usable on server versions 8.0.24 and older.
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#220218 14:20:09 server id 903810333  end_log_pos 123 CRC32 0x15141011  Start: binlog v 4, server v 5.7.15-log created 220218 14:20:09
BINLOG '
iSwPYg8dDd81dwAAAHsAAAAAAAQANS43LjE1LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AREQFBU=
'/*!*/;
# at 123
#220218 14:20:09 server id 903810333  end_log_pos 154 CRC32 0x7c9f4096  Previous-GTIDs
# [empty]
# at 154
#220218 14:20:31 server id 903810333  end_log_pos 219 CRC32 0x129a5959  Anonymous_GTID  last_committed=0        sequence_number=1       rbr_only=no     original_committed_timestamp=0  immediate_commit_timestamp=0    transaction_length=0
# original_commit_timestamp=0 (1970-01-01 09:00:00.000000 JST)
# immediate_commit_timestamp=0 (1970-01-01 09:00:00.000000 JST)
/*!80001 SET @@session.original_commit_timestamp=0*//*!*/;
/*!80014 SET @@session.original_server_version=0*//*!*/;
/*!80014 SET @@session.immediate_server_version=0*//*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 219
#220218 14:20:31 server id 903810333  end_log_pos 308 CRC32 0x2e44a881  Query   thread_id=40956 exec_time=0     error_code=0
SET TIMESTAMP=1645161631/*!*/;
SET @@session.pseudo_thread_id=40956/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1073741824/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8mb3 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
/*!*/;
# at 308
#220218 14:20:31 server id 903810333  end_log_pos 435 CRC32 0x45245a94  Query   thread_id=40956 exec_time=0     error_code=0
use `BINLOG_DB`/*!*/;
SET TIMESTAMP=1645161631/*!*/;
insert into user values ('001', 'USER_001')
/*!*/;
# at 435
#220218 14:20:31 server id 903810333  end_log_pos 466 CRC32 0x220b731f  Xid = 101346
COMMIT/*!*/;
# at 466
#220218 14:20:41 server id 903810333  end_log_pos 531 CRC32 0xbc694d05  Anonymous_GTID  last_committed=1        sequence_number=2       rbr_only=no     original_committed_timestamp=0  immediate_commit_timestamp=0    transaction_length=0
# original_commit_timestamp=0 (1970-01-01 09:00:00.000000 JST)
# immediate_commit_timestamp=0 (1970-01-01 09:00:00.000000 JST)
/*!80001 SET @@session.original_commit_timestamp=0*//*!*/;
/*!80014 SET @@session.original_server_version=0*//*!*/;
/*!80014 SET @@session.immediate_server_version=0*//*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 531
#220218 14:20:41 server id 903810333  end_log_pos 620 CRC32 0x17b4be9c  Query   thread_id=40956 exec_time=0     error_code=0
SET TIMESTAMP=1645161641/*!*/;
BEGIN
/*!*/;
# at 620
#220218 14:20:41 server id 903810333  end_log_pos 747 CRC32 0x2d45f138  Query   thread_id=40956 exec_time=0     error_code=0
SET TIMESTAMP=1645161641/*!*/;
insert into user values ('002', 'USER_002')
/*!*/;
# at 747
#220218 14:20:41 server id 903810333  end_log_pos 778 CRC32 0x47185cbb  Xid = 101347
COMMIT/*!*/;
# at 778
#220218 14:21:07 server id 903810333  end_log_pos 843 CRC32 0xb4601d18  Anonymous_GTID  last_committed=2        sequence_number=3       rbr_only=no     original_committed_timestamp=0  immediate_commit_timestamp=0    transaction_length=0
# original_commit_timestamp=0 (1970-01-01 09:00:00.000000 JST)
# immediate_commit_timestamp=0 (1970-01-01 09:00:00.000000 JST)
/*!80001 SET @@session.original_commit_timestamp=0*//*!*/;
/*!80014 SET @@session.original_server_version=0*//*!*/;
/*!80014 SET @@session.immediate_server_version=0*//*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 843
#220218 14:21:07 server id 903810333  end_log_pos 922 CRC32 0x7c35ddb6  Query   thread_id=40958 exec_time=0     error_code=0
SET TIMESTAMP=1645161667/*!*/;
/*!\C latin1 *//*!*/;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=33/*!*/;
FLUSH error LOGS
/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

まとめ

今回ニフクラRDB(MySQL)のバイナリログの参照方法と取得方法をご紹介しました。MySQLクライアントから容易に参照、取得することがご理解いただけたかと思います。

バイナリログの使用用途ついては、データ復旧などがありますが、別の機会にご紹介させていただきたいと思います。

ここまで読んでいただきありがとうございました!