※ Ysoi はこの項目の検証はVine Linux4.1標準のMySQL5.0系でしか行っていませんので、それ以前のバージョンで行う場合は
  テスト用にDBを作成して、検証を行ったうえでバックアップを行ってください。

DBの文字コードを無変換で取り出す様に設定する

ここではmysqldumpを行う際に--default-character-set=binaryと打たなくていいように設定ファイルで設定しておく


# vi /etc/my.cnf ← 設定ファイル編集
 i キー(入力モード)

[mysqldump] ← mysqldumpの項目に下記を追記する

default-character-set = binary ← 追記

記載したら Esc キー(コマンドモード):wqで保存

# /etc/init.d/mysql restart ← 設定後はMySQLを再起動

DBを手動でバックアップと復元


 xxxxxの部分はMySQLのrootのパスワード
 dbname の部分はDB名

全DBのバックアップを行う場合
# mysqldump -u root -pxxxxx --all-database > mysql.sql

全DBの復元を行う場合
# mysql -u root -pxxxxx < mysql.sql

全バックアップファイルから個別のDBを復元する場合
# mysql -u root -pxxxxx dbname < mysql.sql



個別でDBのバックアップを行う場合
# mysqldump -u root -pxxxxx dbname > dbname.sql

個別のバックアップファイルから個別DBを復元する場合
# mysql -u root -pxxxxx dbname < dbname.sql

DBのみ自動でバックアップ

※ サーバーのバックアップと一緒にDBのバックアップを行いたい場合は、次項目を参照して下さい。


# mkdir /var/mysql_bkup ← バックアップ先ディレクトリ作製

# vi mysql_bkup.sh ← バックアップスクリプトを作成
 i キー(入力モード)

#!/bin/sh

LIST="/root/mysql.sql" ← バックアップリストに /root/mysql.sql を指定
ROOTPASS="xxxxxx" ← xxxxxの部分にMySQLの root のパスワードを指定

mysqldump -u root -p$ROOTPASS --all-database > mysql.sql
mkdir -p /var/mysql_bkup
tar czvfP /var/mysql_bkup/mysql.tar.gz $LIST > /var/log/mysql_bkup.log
chmod 600 /var/log/mysql_bkup.log

記載したら Esc キー(コマンドモード):wqで保存


# chmod +x mysql_bkup.sh ←バックアップスクリプトに実行権限を付加


バックアップのテスト

# ./mysql_bkup.sh ← スクリプトを実行

# ls -l /var/mysql_bkup/ ← バックアップファイルの確認
-rw-r--r-- 1 root root 111021 9月14日 16:24 mysql.tar.gz ← これがあればOK


Cronに登録
# crontab -e ←Cronの編集
移動したら i キー(入力モード)

00 03 * * * /root/mysql_bkup.sh ← 例ではスクリプトが毎日03時に実行される

記載したら Esc キー(コマンドモード):wq で保存

# /etc/rc.d/init.d/crond restart ← Cron を再起動

※ バックアップファイルからDBの復元はサーバー管理関連のバックアップから復元を参考に /root/mysql.sqlを復元させてから
このページを参考に手動でDBの復元を行って下さい。

DBとサーバーのバックアップを一緒に自動でバックアップ



サーバー管理関連の自動バックアップの設定のスクリプト(bkup.sh)に追記してサーバーのバックアップと
一緒にDBのバックアップも行います。


# vi bkup.sh ← バックアップスクリプト編集
 i キー(入力モード)

#!/bin/sh

LIST="/root/mysql.sql /home /var/log /etc" ← バックアップリストに /root/mysql.sql を追加

ROOTPASS="xxxxxx" ← 追記(MySQLの root のパスワードを指定)
mysqldump -u root -p$ROOTPASS --all-database > mysql.sql ← 追加

mkdir -p /var/bkup
tar czvfP /var/bkup/bkup.tar.gz $LIST > /var/log/bkup.log
chmod 600 /var/log/bkup.log

記載したら Esc キー(コマンドモード):wqで保存

※ バックアップファイルからDBの復元はサーバー管理関連のバックアップから復元を参考に /root/mysql.sqlを復元させてから
このページを参考に手動でDBの復元を行って下さい。




Copyright c Vine Linuxで自宅サーバー. 2004 All Rights Reserved.