日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Oracle學(xué)習(xí)筆記(6)表空間和數(shù)據(jù)文件

 憂郁_小剛 2011-05-20

表空間和數(shù)據(jù)文件

 

1、Database 按邏輯劃分(一對多): Tablespace(邏輯區(qū)域:表空間) > Segment(某一個特定邏輯結(jié)構(gòu)所占用空間的集合:段【table/index/temp/rollback】) > Extent(空間分配單位:分區(qū))> Oracle Block(Oracle使用和存儲單位:塊) > OS Block
 Tablespace 按物理結(jié)構(gòu)劃分(一對多):Datafile > OS Block
(注意:分區(qū)單位=塊的整數(shù)倍。)
sql>select * from v$datafile
sql>select t1.name,t2.name from v$tablespace t1,v$datafile t2 where t1.ts#=t2.ts#
sql>alter tablespace users add datafile 'd:\oracle\oradata\fox\users02.dbf' size 10m

 

2、系統(tǒng)表空間和非系統(tǒng)表空間

(SYSTEM TABLESPACE /NON-SYSTEM TABLESPACE)
system tablespace 系統(tǒng)表空間:數(shù)據(jù)庫信息、數(shù)據(jù)字典、系統(tǒng)回滾段(dba_rollback_seqs)
non-system tablespace 非系統(tǒng)表空間:分離段(只讀和讀寫數(shù)據(jù)分開)、方便管理每個表空間、控制用戶的空間限額
sql>alter user kong quota 10m on users;

 

3、創(chuàng)建表空間:
 語法:

 CREATE Tablespace XXX
    [datafile 'xxx']--OMF
   SIZE xxx--kb,mb
   EXTENT MANAGEMENT local/dictionary --分區(qū)管理(local 本地管理/dictionary 字典管理)
   DEFAULT STORAGE (XXX) ---默認(rèn)管理方式(只用于字典管理分區(qū)):initial/next/pctincrease/min extents/max extents...
==================================
CREATE  TABLESPACE userdata
DATAFILE '/u01/oradata/userdata01.dbf' SIZE 100M
AUTOEXTEND ON NEXT 5M MAXSIZE 200M;

==================================
sql> create tablespace kong
     datafile 'd:\oracle\oradata\fox\kong.dbf' size 5m
     extent management dictionary
     default storage (initial 100k next 100k
     pctincrease 10)
     offline


本地管理:自由空間記錄在bitmap位圖中(0/1)。每一個bit響應(yīng)一個塊或塊的集合。bit值指示它是否

free 或 used??臻g分配時或回收時并不需要和數(shù)據(jù)字典表打交道,不跟系統(tǒng)表產(chǎn)生資源征用,不會產(chǎn)生回滾數(shù)據(jù)(不需要修改數(shù)據(jù)表),不會產(chǎn)生遞歸資源的征用。

 兩種分配方式:UNIFORM <統(tǒng)一分配>/ autoallocate <自動分配>

sql>create tablespace kong1
    datafile 'd:\oracle\oradata\fox\kong1.dbf' size 5m
    extent management local
    uniform size 1m 

sql> create tablespace kong2
     datafile 'd:\oracle\oradata\fox\kong2.dbf' size 5m
     extent management local autoallocate;

字典管理:默認(rèn)管理方式。自由空間記錄在數(shù)據(jù)字典表中。產(chǎn)生回滾數(shù)據(jù)。也會產(chǎn)生不必要的遞歸空間所帶來的負(fù)擔(dān)。優(yōu)點(diǎn):可以控制表空間分配和使用情況。每個段存儲在同一個表空間中可以有不同的存儲參數(shù)。缺點(diǎn):產(chǎn)生碎片,存在碎片壓縮的問題。
=======================
CREATE TABLE userdata DATAFILE '/u01/oradata/userdata01.dbf' SIZE 500M
EXTENT MANAGEMENT DICTIONARY
DEFAULT STORAGE(initial 1M NEXT 1M )
=======================

字典管理方式更改存儲參數(shù)設(shè)定:
 ALTER TABLESPACE userdata MINIMUM EXTENT 2M
 ALTER TABLESPACE userdata DEFAULT STORAGE(INITIAL 2M NEXT 2M MAXEXTENTS 999);

sql>alter tablespace kong
    minimum extent 10m;
sql>alter tablespace kong
    default storage(initial 1m
    next 1m
    pctincrease 20);
   
4、Undo(回滾) 表空間:
   用來儲存Undo段(回滾段),不可以保存其他任何對象,分區(qū)使用本地管理,只能使用DATAFILE、EXTENT

MANAGEMENT 來創(chuàng)建回滾Undo表空間。
===================================
CREATE UNDO TABLESPACE undo1 DATAFILE '/u01/oradata/undo01.dbf' SIZE 40m
================================
   回滾Undo段:環(huán)路順序循環(huán)使用,處理舊值。提供讀一致性,允許回滾section
sql>delete kong.sales; //刪除數(shù)據(jù)操作
sql>select * from kong.sales;  //只要沒有commit,就將舊數(shù)據(jù)保存在回滾段中。
sql>rollback;  //舊數(shù)據(jù)從回滾段中恢復(fù)
sql>select * from kong.sales; //舊數(shù)據(jù)重現(xiàn)
sql>show parameter undo

sql>create undo tablespace kong3
    datafile 'd:\oracle\oradata\fox\kong3.ora' size 5m
    extent management local

sql>create table tt1(id int) tablespace kong3;   //此時不能在撤銷表空間中創(chuàng)建段。

 

5、Temporary Tablespace 臨時表空間
   用于排序,不可以存儲任何其他永久對象。建議使用本地管理分區(qū)extends。
