hoomin.kani

KANISAN WEB

インフラ・サーバーサイドを頑張るカニが学んだあれこれ。

【簡単】RDSのバイナリログ(binlog)保存期間を設定する

f:id:hoominkani:20190818174645j:plain

昨今のバックアップ事情

今回はRDSのバイナリログ保存期間を変更する方法を紹介します。

前提として、RDS for MySQLではトランザクションログがデフォルトでS3に保存されており(5分間隔)、

エンジニアは管理画面から復元したい時間を指定するだけでデータのリストアを行うことができます。

AWSが提供しているこちらの機能を使う方がオペミスも少なく安心安全なのですが、案件によってはバイナリログからの手動バックアップを求められることもあります。

そんなケースにも対応できるよう、事前にバックアップ期間を指定しておくのが今回の目的です。

やることはたった一つ

まずは現在の設定を確認してみましょう。

MySQLでこちらのコマンドを打ち、設定の確認を行います。

call mysql.rds_show_configuration;

するとこんな内容が返ってきます。

name value description
binlog retention hours null binlog retention hours specifies the duration in hours before binary logs are automatically deleted.


バイナリログの保存期間はデフォルトでnull、つまり保存しない設定になっているので、こちらを変更し、ログを24時間保存するようにします。

call mysql.rds_set_configuration('binlog retention hours', 24);

24の部分を72に変更すれば、3日間のバイナリログを変更することもできます。

変更後の注意

当たり前ではありますが、バイナリログを変更するとDBへの負荷も高まります。

設定後はDBのモニタリングを怠らないようにしましょう。