ORACLE デフォルト表領域を変更する

やったこと

  • 表領域を作成
  • ユーザのデフォルト表領域を変更

開発環境を調査していたところ SYSTEM表領域にテーブルが作成されているのを発見。

SYSTEM表領域で性能テストとかヤバイので、新たな表領域を作成しました。

表領域の作成

  • NEWTABLESPACEという名前
  • 100Mのデータファイル
  • 自動拡張500K
  • 最大サイズ1G

で表領域を作成

SQL> CREATE TABLESPACE NEWTABLESPACE
SQL>  DATAFILE 'newtablespace01.dbf' SIZE 100M AUTOEXTEND ON NEXT 500K MAXSIZE 1024M;

Tablespace created.

NEWTABLESPACEという名前の表領域が作成されました。

確認してみます。

SQL> select TABLESPACE_NAME,BYTES,MAXBYTES from dba_data_files where tablespace_name = 'NEWTABLESPACE';

TABLESPACE_NAME                     BYTES   MAXBYTES
------------------------------ ---------- ----------
NEWTABLESPACE                   104857600 1073741824

104857600 Byte = 100MByte
1073741824 Byte = 1GByte

です。

できた。

ユーザのデフォルト表領域の変更

ユーザのデフォルト表領域を変更します。

まず現状を確認

SQL> SELECT USERNAME, DEFAULT_TABLESPACE FROM dba_users where username = 'HOGE';


USERNAME                       DEFAULT_TABLESPACE
------------------------------ ------------------------------
HOGE                           SYSTEM

変更

SQL> ALTER USER HOGE DEFAULT TABLESPACE NEWTABLESPACE;

User altered.

そして確認

SQL> SELECT USERNAME, DEFAULT_TABLESPACE FROM dba_users where username = 'HOGE';


USERNAME                       DEFAULT_TABLESPACE
------------------------------ ------------------------------
HOGE                           NEWTABLESPACE

変更されました。

めでたし、めでたし。