今天看第二章 是資料庫物件管理
首先 資料庫物件,是表,檢視,約束,儲存過程,觸發器之類的
書上有提到表空間一詞,表空間就是用來儲存這些資料庫物件滴~
建立表空間物件~3種建立方式
1、autoallocate(自動分配)
create tablespace t1
datafile 'e:\t1_1.dbf' size 2m
autoallocate;
t1是邏輯命名,t1_1是物理儲存的名字
預設情況下,表空間的區管理為本地管理方式,不需要寫語句
2、uniform(區分配)
create tablespace t2
datafile 'e:\t2_1.dbf' size 1m,
'e:\t2_2.dbf' size 2m
uniform size 128k;
用這個方式,乙個表空間能夠對應多個資料檔案,不過,不理解最後的size 128m是什麼意思~
oracle中表,索引,分割槽等都叫做段,每個段是有多個物理上不連續的區間組成;當段的空間不夠時oracle是通過增加區間來實現的。uniform size就是這個表空間中所有的區間是同樣的大小,好處是防止碎片
如果按上所言,應該是表空間中所有區間都是128k大
3、auto(段管理)
create tablespace t3
datafile 'e:\t3_1.dbf' size 1m
autoextend on next 2m
maxsize 10m
segment space management auto
段管理方式在預設情況下為manual(手動)
除了上述三種表空間的建立之外,臨時表空間的建立,以及撤銷表空間也是用到了create tablespace語句
create temporary tablespace temtbs1
tempfile 'e:\temptbs1_1.dbf' size 2m;
create undo tablespace undotbss1
datafile 'e:\undotbs1_1.dbf' size 2m;
還不明白臨時表和撤銷表空間的作用,至少目前我看它們依舊都是佔了我所打**的2m的空間……
不指定temporary或者undo則預設永久表空間
查詢表空間資訊:
select tablespace_name tbs_name,
extent_management extent_mgt,
segment_space_management segment_mgt,
status,contents
from dba_tablespaces
where tablespace_name = 't1';
查詢是乙個非常想砍人的工作,結論如下:
1、如果selcet *,結果是全部出來了,但是完全無序化,看著非常糾結(因為表頭過長導致)
2、條件句where之後的tablespace_name不可用縮寫,提示標示符無效
3、由於我建立的表空間名為小寫,於是一開始條件語句上寫的是小寫t1,結果提示「未選定行」,往書下面一看,很好~「在查詢條件中,表空間的名稱必須全部用大寫字母,否則會出現查不到該錶空間的情況」
我很想懷疑下這些語句是不是全部被自動大寫化了~
修改表空間:
當表空間的物理資料檔案容量不足時,可以通過為表空間增大資料檔案容量或增加資料檔案的個數兩種方式來實現表空間的修改
1、增加資料檔案
alter tablespace t1 ;我很想罵人的,怎麼這個時候就可以用小寫了!!!!
add datafile 'e:\t1_2.dbf' size 2m;
所增加的資料檔案可以放在其他的磁碟位置,要寫正確完整的路徑,如果只寫檔名,則該資料檔案被存放在oracle預設路徑下,另,副檔名不一定是dbf
2、修改資料檔案大小
alter database
datafile 'e:\t1_1.dbf'
resize 4m;
修改表空間狀態:
alter tablespace t1 offline;
刪除表空間:
drop tablespace t3
including contents and datafiles;
最後一句是:刪除表空間中的資料及資料檔案
今天到這裡了~~睡覺 z好眠
Oracle 起步日記(10) 程序檢測
終於看到了資料庫狀態監測了 乙個寒假被我悲催的揮霍過去了 不太爽 總之 加油 資料庫狀態監測,需要dba監測的主要有與資料庫建立的會話,資料檔案,控制檔案,重做日誌檔案,物件等 任何乙個連線都會用到資料庫的後台程序,一般常用的後台程序有dbwr lgwr smon pmon ckpt arch re...
oracle表空間建立2
這裡介紹建立oracle表空間的步驟,首先查詢空閒空間 增加oracle表空間 修改檔案大小語句如下 建立oracle表空間,最後更改自動擴充套件屬性。ad 1 先查詢空閒空間 select tablespace name,file id,block id,bytes,blocks from dba...
Oracle 起步日記(7) 觸發器
觸發器是被隱含執行的儲存過程 在為某物件建立觸發器時,首先要保證物件不屬於sys使用者 因為不可對sys擁有的物件建立觸發器 1 建立before觸發器 create or replace trigger tr fmodify student before update on student beg...