2012-02-08 5 views
2

は私がPT-オンライン・スキーマ変更にRDS DBテーブルの2列に一意のインデックスを追加しようと、それは次のようにエラーで失敗しました:Percona Toolkit Vs. Openarkキット。スキーマの変更

DBD::mysql::db do failed: Access denied; you need (at least one of) the SUPER privilege(s) for this operation [for Statement "SET SQL_LOG_BIN=0"] at /usr/bin/pt-online-schema-change line 4663. 

しかしオーク・オンライン - を使用してalter-table、私のテーブルが変更されています。手順が完了したが、私はエラーが表示されず、出力は次のようであるされていません。

... 
-- Copying range (1230004), (1231683), progress: 24% 

は、これらのツールは、テーブルを変更するために異なるアプローチを実装していますか?

答えて

3

このインスタンスでは本当に心配することはありません。

MySQL Documentation on the SUPER privilege

によるとSUPER権限は、(あなたが は、常に自分自身のスレッドを殺すことができる) またはmysqladminの他のアカウントに属するスレッドを殺すために殺すを殺すために変更マスタを使用するアカウントを有効にし、PURGE SYSMACシステム変数を変更するにはSET GLOBALを使用して変更します。 mysqladminデバッグコマンド、ログの有効化または無効化、更新の実行、read_onlyシステム変数が有効であっても開始し、 スレーブサーバーでのレプリケーションの停止f のアカウントに格納されているプログラムとビューのDEFINER属性を使用し、 max_connectionsシステム変数で制御されている接続制限に達しても を接続できます。

バイナリログが有効な場合にストアドファンクションを作成または変更するには、 には、第18.7項「ストアドプログラムのバイナリログ」で説明しているように、SUPER権限が必要な場合があります。

DBセッションでステートメントのバイナリログを無効にするには、SUPER特権が必要です。 --binログ

pt-online-schema-change

にマニュアルに従って実際に

は、バイナリログ(SETのSQL_LOG_BIN = 1)を許可します。ほとんどの場合、--tmp-tableは に複製する必要がないため、デフォルトでバイナリログは がオフになっています。また、レプリケーションでオンラインスキーマ変更を実行する場合は、注意深い計画が必要です。レプリケーションが壊れている可能性があります。 「複製」を参照してください。

これは、これがpt-online-schema-changeの実際の正常な動作であると結論付けることができます。デフォルトでセッションのバイナリログを無効にしようとしました。

勧告

は、root @ localhostのようpt-online-schema-changeを実行してみてください。そのユーザーはすべてのprivをアクティブにする必要があります。

+0

総合的な回答ありがとうございます。 あなたのお勧めによると、残念ながら、RDSでは不可能です。 –

+0

AWS RDSでは不可能です。 –

関連する問題