MySQLリプレースツール

MySQLのリプレースツールです。5.5~5.6系、或いは、MariaDBから5.7系へのリプレースを想定してシェルを作成しました。

リプレースなので、バックアップとリストアの2種類の運用を想定しています。バックアップとリストアそれぞれでシェルを作成するのではなく、1つのシェルで2つの機能を賄うように設計しました。なので、記事タイトルにあるとおり、コマンドツールとさせて頂いています。

MySQLに限った話ではないと思いますが、気を付けた点としては、以下の3ポイントです。

  • 「InnoDBテーブル」はトランザクションが有効(※現行システムはほぼコッチ)なため、「–single-transaction」でダンプ。「MyISAMテーブル」はトランザクション不可のため、「–lock-tables」でダンプ。
  • 文字コードを「binary」でダンプし、「iconv」コマンドで「utf8」に変換する。
  • ダンプファイルのSQL文を精査し、5.7系で使用できるSQL文にコンバートする。

シェル部品は、引数パーサー、関数の2本構成です。引数パーサー+α(ヘルプメニュー)は流用可能を目指して作成してみました。

  • 引数パーサー

  • 関数

IFS変更、サブシェル、配列等、保守コマンドではあまり好まれないロジックを盛り込んでますが、実際の作業は、このシェルをインプットにgolangでフォークして本当の意味でコマンド化したものを用意して挑む予定です。(完成は早くて2週間後の予定…。)

スポンサーリンク
勉強wikiの下部広告
  • このエントリーをはてなブックマークに追加
スポンサーリンク
勉強wikiの下部広告

コメントをどうぞ

メールアドレスが公開されることはありません。

CAPTCHA