DataPumpでデータをインポートした後に、Create indexを実行したところ「ORA-38029: オブジェクト統計はロックされています」というエラーで弾かれてしまいました。
本人的にはロックした覚えもなし。
どうやらいろいろOTNなどで調べてみたところ、原因は不明だけど統計オブジェクトがロックされてしまうことがあるようです。(もっと深く調査すれば原因が判明しそうですが)
2014/09/26 16:56:30 CREATE INDEX "HOGE"."TABLE1_INDX1" ON "HOGE"."TABLE1" ("ID", "NAME", "TIME") 2014/09/26 16:56:30 * 2014/09/26 16:56:30 行1でエラーが発生しました。: 2014/09/26 16:56:30 ORA-38029: オブジェクト統計はロックされています
ロックを解除する
解決策としてはロックされているオブジェクトのロックを解除してあげる必要があります。
# su - oracle $ sqlplus sys as sysdba
下記プロシージャを実行します。
DECLARE CURSOR CUR IS SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER='HOGE'; BEGIN FOR CUR_REC IN CUR LOOP DBMS_STATS.UNLOCK_TABLE_STATS('HOGE', CUR_REC.TABLE_NAME); END LOOP; END; /
これで完了です。
もう一度Create Indexを実行したところ問題なく作成されました。