2011-01-21 34 views
0

ライブテーブルを更新中です。新しいテーブルを追加しています。mysqlデータベースを復元する

これらのアップデートがうまくいかない場合、オリジナルを復元する方法はありますか?

ありがとうございました

+0

新しいテーブルを追加する以外のことをしていないのであれば、それらを 'DROP'するだけでよいのです。 (もちろん、あまりにも多くのバックアップコピーを持つことは大きな問題ではありませんが、あまりにも少ないことはひどいです。) –

答えて

3

あなたは、あなたが本当にあなたが任意のフロントからのアクセスを削除した理想的な後、あなたはを開始する前にバックアップを行う必要があり、ライブデータベースを変更するつもりなら最終的なウェブサイト、などのように、 "アクティブな"データベース活動はありません。 (これは、MyISAMテーブルではなくInnoDBを使用する場合には問題になりません。)また、変更を行っている間はデータベースへのすべてのアクセスを防ぐのが理想的です。そうしないと変更が失われる可能性があります。データベースを以前の状態にロールバックします。

バックアップを作成するには、MySQLにバンドルされているmysqldumpコマンドラインツールを使用するのが最も簡単なソリューションです。これにより、データベースを元の状態に復元するためのテキストファイルが作成されます。

ヒントとして、「--add-drop-table」オプションに注意することをお勧めします。これは、バックアップファイルの内容を踏まえたい場合に便利です。 (注意:これはもちろんALL「現在」のデータを一掃。)

最後に、あなたがどんな重大な変更を加えることになるだろうならば、あなたが本当にしたい:

  1. 作成しますその後、データベースの現在の内容をダンプするなど、必要なすべての変更を行い、スクリプト(あなたはその後、「mysql < [text file name]」を介して、コマンドラインからスクリプトを実行することができます。)

  2. 使用mysqldumpとはを設定しましたテストこのデータを使用すると、変更が実際に期待どおりに機能するようにすることができます。

+0

私は最初にデータベースをバックアップすることを考えていましたが、 'mysqldump -u root -ppassword live_db | mysql -u root -ppassword backup_db 'と入力します。私は本当に現在のデータを一掃したくありません。ライブDBに4つのテーブルを追加します。だから何かが壊れてしまった場合、DBを元に戻してから、DBを元に戻す必要があります。 – terrid25

+0

よろしいですか?私は4つの新しいテーブルのCREATEテーブル等のSQLスクリプトを持っています。 DBのバックアップもあり、4つのテーブルを追加したDscriptをテストしました。私の心配は、ライブDBは1GBだと思います。だから私はそれをコピーしながらDBを無効にする必要があると思います... – terrid25

+0

@ terrid25 - (既存のテーブルを変更するのではなく)新しいテーブルを追加するだけで、バックアップでうまくいけば、ライブDB上でそれを行ってください。それ以外の場合は、私の回答ごとにバックアップ/アップデートを行いながらフロントエンドをオフラインにしたいと思うでしょう。 –

5

はい。バックアップ最初を..これにより

+2

+1私から。 (「最初の」謝罪に重点を置くことはできませんでした):-) –

+0

**と強く強調する@middaparkaへの追加クレジット** – BoltClock

+0

@middaparka:謝罪する必要はありません。 :D – Mchl

関連する問題