【原創】表空間相關操作

木頭一個發表於2008-05-05

實驗環境:WinXP SP2

資料庫版本:10.2.0.1

1. 建立普通表空間(來個最複雜,基本上用的所有的引數的)

create smallfile tablespace test

datafile 'F:\oracle\product\oradata\test\test01.dbf' size 10m

autoextend on next 100k maxsize 100m

extent management local autoallocate

segment space management auto

flashback on

force logging

blocksize 2k

online

 

2. 建立bigfile表空間

和建立普通表空間的語法差不多,區別有2個:

將smallfile改為bigfile 表空間只能包含1個資料檔案

create bigfile tablespace test03

datafile 'F:\oracle\product\oradata\test\test03.dbf' size 10m

autoextend on next 100k maxsize 100m

extent management local autoallocate

segment space management auto

flashback on

force logging

blocksize 2k

online

 

3. 建立temp表空間

autoextend on只能設定uniform,不能設定autoallocate

create temporary tablespace "temp01" tempfile

'f:\oracle\product\oradata\test\temp01.dbf' size 10m

autoextend on next 100k maxsize 100m

extent management local uniform. size 1m

tablespace group temptbs_group1

檢視temp表空間所屬表空間組

sys@TEST>select * from  dba_tablespace_groups;

GROUP_NAME                     TABLESPACE_NAME

------------------------------ ----------------

TEMPTBS_GROUP1                 TEMP01

 

4. 建立undo表空間

create undo tablespace undo02 datafile

'f:\oracle\product\oradata\test\undo02.dbf' size 10m

autoextend on next 100k maxsize 100m

extent management local autoallocate

retention guarantee;

 

5. alter tablespace

create tablespace 中的除三個語句不能alter外,其餘的都可以,這三個語句分別是:

  • extent management local autoallocate
  • segment space management auto
  • blocksize

5.1 重新設定表空間的大小,只能用於bigfile表空間

alter tablespace test resize 5m;

5.2 修改表空間的名稱

alter tablespace test rename to t;

5.3 開始進行表空間的線上備份,在begin backup時,會觸發checkpoint,在end begin之前可能會生成更多的重做和歸檔日誌資訊

alter tablespace test begin backup;

5.4 結束表空間的線上備份

alter tablespace test end backup;

5.5 修改表空間包含的資料檔案的名稱、位置(需要物理上先移動)

alter tablespace test rename

datafile 'f:\oracle\product\oradata\test\test.dbf'

to 'f:\oracle\product\oradata\test\t.dbf';

5.6給表空間新增資料檔案(只能用於smallfile表空間),對於臨時表空間將datafile改為tempfile

alter tablespace test ADD DATAFILE 'F:\oracle\product\oradata\test\t.dbf' size 10m;

5.7 從表空間刪除資料檔案(最後一個檔案不能刪),對於臨時表空間將datafile改為tempfile

alter tablespace test drop DATAFILE 'F:\oracle\product\oradata\test\t.dbf';

5.8 將表空間中的資料檔案離線,離線後資料檔案裡的內容將不能訪問,但是表空間並不離線

alter tablespace test datafile offline;

5.9 將離線的資料檔案重新上線,對於臨時表空間將datafile改為tempfile

alter tablespace test datafile onine;

5.10 將表空間離線

alter tablespace test offline;

5.11將表空間重新上線

alter tablespace test online;

offline的三種模式:

normal:產生checkpoint,將所有的髒塊寫入資料檔案

temporary:產生checkpoint,將所有的髒塊寫入資料檔案,但是不能保證所有的檔案是可寫的,有些檔案可能在online時需要恢復

immediate:不產生checkpoint,在online後需要進行恢復

 

5.8-11的實驗:可以看出datafile offline和 tablespace offline的狀態是不一樣的

sys@ABC>alter tablespace test datafile offline;

Tablespace altered.

sys@ABC>select name,status from v$datafile;

NAME                                       STATUS

----------------------------------------- --------------

F:\ORACLE\PRODUCT\ORADATA\ABC\TEST01.DBF   RECOVER

F:\ORACLE\PRODUCT\ORADATA\ABC\TEST01A.DBF  RECOVER

sys@ABC>select tablespace_name,status from dba_tablespaces;

TABLESPACE_NAME                                              STATUS

------------------------------------------------------------ ---------

TEST                                                         ONLINE

sys@ABC>select tablespace test offline;

Tablespace altered.

sys@ABC>select tablespace_name,status from dba_tablespaces;

TABLESPACE_NAME                                              STATUS

------------------------------------------------------------ -----------

TEST                                                         OFFLINE

5.12 將表空間設為只讀

alter tablespace test read only;

5.13 將表空間設為可讀可寫

alter tablespace test read write;

 

6. 刪除表空間

6.1 刪除表空間並同時刪除物理資料檔案 

drop tablespace test including contents and datafiles;

6.2 刪除表空間但保留刪除物理資料檔案

drop tablespace test including contents keep datafiles;

6.3  刪除表空間的同時刪除其他表空間中表與此表空間中表之間的外來鍵約束

drop tablespace test cascade constraints;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/498744/viewspace-260450/,如需轉載,請註明出處,否則將追究法律責任。

相關文章