Oracle 存储结构_表空间简介
生活随笔
收集整理的這篇文章主要介紹了
Oracle 存储结构_表空间简介
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.什么是表空間
???????? 表空間是Oracle 1個虛擬概念,它用于存放數據文件dbf, 也就是說表空間是oracle表數據存放到數據文件的一個中間結構。一般來講,oracle 一張表(非分區表)只屬于1個表空間, 它的數據可以分散存儲在這個表空間內多個數據文件中。
???????? 如下圖:
?????????
?
???????? 當然上圖還包括 block, extend, segment的信息,將就看吧..
2.查看oracle的表空間
?????????? 可以用如下視圖來查看oracle的表空間:
?????????? select * from dba_tablespaces;
??????????
?
?????????? 可以見到有6個表空間。
?????????? 2.1 System 表空間.
?????????????????? system 表空間存放的是Oracle數據庫本身的信息, 我們知道oracle包含大量的數據字典,這些數據字典是已表的形式存放在數據庫中的,這些表就存放在system表空間。
?????????? 2.2 Sysaux 表空間
??????????????????? sysaus 表空間可以看成system表空間的一個附屬表空間, 它里面也是存放數據庫的相關信息,sysaus和system表空間一樣必須同時在線,否則oracle數據庫不能啟動。
?
?????????? 2.3 undo 表空間
??????????????????? 可以看成是回滾表空間, 當server process修改1個data buffer時, 會將修改前的狀態放入這個表空間中.
??????????
?????????? 2.4 TEMP 表空間
??????????????????? Temp里面存放的是臨時數據, 例如1個server process PGA里面空間不夠用,那么它很可能會占用臨時表空間。
??????????????????? Temp表空間內的數據并不重要, 但是Temp表空間必須存在,而且必須有一定的空間,否則運行大型sql語句時很可能會出錯
??????????????????? 上面4個表空間都可以看作Oracle數據本身的系統表空間, 正常來講每個數據庫都應該存在上述4個表空間。
??????????????????
? ? ? ? ? ? ? ? ? ? 而其他表空間就是用來存放用戶數據的表空間了。
??????????
3.查看oracle的表空間內的數據文件
???????????????????? 利用dba_data_files可以查看數據庫的數據文件分別屬于哪個表空間.
??????
?????????????????????
????????????????????? 可以看到上面只有5個數據文件, 并沒有temp表空間的數據文件, 是不是temp 表空間不需要數據文件呢?
????????????????????? 其實temp表空間也有文件,但是并不是叫數據文件, 而是叫臨時文件。
????????????????????? 可用如下命令來查看臨時文件
????????????????????
4.oracle是多表空間數據庫
??????? 其他常見的數據庫,例如sybase, sql server 是多數據庫結構, 也就是1個實例里可以包含多個數據庫,其中有系統數據庫,tem數據庫,用戶數據庫等。
?????
??????? 而oracle 1個實例只有1個數據庫, 但是有多個表空間。
??????? 可以這樣理解, sybase 利用多數據庫將表歸類, 而oracle 利用多表空間將表歸類..
?
5.介紹下schema的概念。
?????? oracle的大概邏輯和物理結圖如下圖所示:
?
????????? 如上圖的邏輯部分, 從上到下都是1對多的關系。
????????? 其中,方案的原單詞是schema, 也可以譯成模式啦.
?????????? 那么schema是什么呢. 教材上的定義如下:
????????? schema 是數據庫用戶(users)擁有的數據庫對象的集合。 schema對象是直接引用數據庫的邏輯結構,schema對象包括table,view,sequence,stored procedure, index..等結構。 一般而言, schema對象包括應用程序在數據庫中創建的任何內容。
??????????? 簡單解析下:
?????????? oracle數據庫中, 每1個數據庫對象(表,索引,過程等)都必須屬于某1個用戶, 那么某1個用戶名下所有的對象就組成了1個模式,假如數據庫中有20個用戶, 那么這個數據庫所有的對象可以看成由20個模式組成的。
??????????? 所以上圖這中數據庫與模式也是一對多的關系啦,有多少個用戶就有多少個模式。
???????? 表空間是Oracle 1個虛擬概念,它用于存放數據文件dbf, 也就是說表空間是oracle表數據存放到數據文件的一個中間結構。一般來講,oracle 一張表(非分區表)只屬于1個表空間, 它的數據可以分散存儲在這個表空間內多個數據文件中。
???????? 如下圖:
?????????
?
???????? 當然上圖還包括 block, extend, segment的信息,將就看吧..
2.查看oracle的表空間
?????????? 可以用如下視圖來查看oracle的表空間:
?????????? select * from dba_tablespaces;
??????????
?
?????????? 可以見到有6個表空間。
?????????? 2.1 System 表空間.
?????????????????? system 表空間存放的是Oracle數據庫本身的信息, 我們知道oracle包含大量的數據字典,這些數據字典是已表的形式存放在數據庫中的,這些表就存放在system表空間。
?????????? 2.2 Sysaux 表空間
??????????????????? sysaus 表空間可以看成system表空間的一個附屬表空間, 它里面也是存放數據庫的相關信息,sysaus和system表空間一樣必須同時在線,否則oracle數據庫不能啟動。
?
?????????? 2.3 undo 表空間
??????????????????? 可以看成是回滾表空間, 當server process修改1個data buffer時, 會將修改前的狀態放入這個表空間中.
??????????
?????????? 2.4 TEMP 表空間
??????????????????? Temp里面存放的是臨時數據, 例如1個server process PGA里面空間不夠用,那么它很可能會占用臨時表空間。
??????????????????? Temp表空間內的數據并不重要, 但是Temp表空間必須存在,而且必須有一定的空間,否則運行大型sql語句時很可能會出錯
??????????????????? 上面4個表空間都可以看作Oracle數據本身的系統表空間, 正常來講每個數據庫都應該存在上述4個表空間。
??????????????????
? ? ? ? ? ? ? ? ? ? 而其他表空間就是用來存放用戶數據的表空間了。
??????????
3.查看oracle的表空間內的數據文件
???????????????????? 利用dba_data_files可以查看數據庫的數據文件分別屬于哪個表空間.
??????
?????????????????????
????????????????????? 可以看到上面只有5個數據文件, 并沒有temp表空間的數據文件, 是不是temp 表空間不需要數據文件呢?
????????????????????? 其實temp表空間也有文件,但是并不是叫數據文件, 而是叫臨時文件。
????????????????????? 可用如下命令來查看臨時文件
????????????????????
4.oracle是多表空間數據庫
??????? 其他常見的數據庫,例如sybase, sql server 是多數據庫結構, 也就是1個實例里可以包含多個數據庫,其中有系統數據庫,tem數據庫,用戶數據庫等。
?????
??????? 而oracle 1個實例只有1個數據庫, 但是有多個表空間。
??????? 可以這樣理解, sybase 利用多數據庫將表歸類, 而oracle 利用多表空間將表歸類..
?
5.介紹下schema的概念。
?????? oracle的大概邏輯和物理結圖如下圖所示:
?
????????? 如上圖的邏輯部分, 從上到下都是1對多的關系。
????????? 其中,方案的原單詞是schema, 也可以譯成模式啦.
?????????? 那么schema是什么呢. 教材上的定義如下:
????????? schema 是數據庫用戶(users)擁有的數據庫對象的集合。 schema對象是直接引用數據庫的邏輯結構,schema對象包括table,view,sequence,stored procedure, index..等結構。 一般而言, schema對象包括應用程序在數據庫中創建的任何內容。
??????????? 簡單解析下:
?????????? oracle數據庫中, 每1個數據庫對象(表,索引,過程等)都必須屬于某1個用戶, 那么某1個用戶名下所有的對象就組成了1個模式,假如數據庫中有20個用戶, 那么這個數據庫所有的對象可以看成由20個模式組成的。
??????????? 所以上圖這中數據庫與模式也是一對多的關系啦,有多少個用戶就有多少個模式。
總結
以上是生活随笔為你收集整理的Oracle 存储结构_表空间简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言结构体介绍及用法
- 下一篇: C语言 关于指针的格式化