創建表空間應該使用create tablespace
SQL> create tablespace test datafile '\dmp\test.dbf' size 20M;
Tablespace created.
如果想查看數據庫裏面有哪些表空間,可以在數據字典中獲取其相關信息。
SQL> conn / as sysdba
Connected.
SQL> select tablespace_name,file_name from dba_data_files order by file_name;
TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
EXAMPLE
/data/app/oracle/oradata/orcl/example01.dbf
SYSAUX
/data/app/oracle/oradata/orcl/sysaux01.dbf
SYSTEM
/data/app/oracle/oradata/orcl/system01.dbf
TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
UNDOTBS1
/data/app/oracle/oradata/orcl/undotbs01.dbf
USERS
/data/app/oracle/oradata/orcl/users01.dbf
TEST
/data/app/oracle/product/11.2.0/db_1/dbs/dmptest.dbf
6 rows selected.
記住咯 要用管理員權限。突然發現最上面的路徑錯了 導致我最下面的TEST的名字不對咯!⊙﹏⊙b汗大家仔細看下就知道
當然有時候我們會想,我現在留的表空間以後會不會不夠用呀!這裏Oracle給我們提供了一個自動擴展的功能
SQL> create tablespace test1 datafile '/dmp/test1.dbf' size 20M autoextend on next 5M;
Tablespace created.
SQL> select tablespace_name,file_name from dba_data_files order by file_name;
TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
EXAMPLE
/data/app/oracle/oradata/orcl/example01.dbf
SYSAUX
/data/app/oracle/oradata/orcl/sysaux01.dbf
SYSTEM
/data/app/oracle/oradata/orcl/system01.dbf
TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
UNDOTBS1
/data/app/oracle/oradata/orcl/undotbs01.dbf
USERS
/data/app/oracle/oradata/orcl/users01.dbf
TEST
/data/app/oracle/product/11.2.0/db_1/dbs/dmptest.dbf
TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
TEST1
/dmp/test1.dbf
7 rows selected.
上面的autoextend on next 5M 空間不夠的時候指定每次增長5M空間。還有我改了地址 應該看得懂吧!
當然你可能還會問 一直增長或許也不好吧!!這裏我們只要在自增長的後面加一句 maxsize 500M;就可以了
這裏的500m指的是表空間的最大尺寸500M.
接下來我就來說說表空間的使用;
首先我們先來看下數據庫的默認表空間
SQL> select user_id,username,default_tablespace from dba_users order by user_id;
USER_ID USERNAME DEFAULT_TABLESPACE
---------- ------------------------------ ------------------------------
0 SYS SYSTEM
5 SYSTEM SYSTEM
9 OUTLN SYSTEM
14 DIP USERS
21 ORACLE_OCM USERS
30 DBSNMP SYSAUX
31 APPQOSSYS SYSAUX
32 WMSYS SYSAUX
42 EXFSYS SYSAUX
43 CTXSYS SYSAUX
45 XDB SYSAUX
USER_ID USERNAME DEFAULT_TABLESPACE
---------- ------------------------------ ------------------------------
46 ANONYMOUS SYSAUX
53 ORDSYS SYSAUX
54 ORDDATA SYSAUX
55 ORDPLUGINS SYSAUX
56 SI_INFORMTN_SCHEMA SYSAUX
57 MDSYS SYSAUX
60 OLAPSYS SYSAUX
這裏我就截取一部分。
說了這麼多 我就來說下重點吧!下面我們聊聊默認表空間的修改:
SQL> alter database default tablespace test
2 ;
Database altered.
這個就是我們對默認表空間名稱進行修改成test。還有就是我們如果建表的時候沒有分配表空間就會默認使用表空間,就是上面查找的users是普通用戶的默認表空間。而上面的alert database是對users進行修改成test。
這個對具體的表空間進行修改
SQL> alter tablespace test1 rename to test_name2;
Tablespace altered.
最後我們說下表空間的刪除
這裏說下如果我們的表空間是默認表空間 也就是說當初你建表的時候沒有設定表空間 。因爲你是刪不了默認表空間的所以我們改下名字咯!
SQL> drop tablespace test_name2 including contents and datafiles;
Tablespace dropped.