數據文件相關知識
想查看系統中有多少個數據文件我們可以通過動態數據字典或靜態數據字典來查看:通過靜態數據字典查看數據文件
通過動態數據字典來查看數據文件
直接查看數據文件的內容是看不到的,必須通過一個邏輯的結構即表空間來查看數據文件的內容。表空間是一個邏輯存儲結構,而數據文件是一個物理的結構。
如何查看表空間
也可以通過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版本有關。
查看操作系統的最小存儲單元
[root@orclsrv ~]# 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

如何擴展表空間大小


如果表空間所在的分區的空間不夠用了


刪除表空間
創建臨時表空間

刪除臨時表空間與刪除表空間的命令是一樣的。
如果對此文有什么問題的話,請加下面微信一起探討
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。