1

ALTER TABLE 文と DIU 文 (削除、挿入、更新) を作成する MySQL スクリプトを含む MySQL データベースの更新を行っています。

トランザクションの更新を行うという考え方なので、文が失敗した場合はロールバックが行われますが、http://dev.mysql.com/doc/refman/5.0/en/implicitで指定されている ALTER TABLE 文またはその他を入れると-commit.html暗黙的なコミットが行われるため、示された操作がコミットされたままになるため、完全なロールバックを行うことができません。

エラーが発生した場合に使用されるバックアップを作成するためにmysqldumpを使用しようとしました(mysqlは個別にゼロを返します)が、遅すぎて失敗することもあります。

私に何ができる?データベースには 30 ~ 100 GB のデータが含まれているため、将来の更新が安全で遅すぎないようにするために、これが必要です。

4

2 に答える 2

0

pt-online-schemaの変更を見てください。

オンラインALTERが完了した後、「古い」テーブルを残すように構成できます。古いテーブルにはアンダースコアプレフィックスが付きます。悪いことが起こった場合は、変更したテーブルを削除し、古いテーブルの名前を元のテーブルに変更します。すべて問題がなければ、古いテーブルを削除するだけです。

http://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema-change.html

于 2012-08-08T06:21:42.180 に答える