毎週MySqlデータベースを日付付きのファイル名にバックアップするために使用できるコマンドラインは何ですか(以前のバックアップと衝突しないようにするため)?
また、これは合理的なバックアップ戦略ですか?私のデータベースは比較的小さいです(完全なエクスポートは現在わずか3.2メガです)。解約率は比較的低いです。何か問題が発生した場合、完全なDBを取り戻すことができる必要があります。そして、ある期間にわたって発生する変化を見ることができる方法があれば、それは非常にクールでしょう。
毎週MySqlデータベースを日付付きのファイル名にバックアップするために使用できるコマンドラインは何ですか(以前のバックアップと衝突しないようにするため)?
また、これは合理的なバックアップ戦略ですか?私のデータベースは比較的小さいです(完全なエクスポートは現在わずか3.2メガです)。解約率は比較的低いです。何か問題が発生した場合、完全なDBを取り戻すことができる必要があります。そして、ある期間にわたって発生する変化を見ることができる方法があれば、それは非常にクールでしょう。
あなたはこのようなことを試すことができます:
0 4 1 * * DATE=`date +%y-%m-%d`; mysqldump -u <dbuser> -p<dbpasswd> <dbname> | gzip > dbname-$DATE.sql.gz
これにより、毎月1日の午前4時にデータベースがダンプされます(そしてgzipで圧縮されます)。
cronとmysqldumpを使用した毎週のバックアップ:
コマンドラインを提供するためのクレジットは@timdevanswer(+1)に送られます。
cron構文は次のようになります。
* * * * * = [minute] [hour] [day of month] [month] [day of week]
ただし、週単位のバックアップが必要なため、上記の3番目の開始日(日)でバックアップを実行する日を指定して、週単位の間隔をシミュレートできます。
0 4 1,8,15,21,28 * * DATE=`date +%y-%m-%d`; mysqldump -u <dbuser> -p<dbpasswd> <dbname> | gzip > dbname-$DATE.sql.gz
これにより、毎月1日、8日、15日、21日、28日の午前4時に実行されます。
MySQLレプリケーションを試すことができます
レプリケーションにより、1つのMySQLデータベースサーバー(マスター)からのデータを1つ以上のMySQLデータベースサーバー(スレーブ)にレプリケートできます。レプリケーションは非同期です。マスターから更新を受信するために、スレーブが永続的に接続する必要はありません。つまり、更新は長距離接続でも、ダイヤルアップサービスなどの一時的または断続的な接続でも発生する可能性があります。
このようにして、プライマリデータベース(マスター)に問題が発生した場合、スレーブはすぐに使用できる代替として機能できます。