Oracle存儲結構
Oracle存儲結構分爲。物理存儲結構和邏輯存儲結構兩種,他們之間既相互獨立又相互聯繫。
1 邏輯存儲結構:主要描述的是Oracle內部存儲結構,它和操作系統平臺沒有關係,是由Oracle數據庫創建和管理的。它是由表空間、段、區、塊組成的。
1表空間:表空間是最大的邏輯單位,一個數據庫可以有多個表空間,一個表空間可以有多個數據文件(一個數據文件只能屬於一個表空間)。
System表空間:系統表空間,存放關於表空間的名稱、控制文件、數據文件等管理信息。
查詢數據庫中有哪些表空間可用如下語句
SQL> select * from v$tablespace;
Oracle存儲結構分爲。物理存儲結構和邏輯存儲結構兩種,他們之間既相互獨立又相互聯繫。
1 邏輯存儲結構:主要描述的是Oracle內部存儲結構,它和操作系統平臺沒有關係,是由Oracle數據庫創建和管理的。它是由表空間、段、區、塊組成的。
1表空間:表空間是最大的邏輯單位,一個數據庫可以有多個表空間,一個表空間可以有多個數據文件(一個數據文件只能屬於一個表空間)。
System表空間:系統表空間,存放關於表空間的名稱、控制文件、數據文件等管理信息。
查詢數據庫中有哪些表空間可用如下語句
SQL> select * from v$tablespace;
TS# NAME INC BIG FLA ENC
---------- ------------------------------ --- --- --- ---
0 SYSTEM YES NO YES
1 UNDOTBS1 YES NO YES
2 SYSAUX YES NO YES
4 USERS YES NO YES
3 TEMP NO NO YES
6 EXAMPLE YES NO YES
---------- ------------------------------ --- --- --- ---
0 SYSTEM YES NO YES
1 UNDOTBS1 YES NO YES
2 SYSAUX YES NO YES
4 USERS YES NO YES
3 TEMP NO NO YES
6 EXAMPLE YES NO YES
6 rows selected.
2 段用於存儲表空間中某一種特定的具有獨立存儲結構的對象的所有數據,他是由一個或者多個區組成。
段分爲如下幾種類型
表段(數據段):數據段中存儲表中的所有數據,當某個用戶創建表時,就會在該用戶的默認表空間中爲表分配一個和表名相同的數據段,以便存儲該表中的數據。一個表空間中創建了幾個表,該表空間中就有幾個數據段。
SQL> conn scott/tiger
Connected.
段分爲如下幾種類型
表段(數據段):數據段中存儲表中的所有數據,當某個用戶創建表時,就會在該用戶的默認表空間中爲表分配一個和表名相同的數據段,以便存儲該表中的數據。一個表空間中創建了幾個表,該表空間中就有幾個數據段。
SQL> conn scott/tiger
Connected.
SQL> column segment_name format a20
SQL> column partition_name format a10
SQL> select * from user_extents;
SQL> column partition_name format a10
SQL> select * from user_extents;
SEGMENT_NAME PARTITION_ SEGMENT_TYPE TABLESPACE_NAME EXTENT_ID BYTES BLOCKS
-------------------- ---------- ------------------ ------------------------------ ---------- ---------- ----------
DEPT TABLE USERS 0 65536 8
EMP TABLE USERS 0 65536 8
BONUS TABLE USERS 0 65536 8
SALGRADE TABLE USERS 0 65536 8
PK_DEPT INDEX USERS 0 65536 8
PK_EMP INDEX USERS 0 65536 8
-------------------- ---------- ------------------ ------------------------------ ---------- ---------- ----------
DEPT TABLE USERS 0 65536 8
EMP TABLE USERS 0 65536 8
BONUS TABLE USERS 0 65536 8
SALGRADE TABLE USERS 0 65536 8
PK_DEPT INDEX USERS 0 65536 8
PK_EMP INDEX USERS 0 65536 8
6 rows selected.
索引段:索引段存儲索引的所有數據
SQL> column index_name format a15
SQL> column table_owmer format a10
SQL> column table_name format a15
SQL> column tablespace_name format a15
SQL> /
索引段:索引段存儲索引的所有數據
SQL> column index_name format a15
SQL> column table_owmer format a10
SQL> column table_name format a15
SQL> column tablespace_name format a15
SQL> /
INDEX_NAME TABLE_OWNER TABLE_NAME TABLESPACE_NAME
--------------- ------------------------------ --------------- ---------------
PK_EMP SCOTT EMP USERS
PK_DEPT SCOTT DEPT USERS
臨時段:臨時段存儲排序操作所產生的臨時數據。所有用戶默認的臨時表空間都是TEMP表空間。
回退段:回退段存儲數據修改之前的位置和值(面臨淘汰)。9i以後增加了UNDO表空間,並增加了自動撤銷功能來代替回退段的功能。
SQL> show parameter undo_management
--------------- ------------------------------ --------------- ---------------
PK_EMP SCOTT EMP USERS
PK_DEPT SCOTT DEPT USERS
臨時段:臨時段存儲排序操作所產生的臨時數據。所有用戶默認的臨時表空間都是TEMP表空間。
回退段:回退段存儲數據修改之前的位置和值(面臨淘汰)。9i以後增加了UNDO表空間,並增加了自動撤銷功能來代替回退段的功能。
SQL> show parameter undo_management
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
------------------------------------ ----------- ------------------------------
undo_management string AUTO
AUTO表示使用的是自動撤銷管理功能,若要使用回退段功能則將AUTO修改爲MANAUL。
3區,區是由物理上連續存放的塊組成的。
4塊,塊是最小的數據管理單位,也是執行輸入輸出時的最小單位。塊的大小是操作系統塊大小的整數倍。
2物理存儲結構:主要描述Oracle數據庫的外部存儲結構,即在操作系統中如何組織管理數據。它和操作系統平臺相關的。
2.1控制文件:控制文件是數據庫的關鍵性文件,對數據庫的成功啓動和正常運行是至關重要的,它存儲的信息包括:
數據庫的名稱
數據文件、重做日誌文件的名稱、位置和大小
發生磁盤故障或用戶錯誤時,用於恢復數據庫的信息
SQL> select name from v$controlfile;
3區,區是由物理上連續存放的塊組成的。
4塊,塊是最小的數據管理單位,也是執行輸入輸出時的最小單位。塊的大小是操作系統塊大小的整數倍。
2物理存儲結構:主要描述Oracle數據庫的外部存儲結構,即在操作系統中如何組織管理數據。它和操作系統平臺相關的。
2.1控制文件:控制文件是數據庫的關鍵性文件,對數據庫的成功啓動和正常運行是至關重要的,它存儲的信息包括:
數據庫的名稱
數據文件、重做日誌文件的名稱、位置和大小
發生磁盤故障或用戶錯誤時,用於恢復數據庫的信息
SQL> select name from v$controlfile;
NAME
--------------------------------------------------
/u01/app/oracle/oradata/dgdemo/control0ctl
/u01/app/oracle/oradata/dgdemo/control02.ctl
/u01/app/oracle/oradata/dgdemo/control03.ctl
--------------------------------------------------
/u01/app/oracle/oradata/dgdemo/control0ctl
/u01/app/oracle/oradata/dgdemo/control02.ctl
/u01/app/oracle/oradata/dgdemo/control03.ctl
2.2數據文件:數據文件是實際存儲插入到數據庫表中的實際數據的操作系統文件
SQL> select name from v$datafile;
SQL> select name from v$datafile;
NAME
--------------------------------------------------
/u01/app/oracle/oradata/dgdemo/system0dbf
/u01/app/oracle/oradata/dgdemo/undotbs0dbf
/u01/app/oracle/oradata/dgdemo/sysaux0dbf
/u01/app/oracle/oradata/dgdemo/users0dbf
/u01/app/oracle/oradata/dgdemo/example0dbf
--------------------------------------------------
/u01/app/oracle/oradata/dgdemo/system0dbf
/u01/app/oracle/oradata/dgdemo/undotbs0dbf
/u01/app/oracle/oradata/dgdemo/sysaux0dbf
/u01/app/oracle/oradata/dgdemo/users0dbf
/u01/app/oracle/oradata/dgdemo/example0dbf
2.3重做日誌文件:當用戶對數據庫修改時侯,Oracle實際上是先在內存中進行修改,然後再集中的將內存中的修改結果成批的寫入數據文件中。
SQL> select member from v$logfile;
MEMBER
-------------------------------------------------
/u01/app/oracle/oradata/dgdemo/redo03.log
/u01/app/oracle/oradata/dgdemo/redo02.log
/u01/app/oracle/oradata/dgdemo/redo0log
/u01/app/oracle/oradata/dgdemo/stdbyredo0log
/u01/app/oracle/oradata/dgdemo/stdbyredo02.log
/u01/app/oracle/oradata/dgdemo/stdbyredo03.log
/u01/app/oracle/oradata/dgdemo/stdbyredo04.log
-------------------------------------------------
/u01/app/oracle/oradata/dgdemo/redo03.log
/u01/app/oracle/oradata/dgdemo/redo02.log
/u01/app/oracle/oradata/dgdemo/redo0log
/u01/app/oracle/oradata/dgdemo/stdbyredo0log
/u01/app/oracle/oradata/dgdemo/stdbyredo02.log
/u01/app/oracle/oradata/dgdemo/stdbyredo03.log
/u01/app/oracle/oradata/dgdemo/stdbyredo04.log
2.4參數文件:參數文件分爲文本參數文件(Pfile)和服務器參數文件(Spfile)
2.5口令文件:口令文件是二進制文件,用以驗證特權用戶。
2.6歸檔日誌文件:非活動的重做日誌文件的備份。
2.7後臺進程跟蹤文件:記錄後臺進程的警告或錯誤信息,每個後臺進程都有相應的跟蹤文件
2.8服務進程跟蹤文件:記錄服務進程的相關信息,用於跟蹤SQL語句、診斷SQL語句的性能,並實施相應的性能調整。
2.5口令文件:口令文件是二進制文件,用以驗證特權用戶。
2.6歸檔日誌文件:非活動的重做日誌文件的備份。
2.7後臺進程跟蹤文件:記錄後臺進程的警告或錯誤信息,每個後臺進程都有相應的跟蹤文件
2.8服務進程跟蹤文件:記錄服務進程的相關信息,用於跟蹤SQL語句、診斷SQL語句的性能,並實施相應的性能調整。