1. 程式人生 > >修改oracle資料庫預設建立的表空間為小檔案表空間

修改oracle資料庫預設建立的表空間為小檔案表空間

修改資料庫預設建的表空間為小檔案表空間:
又一次安裝oracle資料庫安裝好後,建立表空間報錯
create  tablespace db01
datafile '/opt/oracle/db/oradata/oradb/db01.dbf' size 10M,
         '/opt/oracle/db/oradata/oradb/db02.dbf' size 10M;

SQL> create tablespace db01
  2  datafile '/opt/oracle/db/oradata/oradb/db01.dbf' size 10M,
  3           '/opt/oracle/db/oradata/oradb/db02.dbf' size 10M;
create tablespace db01
*
ERROR at line 1:
ORA-32774: more than one file was specified for bigfile tablespace DB01
SQL>
提示錯誤說大檔案表空只能有一個數據檔案,原來資料庫裝好後建表空間預設的是大檔案表空間
查詢資料字典可以看到資料庫預設的是大檔案表空間
SQL> select PROPERTY_NAME,PROPERTY_VALUE from database_properties where PROPERTY_NAME ='DEFAULT_TBS_TYPE';
PROPERTY_NAME        PROPERTY_VALUE
-------------------- ------------------------------
DEFAULT_TBS_TYPE     BIGFILE

如果想建小檔案表空間,就需要在create後面加上smallfile就可以建成功了
SQL> create smallfile tablespace db01
  2  datafile '/opt/oracle/db/oradata/oradb/db01.dbf' size 10M,
  3           '/opt/oracle/db/oradata/oradb/db02.dbf' size 10M;

Tablespace created.

或者把系統預設的表空間型別改為小檔案表空間用下面的語句修改
alter database set default smallfile tablespace;

SQL> alter database set default smallfile tablespace; 

Database altered.

SQL> select PROPERTY_NAME,PROPERTY_VALUE from database_properties where PROPERTY_NAME ='DEFAULT_TBS_TYPE';

PROPERTY_NAME        PROPERTY_VALUE
-------------------- ------------------------------
DEFAULT_TBS_TYPE     SMALLFILE

SQL>
修改成功
在次用上面的語句建立表空就不報錯了
刪除表空間連資料檔案一起刪除
SQL> drop tablespace db01 including contents and datafiles; 
Tablespace dropped.

SQL> create  tablespace db01
  2  datafile '/opt/oracle/db/oradata/oradb/db01.dbf' size 10M,
  3           '/opt/oracle/db/oradata/oradb/db02.dbf' size 10M;

Tablespace created.

這時建的表空間預設是小檔案表空間了不用加上smallfile了,如果想建立大檔案表空間加上bigfile就可以了