I am hidezou

人生で学んだこと、感じたこと。そして面白いことをシェアするBlog

Oracle create tablespaceでORA-1144エラー

こんにちは。システムエンジニアを生業にしている、ひでそうです。

 

今日は仕事ネタです。

Oracleにてデータベース作成中に詰まった点の共有です。

 

Oracle9i(9.2)、OSはSolaris10 で構築しています。

で、詰まった点は

「表領域を構成する1データファイルのサイズ」です。

作成できる最大サイズの計算方法はOracleリファレンスによると、

ブロックサイズ  × 400万ブロック で

例としてブロックサイズが4Kなら約16GB、8Kなら約32GBと記載されていました。

今回作成するDBのブロックサイズは8Kのため、32GBを指定しデータベースを作成しました。(32GBは32768MBと指定)

そこで、今回のエラーORA-1144となりました。

 

原因は最大ブロック数を超えたため。

WEBで検索し、調べてみると最大データブロック数が細かく決まっていることがわかりました。

■表領域 1データファイル の最大データブロック数

= 2^22-1 ブロック (2の22乗-1)

= 4,194,303 ブロック

32GBは何ブロックかと言うと

= 32,768MB = 33,554,432KB

= 33,554,432KB / 8K

= 4,194,304 ブロック

なんと、-1 している分1ブロック少なかったのでした。

 

指定を1MB減らして無事にうまくいったのでした。

32768MB → 32767MB

なんか微妙ですね。