Oracle でデータベース作成後に catalog.sql を実行すると ORA-04031 が発生。
$ sqlplus / as sysdba SQL> startup nomount SQL> @create_database Database created. SQL> @?/rdbms/admin/catalog ORA-00604: error occurred at recursive SQL level 1 ORA-04031: unable to allocate 16 bytes of shared memory ("shared pool","select obj#,type#,ctime,mtim...","sql area","tmp")
共有プールが足りないみたいなので、共有プールをとりあえず 100M にして、やり直したら成功した。
$ vi $ORACLE_HOME/dbs/initmatrix.ora (中略) shared_pool_size = 100M $ sqlplus / as sysdba SQL> shutdown abort SQL> exit $ cd $ORACLE_BASE/oradata/matrix/ $ rm * $ cd $ORACLE_BASE/admin/matrix/scripts $ sqlplus / as sysdba SQL> startup nomount SQL> @create_database Database created. SQL> @?/rdbms/admin/catalog (中略) PL/SQL procedure successfully completed.
ググってみると、
> ORA-04031 …
OTN Japan - 404 Error
あぁ…
こっちのエラーコード見逃してました><
適当に共有プールをinit.oraに設定(100M)してcreateで上手くいきました。
同じようなことしてる人がいた。
また、catalog.sql や catproc.sql を実行するとなぜかエラーが発生する場合、単純に表領域が足りなくなっていることがある。仕事で使う環境ならそんなにサイズを小さくすることはないと思うけど。