一起學Oracle-表空間

  創建表空間應該使用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.






發佈了74 篇原創文章 · 獲贊 7 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章