Oracle學習——表空間管理(二)
一、使用CREATE TABLESPACE 語句建立表空間
檢視系統預設表空間的位置語句:select t1.name,t2.name from v$tablespace t1,v$datafile t2 where t1.ts# = t2.ts#;
1.建立本地表空間
(1) 建立本地管理表空間orcltb1,資料檔案為C:\Users\admin\Documents\ORACLE\DATAFILE\mytb01.dbf,大小為50M,指定本地管理表空間,由表空間自動分配區間,語句如下:
create tablespace orcltb1 datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\mytb01.dbf' size 50m extent management local autoallocate;
tablespace ORCLTB1 已建立。
datafile:用於指定表空間的資料檔案。
size:用於指定資料檔案的大小。
autoallocate:指定表空間由系統管理,最小區間為64Kb,與autoallocate對應的是uniform,使用它可以指定最小的區間大小。
(2) 建立本地管理表空間orcltb21,資料檔案為C:\Users\admin\Documents\ORACLE\DATAFILE\mytb02.dbf,大小為30M,指定本地管理表空間,指定其最小區間為128kb語句如下:
create tablespace orcltb2 datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\mytb02.dbf' size 30m extent management local uniform size 128k;
tablespace ORCLTB2 已建立。
2.建立大檔案表空間
大檔案表空間由唯一的,非常巨大的資料檔案組成,普通的小檔案表空間可以包含多個數據檔案,但大檔案表空間只能包含一個數據檔案。
(1) 建立本地管理表空間bigtb,資料檔案為C:\Users\admin\Documents\ORACLE\DATAFILE\bigtb.dbf,大小為10GB,指定本地管理表空間,指定其最小區間為128kb語句如下:
create bigfile tablespace bigtb datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\bigtb.dbf' size 10G;
bigfile TABLESPACE 已建立。
3.建立臨時表空間
(1)建立本地管理表空間temptb,資料檔案為C:\Users\admin\Documents\ORACLE\DATAFILE\temptb.dbf,大小為20m,指定本地管理表空間,指定其最小區間為16m語句如下:
create temporary tablespace temptb Tempfile 'C:\Users\admin\Documents\ORACLE\DATAFILE\temptb.dbf' size 20m reuse extent management local uniform size 16m;
temporary TABLESPACE 已建立。
注意: a、 create tablespace中使用關鍵詞tempfile 而不是datafile了。
b、使用tempfile子句可以指定臨時檔案的絕對路徑和檔名。
c、 使用reuse關鍵字可以重用。
d、在建立臨時表空間是,不允許使用autoallocate關鍵詞,因此表空間的區間大小有uniform size指定。
4.建立撤銷表空間
(1) 建立撤銷表空間undotb1,資料檔案為C:\Users\admin\Documents\ORACLE\DATAFILE\undotb1.dbf,大小為20m,指定本地管理表空間,指定其最小區間為16m語句如下:
create undo tablespace undotb1 datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\undotb1.dbf' size 2m reuse;。
undo TABLESPACE 已建立。
在建立資料庫時,系統會建立一個撤銷表空間,使用者也可以顯示地建立撤銷表空間。當資料庫例項啟動時,資料庫會選擇使用第一個可用的撤銷表空間。但是如果沒有可用的撤銷表空間,則系統將撤銷記錄儲存在SYSTEM表空間中,同時記錄一條警告日誌,說明系統在沒有撤銷表空間情況下執行。
二、設定和修改表空間屬性
1.重命名錶空間
在alter tablespace語句中使用rename to子句重命名錶空間
alter tablesapce 原表空間名 rename to 新表空間名
(1)將本地表空間orcltb1重新命名為orcltbone
alter tablespace orcltb1 rename to orcltbone;
tablespace ORCLTB1已變更。
2.向本地表空間中增加資料檔案
在alter tablespace語句中使用add datafile子句,可以在本地管理表空間中增加資料檔案.
alter tablespace 表空間名 add datafile 增加的資料庫檔案 size 資料檔案大小;
(1)向表空間orclone中增加一個數據檔案'C:\Users\admin\Documents\ORACLE\DATAFILE\orcltbtwo.dbf',初始大小 為10m:
alter tablespace orcltbone add datafile 'C:\Users\admin\Documents\ORACLE\DATAFILE\undotbtwo.dbf' size 10m;
tablespace ORCLTBONE已變更。
(2)修改大檔案表空間bigtb的資料檔案大小為4GB
alter tablespace bigtb resize 4G;
tablespace BIGTB已變更。
三、表空間的狀態
1.查看錶空間的狀態
select tablespace_name,status,contents from dba_tablespaces;
2.設定表空間的狀態
表空間的狀態可以分為聯機和離線兩種。
在以下情況下,可以將表空間設定為離線狀態:
a:資料庫的一部分設定為不可訪問,而其他部分可以訪問。
b:執行離線表空間備份。
c:在升級或維護應用程式時,將應用程式及其使用的表空間設定為不可訪問。
d:重新命名或重新分配表空間。
注意:系統(SYSTEM)表空間、還原(UNDO)表空間、臨時表(TEMPORARY)空間不可設定為離線狀態
將表空間設定為離線狀態: alter tablespace 表空間名 offline;
(1)將表空間orcltbone設定為離線狀態
alter tablespace orcltbone offline;
(2)將表空間orcltbone設定為聯機狀態
alter tablespace orcltbone online;
將表空間設定為只讀狀態:,主要目的是為了避免對資料庫中大量靜態資料進行備份和恢復操作,還可以保護歷史資料不被修改。
(3)將表空間orcltbone設定為只讀狀態。
alter tablespace orcltbone read only;
(4)將表空間orcltbone設定為可讀寫狀態
alter tablespace orcltbone read write;
四、刪除表空間
1、刪除表空間
drop tablespace 表空間名 ;