MySQL データベースのバックアップ設定とリストア確認 〜 CentOS6

MySQL データベースのバックアップを自動で行う設定をして、バックアップからリストアができるか確認を行います。データベースを利用するサーバーの運用では、バックアップが自動で行われる環境を構築しておくことは必須であると思います。

スポンサーリンク

このエントリーは、CentOS 6.4 インストール~設定手順の目次 の一部です。

MySQL バックアップの方針

1. CentOS サーバー側(ローカルの同一マシン内)では、mysqldump によるシェルスクリプトを cron で定期実行して(午前3時) /var/backup/mysql 配下にバックアップ。データベース毎にバックアップします。

2. 手元のクライアント側の Mac にて、rsync によるシェルスクリプトを cron で定期実行して(午前5時)、CentOS サーバーの /var/backup/mysql 配下をクライアント側の Mac にダウンロードして保存します。

以上の方針で MySQL のバックアップを行います。cron 実行の時間はまあ適当に、都合に合わせて変更してください。

MySQL バックアップ用ユーザーを作成

MySQL バックアップ用の MySQL ユーザー:mysql_backup を追加する。MySQL に root でログイン。

ユーザー mysql_backup を作成して、mysqldump コマンドに必要な権限を付与。パスワードを作成して権限設定を反映させます。

作成したユーザーの確認。

権限の確認とデーターベースを確認して終了。

mysqldump コマンドを用いて MySQL データベースをバックアップ

MySQL のバックアップ用ディレクトリを作成して、mysqldump コマンドでバックアップを行います。ここで行うバックアップはローカルのサーバー機自身へのバックアップとなります。

以下の mysqldump コマンドの書式でバックアップをとります。

実際に、mysql データベースをバックアップしてみます。

Warning が出ましたが、一応以下のように sql の dump ファイルがバックアップとして作成されました。

削除しておきます。

mysqldump コマンドを使ったシェルスクリプトを作成

次にこの mysqldump コマンドを使ったシェルスクリプトを作成します。MySQLデータベース自動バックアップ運用(mysqlhotcopy) – CentOSで自宅サーバー構築 を参考にして修正したものです。

シェルスクリプトは以上。

パーミッション設定。

テスト実行して、バックアップファイルが作成されたのを確認。

cron に登録して1日1回、午前3時に定期実行します。

クライアント側で rsync でダウンロードしてバックアップ

クライアント側(Mac または CentOS)で rsync でダウンロードするスクリプトを作成します。以下の作業は、Mac にて行いました。

前もって、ディレクトリを作成して書き込めるようにしておきます。

ディレクトリの所有者を rsync の実行ユーザーに変更。

サーバーからダウンロードして、バックアップを行うシェルスクリプトを作成します。

シェルスクリプトは以上です。

パーミッション設定。

ダウンロードしてバックアップするテスト。

ダウンロードできたか確認。

続いて、クライアント側で rsync を用いたシェルスクリプトを自動実行するため cron を設定します。午前5時に1日1回実行。

Mac OS X Lion 10.7.5 の場合、crontab -e での設定は以下のファイルとなるようです。

以上で、いちおう MySQL のバックアップは設定完了です。クライアント側(Mac側)には1日1ファイルずつずっと溜まっていきますので、必要であれば世代管理をしたり、古いデータを削除、別のディスクに移すなどを行う必要があります。その場合は、ここで紹介したシェルスクリプトを少々修正する必要があります。

データベースのバックアップをテスト

サーバー機でバックアップからリストアまでを通して、テストを行なってみます。まずはバックアップ。

テスト用のデータベースを作成して試してみます。サーバー機で MySQL にログインします。

バックアップ実行。

バックアップが取れたか確認。

データベースを削除。

データベースのリストアをテスト

次にリストアを実行するテストを行います。特定のデータベースを mysqldump によるダンプファイルからリストアするには、まずリストアさせるデータベースを作成します。以下の手順で行います。

その後、リストアさせるには、mysql コマンドで行います。(※ mysqldump コマンドではありません。)

では、前節で取ったバックアップからリストアを実際に行なってみます。

リストアされた test データベースを確認。

テスト終了後、最後にテスト用データベースを削除します。

以上で、MySQL のバックアップとリストアの設定とテストは終了です。

スポンサーリンク
サーバ構築研究会の CentOS 本は、昔からお世話になっています。Linux の教科書は Linux の基本を学ぶのにおすすめです。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!