表領域自動拡張の設定と最大サイズの変更 | Oracle 11g

Oracle の表領域の自動拡張の設定、及び自動拡張時の最大サイズの設定変更を説明します。SYSTEM 表領域の拡張に関して、実際のテストプログラムの実行と共に説明します。ここでは無料のOracle 11g Express Edition (64bit版)を使用しました。





|

(1)Oracle 11g XE (Express Editon) 64bit をインストールします。


(2)初期の表領域の使用容量 / 最大値を確認しておきます。SYSTEM 表領域の使用量は354M、最大サイズは600Mであることが分かります。


Oracle 表領域の使用量

SYSTEM 表領域に関しては自動拡張設定で最大600Mまで物理ファイルが自動的に拡張されることが分かります。

(3)sqlplus を実行します。

Oracle 11g Express Edition では sqlplus.exe は以下にフォルダに有ります。
C:\oraclexe\app\oracle\product\11.2.0\server\bin

(4)system/<パスワード>でログインします。

<パスワード>は Oracle インストール時に指定したパスワードです。

(5)データソースを作成します。xe という名前に設定しますが、他の名前でも問題ありません。


オラクル ODBC ドライバの設定

(6)テスト用のテーブルを作成します。

SQL> create table testtable
(
test VARCHAR(1024)
);


(7)以下のVBScript サンプルプログラム(test.vbs)を作成し、実行しました。cscript test.vbs で実行が可能です。

無限にレコードを挿入する。プログラムです。
Set objADO = CreateObject("ADODB.Connection")
objADO.Open "Driver={Oracle in XE};" & "CONNECTSTRING=XE; UID=system; PWD=<パスワード>"

Do Until false
sql = "INSERT INTO testtable (test) VALUES ('01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789')"
objADO.Execute sql
loop

(8)SYSTEMテーブルが最大値に接近しこれ以上SYSTEMテーブルの拡張が不可能となった場合、以下のエラーでプログラムが停止します。

C:\test2.vbs(6, 2) Microsoft OLE DB Provider for ODBC Drivers: [Oracle][ODBC][Ora]ORA-01653: unable to extend table SYSTEM.TESTTABLE by 1024 in table space SYSTEM

(8)プログラム実行の途中で使用量を確認します。SYSTEMは 530 M + 10 M 使用していることが分かります。(最大は600Mでまだ未到着)

自動拡張されたOracle表領域

(9)SQLPlusより以下のコマンドで、SYSTEM表領域の自動拡張の最大サイズを 1000Mb に変更します。

ALTER DATABASE DATAFILE 'C:\oraclexe\app\oracle\oradata\XE\SYSTEM.DBF' AUTOEXTEND ON MAXSIZE 1000M;

(10)再度サイズを確認します。 SYSTEMテーブルの最大サイズが 1000M に拡張されていることが分かります。(データベースの再起動などは不要で即時反映されるようです。)


表領域の最大サイズを変更









[Oracle メモに戻る]