sql> select * from kong.sales order by qty desc;    //邏輯上的排序(數(shù)量上的代謝哦?。?,Oracle嘗試儲存在內(nèi)存區(qū)域中進(jìn)行,如果內(nèi)存區(qū)域不夠,就使用臨時段(temp segment)來支持排序.

sql>create temporary tablespace kong4
    tempfile 'd:\oracle\oradata\fox\kong4.ora' size 5m
    extent management local;
sql>create table tt1 (id int) tablespace kong4;  //不允許將永久對象存放在Temporarytablespace中。

 

默認(rèn)(Default)臨時表空間:創(chuàng)建用戶時,允許你指定一個datase范圍的一個默認(rèn)的臨時表空間,避免了使用一個系統(tǒng)的表空間存儲臨時數(shù)據(jù)??梢允褂肅reate database 和Alter database 命令來創(chuàng)建和修改臨時表空間。默認(rèn)的臨時表空間是本地管理的。

sql>alter databse default temporary tablespace kong4;  //指定表空間為臨時表空間。

默認(rèn)臨時表空間的約束限制條件:不考慮備份,不能drop刪除,不能只讀,不能離線,不能修改默認(rèn)表空間為永久表空間。
sql>alter tablespace kong4 offline; //不允許離線
sql>alter tablespace kong4  read only; //不允許只讀
sql>drop tablespace kong4;// 不允許刪除 

 

6、OFFLINE STATUS 離線狀態(tài)(可以部分的關(guān)閉數(shù)據(jù)庫):

  不是所有表空間都可以是離線狀態(tài)。系統(tǒng)表空間、活動的Undo回滾段、默認(rèn)臨時表空間就無法處于離線狀態(tài)。
sql> select * from kong.sales;
sql> alter tablespace users offline; //設(shè)置表空間離線
sql> select * from kong.sales  //無法讀取表數(shù)據(jù)
sql> alter tablespace users online; //關(guān)閉離線狀態(tài)打開在線狀態(tài)。

 

7、READ ONLY Tablespace只讀狀態(tài)的表空間:表空間僅僅用于讀操作。數(shù)據(jù)對象能從只讀表空間中刪除。

建立一個只讀表空間放到可移動只讀媒介上(如光盤)方式:

ALTER TABLESPACE ...READ ONLY
MOVE the data file to the WORM drive
ALTER TABLESPACE..RENAME DATAFILE..;

sql>alter tablespace users read only;
sql>drop table employees;
sql>run

 

8、刪除表空間:
從數(shù)據(jù)字典中刪除表空間,表空間內(nèi)容從數(shù)據(jù)字典中刪除,也可以將物理數(shù)據(jù)文件一起刪除。
================================
DROP TABLESPACE userdata
  INCLUDING CONTENTS AND DATAFILES;
================================

sql>conn sys/admin1@fox as sysdba
sql>grant dba to kong;
sql>create table tt1 (id int) tablespace kong1;  //在表空間kong1上創(chuàng)建表tt1
sql>drop tablespace kong1;  //刪除表空間kong1
sql>input INCLUDING contents
sql>run       //只刪除內(nèi)容
   
sql>drop tablespace kong2 including contents and datafiles;  //刪除了表空間kong2的內(nèi)容和物理數(shù)據(jù)文件。

 

9、擴(kuò)展表空間:自動/手工(resize 改變大小 或 添加新的數(shù)據(jù)文件)
(1)自動擴(kuò)展 AUTOEXTEND
===================
ALTER DATABASE DATAFILE
 ' /u01/oradata/userdata02.dbf' SIZE 200M
AUTOEXTEND ON NEXT 10M MAXSIZE 500M;

========================
sql>alter database datafile 'd:\oracle\oradata\fox\kong.dbf'
  2 autoextend on;
sql>del 2
sql>input resize 50m
sql>l
sql>run        //DML/query訪問的文件11處于脫機(jī)狀態(tài)
sql>alter tablespace kong online; //將表空間設(shè)置為在線狀態(tài)。
sql>alter database datafile 'd:\oracle\oradata\fox\kong.dbf' resize 50m;
sql>alter tablespace kong
    add datafile 'd:\oracle\oradata\fox\konga.dbf' size 10m; //添加新的文件

 

10、移動數(shù)據(jù)文件:
 ALTER TABLESPACE 表空間必須是離線的。目標(biāo)物理數(shù)據(jù)文件必須存在。
 sql> alter tablespace kong offline; 
手動修改konga.dbf 改為 kong01.dbf
 sql> alter tablespace kong rename datafile 'd:\oracle\oradata\fox\konga.dbf' to 'd:\oracle\oradata\fox\kong01.dbf'
【注意】sql> alter tablespace system offline; //數(shù)據(jù)字典內(nèi)容是必須的,不能離線。

 

比較:ALTER DATABASE 數(shù)據(jù)庫必須shutdown并且啟動到mounted狀態(tài) ,目標(biāo)數(shù)據(jù)文件必須存在。
ALTER DATABASE RENAME FILE '/u01/oradata/system01.dbf' TO '/u03/oradata/system01.dbf';

 

11、OMF(Oralce Managed Files): Oracle管理文件機(jī)制
sql>alter system set db_create_file_dest='d:\oracle\oralog';
sql>create tablespace omftb;  //默認(rèn)配置文件100MB
sql>drop tablespace omftb; //刪除表空間,相應(yīng)的配置文件也一起刪除。

 

12、獲得表空間信息:
 表空間信息:DBA_TABLESPACES \V$TABLESPACE
 數(shù)據(jù)文件信息:DBA_DATA_FILES\V$DATAFILE
 臨時文件信息:DBA_TEMP_FILES\V$TEMPFILE
sql>select * from dba_tablespaces;
sql>select * from v$tablespace;
sql>select * from v$datafile;
sql>select * from dba_data_files;
 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多