Oracleバックアップの覚書2

NO IMAGE
mogeraです。
Oracleバックアップについての覚書その2
エラーコード:ORA-00600とは
SI ObjectBrowserのデータ生成ツールを使ってテストデータを10万件ほど生成しているときに発生。
固有のエラーコードがない内部エラーはこれで出力されるそうです。いわゆる「不明なエラー」なので発生する状況は様々。
マニュアルにはサポートに問い合わせるように、といったことが書かれています。
http://download.oracle.com/docs/cd/E16338_01/server.112/b56318/e0.htm#sthref17
そういうわけにもいかないので手順をさかのぼってエラー再現性を探ってみました。
どうやら今回の場合は表領域の空きが不足したのが原因のようです。
使用していたUSERS表領域を拡張したら成功しました。
データファイル:USERS01.DBF
ファイルサイズ:10MB⇒100MBに拡張
AUTOEXTEND:1MB
自動拡張するから大丈夫、と考えていたのが拙かったようです。
ではどれぐらいの領域を確保すればいいのか。
簡単に1行当たりのデータサイズを調べます。
列ごとの平均バイト数を合算して行のサイズとします。
表:TESTには10万レコードをランダム生成しての結果。
SELECT ROUND((AVG(VSIZE(ID))
+AVG(VSIZE(TESTNAME))
+AVG(VSIZE(CREATEDATE))
+AVG(VSIZE(UPDATEDATE))
),9) AS AVG_ROW_SIZE
FROM TEST_USER.TEST
結果: AVG_ROW_SIZE
68.41405
1行当たり約70バイトで計算すれば、10万行で7MB必要になります。
USERSには別のテストデータもあったので、それで容量が足りなくなったのでしょう。
しかし何故自動拡張が機能しなかったかは解りません…