アプリケーションが実行中でビジー状態の間に、Oracle 10 OLTPデータベース内のよく使用されるテーブルにnull許容列を追加しようとしています。 NULL可能列の追加はデータ・ディクショナリーの変更のみであり、したがって、すべての表ロックは短期間(システムによって処理可能)保持されます。Oracle OLTPテーブルへのカラムの追加
問題は、私のALTER TABLE
は、多くの場合、これに失敗したということです。
ORA-00054: resource busy and acquire with NOWAIT specified
私の現在のアプローチは、テーブルの上にはロックがないように発生するまで、それを実行して、変更をbludgenすることです。つまり、SQL * Plusでこのようなスクリプトを完全に実行することはできませんが、各文をコピーして貼り付け、動作させる必要があります。
良い方法がありますか?
表に依存しているもの(ビュー、パッケージ、トリガーなど)は、本番環境ではあまりうまくいきません。 .. – cagcowboy
+1のcagcowboyさんのコメント。 prod環境でテーブルを変更するコードではうまくいかず、多くの無効化されたオブジェクトが潜在的に存在します。 – tbone
11gを調整する必要がある変更管理の問題は、依存性の低いレベルの追跡で少し再コンパイルの状況を改善しました。 –