標籤:
建立資料表空間
方法1:
代碼建立,如下:
PL/SQL
建立資料表空間(一般建N個存資料的資料表空間和一個索引空間):
create tablespace 資料表空間名
datafile ‘ 路徑(要先建好路徑)\***.dbf ‘ size *M
tempfile ‘ 路徑\***.dbf ‘ size *M
autoextend on --自動成長
extent management local
SQL> /
資料表空間已建立。
方法2
用sqlplus,如下:
sqlplus / as sysdba
SQL>create tablespace 資料表空間名 datafile ‘檔案路徑及檔案名稱‘ size 500m;
方法3
通過指令碼建立,如下:
Create tablespace 資料表空間名
datafile ‘e:\database\oracle\demo.dbf‘
size 32m
autoextend on
next 32m maxsize 1024m
extent management local;
授予使用者使用資料表空間 sql
無限量佔用該資料表空間
alter user 使用者名稱 quota unlimited on 資料表空間;
佔用一定大小
或 alter user 使用者名稱 quota *M on 資料表空間;
修改使用者資料表空間
查詢所有使用者所在資料表空間
select username,default_tablespace from user_users;
修改使用者資料表空間(攜帶使用者下的所有表)
alter user 使用者名稱 default tablespace 資料表空間名稱;
刪除資料表空間 sql
drop tablespace 資料表空間名稱 including contents and datafiles
在使用命令列建立資料表空間Tablespace的過程中,包括幾個方面的參數。
資料檔案參數:包括資料表空間對應資料檔案名稱,初始大小和可變化規則;
Extent(分區)分配規則方案:資料表空間對segment對象進行增加空間分配的時候,使用的分配方法和策略;
Segment(段)對象管理方式:分為自動段對象管理或者手動段對象管理;
下面分別進行介紹:
1、資料檔案Datafile參數
資料表空間是“表、段、區、塊”Oracle四層邏輯結構中唯一與特定物理檔案對應的層次。一個資料表空間可以對應不同硬碟上的多個檔案,而一個檔案只能屬於一個資料表空間。
在建立資料表空間的時候,都會產生至少一個資料檔案作為資料表空間資訊儲存的地方。如果在Create tablespace時沒有進行指定datafile字句,那麼Oracle會自動依據OMF的方式建立出一個資料檔案。
指定資料檔案的字句是使用datafile作為關鍵字,後面內容包括檔案路徑、初始大小、拓展方式和每次增加空間大小。
size子句:指定產生資料檔案的初始大小,預設值通常為100m。對成熟的系統部署移植工作而言,通常是可以確定檔案的固定大小。避免經常性的檔案膨脹,引起效能變化;
autoextend開關與next子句:檔案大小變化開關是通過autoextend來實現的。如果設定on,表示該檔案允許進行動態拓展,檔案寫滿之後就會以next指定的大小進行拓展。如果設定為off,則該檔案不進行拓展;
next子句:當檔案設定為可拓展時,next為每次進行拓展的步長。如果資料檔案是經常大批量的增加,設定一個較大的next值為好;
maxsize子句:檔案大小上限;
2、extent分區分配方案
資料表空間Tablespace內部容納的邏輯結構就是段segment對象。段對象通常是和資料庫各個Schema中的對象相關聯。資料表空間空間管理中一個重要方面就是將新的extent分配給segment對象。一個segment會對應一個或者多個extent對象。extent區就是連續的block塊集合。
從Oracle發展曆程看,extent分配方案有兩個階段。首先出現的是Dictionary Mangage Tablespace,就是資料字典管理方式。資料庫中維護一個資料表,每次進行extent分配管理的時候,都要訪問該資料表。DMT代表了一個時代,同時也伴隨著致命的缺陷。
資料庫的一個重要指標就是並行度。一旦出現並行瓶頸,就意味著系統架構存在缺陷。DML就是這樣的一個問題,當資料庫資料表空間存在大量的分配請求時,該資料表容易形成瓶頸。於是,DML就被一種新的分配方法Locally Mangage Tablespace(LMT)所取代。
目前的Oracle資料庫,都是預設使用LMT方法的。LMT簡單來說,就是利用位元影像表技術,將分配extent的方法和記錄記錄在資料檔案的檔案頭上。這樣,不同檔案的分配壓力,就從一個資料表上分散到多個檔案上。
目前的Oracle資料庫,是可以同時支援LMT和DMT的。但是,新系統一般都會使用LMT。LMT策略下,有存在分配extent大小的問題。
每次進行extent分配的策略,有系統自動和統一大小uniform. size兩種方法。
automatic allocation自動分配大小。對每個分配extent的大小,由系統自動進行大小判定。這種方式的優點是每次的extent大小比較靈活。但是缺點也是很嚴重,就是引起大量的儲存片段。
uniform. size統一大小。每次分配的extent的大小都是固定的,這樣可以很大程度的避免片段問題。預設uniform. size大小是1M。
3、段segment管理原則
最後介紹資料表空間建立參數中的segment管理原則。segment對應的通常是一個資料庫留存對象資訊,如資料區段、索引段、復原段。Segment space management對應的是對segment空間管理的策略,目前有auto和manual兩種方式。
ASSM(auto)方式:ASSM是代表新趨勢的技術,10g中對應的shrink space功能,就是以ASSM技術作為基礎,有效減低HWM,避免出現過多的空間浪費。在過去需要設計的pctfree、pctlist等參數,也使用自動化方式進行管理;
手工(Manual)方式:與自動ASSM相對應。與ASSM不同在於每個segment對象都能擁有獨立的儲存設定參數;
在segment管理原則上,目前一般都選擇ASSM策略。但並不意味著ASSM是萬能的,還存在一些局限。
exp 使用者名稱/密碼@ORCL file=d:\daochu.dmp full=y
oracle資料表空間的建立、修改、刪除及一些參數解釋