修改数据库默认建的表空间为小文件表空间:
又一次安装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就可以了