4

mySQL データベース ディレクトリ全体をコピーして、Windows ベースの mySQL データベースを一晩バックアップしています。

c$\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5

これにより、MySQL で問題が発生し、テーブルが破損し、MySQL がクラッシュしました。Active Directory をバックアップすることはお勧めできません。一晩中 MySQL をオフにして、スクリプトを実行する予定です。また、mysqldump の実行についても調べました。2 つの質問:

フォルダーのバックアップを取ることの欠点は何ですか? 最速の回復方法のようです

稼働中のサーバーで mysqldump を実行すると、ダンプが完了するまで応答しなくなりますか?

4

2 に答える 2

3

mysqldumpオプションを使用して実行でき--single-transactionます (InnoDB テーブルの場合 - InnoDB を使用していることを願っています)。この方法mysqldumpでは、ダンプ中にテーブルをロックする必要がなく、システムが完全に応答しなくなることはありません。(パフォーマンスは多少影響を受ける可能性がありますが、少なくとも完全になくなるわけではありません。)

于 2013-05-03T09:13:50.357 に答える
2

お気づきのように、データベースを保持する実際のフォルダーをバックアップすると、いくつかの問題が発生します。フォルダーのコピー中にファイルが変更される可能性があり、その結果、バックアップが破損したり、(すべてをロックした場合)、MySQL がデータベースに書き込む (または読み取ることさえ) できなくなる可能性があります。良い(TM)。

回避する方法の 1 つは、ファイル システムのスナップショットを介してフォルダーのバックアップを行うことです。NTFS がこれをサポートしているかどうかはわかりませんが、簡単な Google 検索でShadow Copyと呼ばれるものが見つかりました。あなたはそれを調べたいかもしれません。

次に、pilsetnieks が既に指摘したようにmysqldump、オプションを使用して InnoDB テーブルで実行でき--single-transactionます。

Linux を使用している場合は、必要なものがすべて揃っているPercona Xtrabackupを試すことを強くお勧めします。彼らはWindows 用のアルファ版をリリースしました。それは一見の価値があるかもしれません。

于 2013-05-03T09:30:05.427 に答える