修改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就可以了