標籤:硬碟 資料字典 oracle資料庫 命令 process datafile 修改 同義字 技術
資料檔案相關知識
想查看系統中有多少個資料檔案我們可以通過動態資料字典或待用資料字典來查看:通過待用資料字典查看資料檔案
通過動態資料字典來查看資料檔案
直接查看資料檔案的內容是看不到的,必須通過一個邏輯的結構即資料表空間來查看資料檔案的內容。資料表空間是一個邏輯儲存結構,而資料檔案是一個物理的結構。
如何查看錶空間
也可以通過dba_tablespaces查看錶空間
資料字典是一個邏輯的儲存結構,而資料檔案是一個真實的儲存結構,如果有了資料表空間,而沒有資料檔案是不可以,資料表空間和資料檔案是相對應的,如果沒有資料檔案,資料表空間不可能獨立存在,如果只有資料表空間沒有資料檔案也是不行的,就好比如果電腦沒有硬碟,你不能再邏輯上看到C盤D盤,在這裡硬碟就相當於是資料檔案,而C盤就相當於是資料表空間。我們可以把多個資料檔案組成一個資料表空間,然後在資料表空間裡面儲存資料,資料表空間和資料檔案是對應的,一個資料表空間可以是由一個或多個資料檔案組成的,但是一個資料檔案只能在一個資料表空間當中,我們如何查看錶空間和資料檔案之間的對應關係呢?
也可以查看錶空間的大小
也可以在上述的資料表空間中建立新的資料檔案。如果資料表空間不夠用了,只需建立相應的資料檔案即可。資料表空間大小就是組成資料檔案的大小的總和,最終資料檔案存放在硬碟裡的,但是我們可以把資料檔案存放在不同的硬碟裡面,只要在一個資料表空間即可,這樣就解決了硬碟大小對檔案的限制,可以將多個硬碟中的資料檔案組成一個資料表空間。
所以在資料表空間中DBA會存放很多的表,視圖,索引,同義字等對象。
段:例如在xx資料表空間DBA建立了一個名為test的表,這張表資料表空間所佔用的空間,我們稱之為段。根據段中儲存的對象的不同分為了資料區段,索引段,回退段,臨時段等
可以查看段的資訊
對於段又有個更小的單位,稱之為“區”
區(extent):區是磁碟空間分配的最小單位,磁碟按區劃分,每次至少分配一個區,區由連續的資料區塊組成,段主要由一個或多個區構成,當段建立時,它至少包含一個區,當段中所有空間已經使用完成時,系統自動為該段分配一個新區,區不能跨資料檔案存在,只能存在於一個資料檔案中。
段是由區組成的,段必須是區的整數倍,假如一張表是25MB,一個區大小是4MB,那麼段的大小是28MB,如果在表裡添加了3MB的資料,此時段的空間還能容納表,現在表的大小是28MB,如果又添加了1MB,此時29MB,那麼段的空間是32MB.
查看EXAMPLE資料表空間的區和段的分布情況
在oracle資料庫中最小的儲存單位是塊(block)--8KB,oracle資料庫中的資料存放區於資料區塊中。資料區塊是oracle伺服器所能讀取或寫入的最小儲存單元,oracle伺服器以資料區塊為單位管理資料檔案的儲存空間,資料區塊的取值範圍為2-64KB,其預設大小與oracle版本有關。
查看作業系統的最小儲存單元
[[email protected] ~]# tune2fs -l /dev/sda1
通過OEM也可以查看這些資訊
建立資料表空間和資料檔案
SQL>create tablespace xx datafile ‘/u01/xx.dbf‘ size 100m autoextend on
2 next 5m maxsize 200m;
資料表空間已建立。
修改資料表空間的名字為yy
為了好管理,我們希望資料表空間的名字和資料檔案的名字一致。
解決辦法:
使用作業系統命令將資料檔案拷貝一份
把資料表空間offline
然後對資料檔案重新命名
將資料表空間offline
對資料檔案重新命名
查看修改情況
將資料表空間online
提示需要恢複/u01/yy.dbf
將資料表空間online
如何擴充資料表空間大小
- 直接改變資料檔案大小
2.給資料表空間增加資料檔案
如果資料表空間所在的分區的空間不夠用了
刪除資料表空間
建立暫存資料表空間
刪除暫存資料表空間與刪除資料表空間的命令是一樣的。
如果對此文有什麼問題的話,請加下面一起探討
Oracle 11g R2 儲存結構