読者です 読者をやめる 読者になる 読者になる

aws memo

AWS関連の備忘録 (※本ブログの内容は個人的見解であり、所属組織及び企業の意見を代弁するものではありません。1年以上古いエントリは疑ってかかってください)

RDS: MySQL5.6 のDelayed Replication

RDS MySQLではデフォルトユーザにSUPER権限が付与されていない。5.6のReadReplica ( MySQL Slave)でも同様なので、レプリケーション周りの新機能が使えないことが多い。

 

MySQL 5.6では、Delayed Replication (遅延レプリケーション) 機能が追加されている

MySQL :: MySQL 5.6 Reference Manual :: 16.3.9 Delayed Replication

ある特定のSlaveだけReplicationの反映を任意の時間だけ遅らせる機能で、プログラムのバグやオペミスによって系全体が壊滅的な状況になるのを緩和するイメージ。参照用のSlaveではなく、バックアップ用のSlaveに設定しておくと便利そうな機能。

 MySQL Time Delayed Replication

MySQL :: MySQL 5.6 Replication - Enabling the Next Generation of Web & Cloud Services

 ただし、この設定には

CHANGE MASTER TO MASTER_DELAY=n;

を設定対象のSlaveで実行する必要があるが、冒頭で述べたようにRDSで払い出されるユーザにはSUPER権限が付与されていないため、このCHANGE MASTER TOコマンドやその前後に必要なSTART SLAVE, STOP SLAVE, RESET SLAVE を実行できない。

とはいえ、RDSでは任意の時刻の時点でRDSを復旧することが可能なPoint In TIme Recovery (PITR) があるので、大きなオペミスをした場合などはPITRで代用できると思われる。

 Restoring a DB Instance to a Specified Time - Amazon Relational Database Service