今回は、MySQLのバイナリログについてです。バイナリログは、ロールフォワードやレプリケーションの構築をするために使いますが、あまりバイナリログについて意識していなかったので調べたことを残します。環境CentOS7MySQL5.7バイナリログとはバイナリログとは、バイナリ形式(2進数)でテーブルやデータの更新操作のログが格納されたログファイルです。バイナリログの用途や特徴は、ざっくり以下の3点です。ロールフォワードや、レプリケーションに使われるバイナリログはデフォルトでは作成されないため、設定が必要になるサイズの上限を超えたりMySQLを再起動すると、バイナリログが新規作成されるロールフォワードや、レプリケーションに使われるロールフォワードとはロールフォワードとは、ログファイルに残っているチェックポイント後(最後にデータが書き込み処理が行われた時)の処理を再現し、障害直前の状態にまで戻すことができる機能のひとつです。ロールフォワードを行うには、バイナリログが必要になります。普段の運用では、cronでmysqldumpを動かすなど、定期的にフルバックアップを取得していなければいけません。レプリケーションとはデータの複製(レプリカ)を別のコンピュータ上に作成し、ネットワークを介してリアルタイムに情報の更新を反映させて常に内容を同期することです。レプリケーションの構築については、別記事で書きましたのでご確認頂ければと思います。レプリケーションの設定2019.2.24レプリケーションとは、データの複製(レプリカ)を別のコンピュータ上に作成し、ネットワークを介してリアルタイムに情報の更新を反映させて常に内容を同期することです。...バイナリログはデフォルトでは作成されないため、設定が必要になるバイナリログの作成方法バイナリログはデフォルトでは作成されないため、my.cnfにてバイナリログを有効にする設定をします。1.my.cnfの場所を確認します。この場合は、/etc/my.cnfです。~/.my.cnf2.viコマンドでmy.cnf(MySQLの設定ファイル)を編集します。/etc/my.cnf3.log-binとserver-idの設定をし、バイナリログを有効にします。この時にserver-idを付けないと、mysqlを再起動したときにエラーになります。server-idは、テキトーな値で問題ないです。[mysqld]log-bin=mysql-binserver-id=10014.mysqlを再起動します。CentOS7の場合は、systemctlを使います。mysqld.service5.バイナリログのファイルの存在を確認します。以下のコマンドを使うと、バイナリログ【mysql-bin.000001】が出力されているのが分かります。/var/lib/mysql/mysql-bin.indexバイナリログの中身を見るバイナリログの中身を見る場合は、ファイルの中身を確認するコマンド【cat】ではなく、rootユーザーで【mysqlbinlog】コマンドを使います。/var/lib/mysql/mysql-bin.000001root権限がないと以下のようなエラーが出ます。13)バイナリログの設定をした後に、テーブルを作成してデータをインサートすると、バイナリログ(mysql-bin.000001)が更新されます。サイズの上限を超えたりMySQLを再起動すると、バイナリログが新規作成されるバイナリログには、サイズ上限値(デフォルト1GB)があり、その上限値に達した時点で新たなログファイルが作成されます。サイズ上限値は、my.cnfのmax_binlog_sizeを指定することで変更が可能です。MySQLを再起動しても新たに作成されます。バイナリログが【mysql-bin.000001】だった場合、MySQLを再起動をすると【mysql-bin.000002】と次の番号にスイッチします。バイナリログの説明は、以上です。関連用語バイナリログについて調べている時に出てきた用語をメモします。ロールバックロールバックは、ロールフォワードと類似していますので、よく比較して説明をされることが多いようです。ここでは「ロールバックとロールフォワードの違い」について書きます。ロールバックトランザクション処理において、データの整合性が取れなくなるなどの障害が発生した場合に行います。実行した処理を取り消します。ロールフォワードデータベースが物理的に壊れたりした場合などに行います。障害が発生する前の状態に戻します。