====== MySQLDBバックアップ&リストア ====== ここではZoneExpress環境での、MySQLデータベースのバックアップ方法について記載します。 ===== ■コマンドラインからのMySQLDBのバックアップ ===== ==== バックアップデータ保存ディレクトリの作成 ==== ここでは、"/var/tmp/mysql_bkup配下"にバックアップデータを保存します。 $ mkdir -p /var/tmp/mysql_bkup $ cd /var/tmp/mysql_bkup ==== バックアップコマンドの実行 ==== ここでは、"DATABASE.sql"という名前でバックアップデータを保存します。 $ mysqldump -u -p --opt <データベース名> > DATABASE.sql 各オプションの説明 |--u|MySQLユーザ名を指定するオプション| |--p|MySQLパスワードを指定するオプション| |----opt|ダンプを最適化するオプション| ,は環境によって異なります。 <データベース名>にはバックアップを実施するデータベース名を入力ください。 === ※(参考)コマンド実行例 === testDBをDATABASE.sqlという名前で保存します。 $ mysqldump -u root -p**** --opt testDB > DATABASE.sql すべてのMySQLDBをDATABASE.sqlという名前で保存し、.gz形式に圧縮します。 $ mysqldump -u root -p**** --opt --all-databases | gzip > DATABASE.sql.gz \\ ===== ■Webminを利用したバックアップ ===== ==== 手動バックアップの実行 ==== 下記URLへアクセスし、Webminへログインしてください。 |https://△△△:10010| httpsであることに注意してください。 メニュー左上からWebminを選択します。 左メニューのサーバのプルダウンメニューから MySQLデータベースサーバを選択します。 ページ最下部よりBackup Databaseを選択します。 メニュー上部のBackup destinationを設定します。 Backup to directoryが空欄だとバックアップデータは"/"直下に保存されます。 手順内では"/var/tmp/mysql_bkup配下"にバックアップデータを保存しています。 ^^{{:db:mysql1.jpg|Webmin画面参考}}^^ メニュー中部のOther backup optionsの "Compression format"から保存形式をgz,bzip2形式から選べます。 ページ最下部の今すぐバックアップを選択すると実行されます。 \\ ==== バックアップの自動実行 ==== Backup Scheduleを設定しておくと設定時間にバックアップが自動実行されます。 下記は、毎週水曜3時30分にバックアップデータを/var/tmp/mysql_bkupに保存する場合の設定例です。 ^^{{:db:mysql2.jpg|Webmin画面参考}}^^ "バックアップスケジュールを実行可能にしますか?" で"はい"を選択し ページ最下部の"保存"を選択して完了です。 \\ ===== ■コマンドからのDBバックアップのリストア(復旧) ===== ==== バックアップデータの準備 ==== バックアップデータが保存されているディレクトリへ移動します。 $ cd /var/tmp/mysql_bkup ".gz"もしくは".bz2"で保存されている場合は解凍する。 ※ファイル拡張子により、コマンドが異なります。 ".gz"の場合。 $ sudo gunzip /var/tmp/mysql_bkup/<バックアップデータ名> ".bz2"の場合。 $ sudo bzip2 -d /var/tmp/mysql_bkup/<バックアップデータ名> ==== リストアコマンドの実行 ==== $ mysql -u -p <データベース名> < DATABASE.sql 各オプションの説明 |--u|MySQLユーザ名を指定するオプション| |--p|MySQLパスワードを指定するオプション| ,は環境によって異なります。 <データベース名>にはリストアを実施するデータベース名を入力ください。 === ※(参考)コマンド実行例 === testDBをDATABASE.sqlという名前で保存したバックアップデータを使用し、リストアします。 $ mysql -u root -p**** testDB < DATABASE.sql すべてのMySQLDBをDATABASE.sqlという名前で保存したバックアップデータを使用し、リストアします。 $ mysql -u root -p**** < DATABASE.sql