簡述oracle資料庫結構
我們知道,oracle server是由oracle instance和oracle database兩大部分組成,下面我們簡述oracle
database的結構:
oracle資料庫由作業系統檔案組成,這些檔案為資料庫資訊提供實際物理儲存。
oracle資料庫主要物理檔案可分為三類:
(1)資料檔案
資料檔案儲存的是oracle資料庫的實際資料,包括各個表,索引,檢視等。資料檔案有三個特性:
.一個資料檔案只能屬於一個資料庫
.資料庫中的資料檔案可以設定成自動增長,就是說,當資料庫的空間用完後,資料庫的資料檔案就會自動增長,比如原來1G的資料檔案自動變成2G的資料檔案。
.一個或多個資料檔案組成了oracle資料庫的一個邏輯單位---tablespace
資料檔案分兩種:永久資料檔案和臨時資料檔案
我們可以透過以下命令來檢視永久資料檔案的名稱大小:
SYS@orcl 04-SEP-14>col name for a50
SYS@orcl 04-SEP-14>col bytes/1024/1024||'MB' for a25
SYS@orcl 04-SEP-14>select name,bytes/1024/1024||'MB' from v$datafile;
NAME BYTES/1024/1024||'MB'
-------------------------------------------------- -------------------------
/datafile/system01.dbf 680MB
/datafile/sysaux01.dbf 520MB
/datafile/undotbs01.dbf 60MB
/datafile/users01.dbf 5MB
/datafile/example01.dbf 100MB
/u01/app/datafile/test01.dbf 100MB
/datafile/hh01.dbf 10MB
/u01/app/datafile/goods01.dbf 50MB
8 rows selected.
可以透過如下命令檢視臨時資料檔案名稱和大小:
SYS@orcl 04-SEP-14>col name for a50
SYS@orcl 04-SEP-14>col bytes/1024/1024||'MB' for a25
SYS@orcl 04-SEP-14>select name,bytes/1024/1024||'MB' from v$tempfile;
NAME BYTES/1024/1024||'MB'
-------------------------------------------------- -------------------------
/u01/app/oracle/oradata/orcl/temp01.dbf 20MB
(2)控制檔案
每個資料庫都有控制檔案,控制檔案對於一個資料庫來說是十分重要的。它是一個二進位制檔案,
一般都很小,十幾兆到幾十兆。控制檔案中記錄的是資料庫物理結構的資訊,主要有:
.資料庫名稱
.資料檔案,重做日誌檔案的名稱和儲存位置
.資料庫建立時間戳
.表空間資訊
.備份檔案的資訊等
oracle可以使用多重資料檔案,也就是可以存在多個控制檔案的映象,這是保護資料庫的一種方法。
如果資料庫同時維護三個控制檔案,只要其中一個控制檔案損壞了資料庫都無法mount,為了讓
資料庫儘快開啟供使用者連線,較好的解決方法是把有問題的控制檔案刪除,把沒有問題的控制檔案
複製一份到原來的位置就可以了。當oracle資料庫的例項啟動的時候,它就會透過控制檔案來識別,
要想執行資料庫的一些操作,必須要知道是哪些資料檔案和重做日誌檔案以及這些檔案的位置。當
資料庫的物理結構發生改變時,比如增加了一個資料檔案或日誌檔案,增加了一個表空間等,控制
檔案就會自動更新記錄這些變化。
可以透過以下命令查詢控制檔案的資訊:
SYS@orcl 04-SEP-14>select name,block_size,file_size_blks from v$controlfile;
NAME BLOCK_SIZE FILE_SIZE_BLKS
-------------------------------------------------- ---------- --------------
/u01/app/controlfile/control01.ctl 16384 616
/u01/app/oracle/flash_recovery_area/orcl/control02 16384 616
.ctl
/u01/app/oracle/flash_recovery_area/orcl/control03 16384 616
.ctl
也可以透過show parameter 快速查詢控制檔案的存放路徑和數量:
SYS@orcl 04-SEP-14>show parameter control_files;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /u01/app/controlfile/control01
.ctl, /u01/app/oracle/flash_re
covery_area/orcl/control02.ctl
, /u01/app/oracle/flash_recove
ry_area/orcl/control03.ctl
如果想要檢視控制檔案裡到底存放了哪些資訊可以檢視v$controlfile_record_section:
SYS@orcl 04-SEP-14>col type for a30
SYS@orcl 04-SEP-14>select type,record_size from v$controlfile_record_section;
TYPE RECORD_SIZE
------------------------------ -----------
DATABASE 316
CKPT PROGRESS 8180
REDO THREAD 256
REDO LOG 72
DATAFILE 520
FILENAME 524
TABLESPACE 68
TEMPORARY FILENAME 56
RMAN CONFIGURATION 1108
LOG HISTORY 56
OFFLINE RANGE 200
TYPE RECORD_SIZE
------------------------------ -----------
ARCHIVED LOG 584
BACKUP SET 40
BACKUP PIECE 736
BACKUP DATAFILE 200
BACKUP REDOLOG 76
DATAFILE COPY 736
BACKUP CORRUPTION 44
COPY CORRUPTION 40
DELETED OBJECT 20
PROXY COPY 928
BACKUP SPFILE 124
TYPE RECORD_SIZE
------------------------------ -----------
DATABASE INCARNATION 56
FLASHBACK LOG 84
RECOVERY DESTINATION 180
INSTANCE SPACE RESERVATION 28
REMOVABLE RECOVERY FILES 32
RMAN STATUS 116
THREAD INSTANCE NAME MAPPING 80
MTTR 100
DATAFILE HISTORY 568
STANDBY DATABASE MATRIX 400
GUARANTEED RESTORE POINT 212
TYPE RECORD_SIZE
------------------------------ -----------
RESTORE POINT 212
DATABASE BLOCK CORRUPTION 80
ACM OPERATION 104
FOREIGN ARCHIVED LOG 604
37 rows selected.
也可以透過作業系統命令strings檢視二進位制控制檔案的內容:
[oracle@localhost orcl]$ strings control02.ctl|grep /datafile
/datafile/users01.dbf
/datafile/undotbs01.dbf
/datafile/sysaux01.dbf
/datafile/system01.dbf
/datafile/example01.dbf
/u01/app/datafile/test01.dbf
/datafile/hh01.dbf
/u01/app/datafile/goods01.dbf
/datafile/users01.dbf
/datafile/undotbs01.dbf
/datafile/sysaux01.dbf
/datafile/system01.dbf
/datafile/example01.dbf
/u01/app/datafile/test01.dbf
/datafile/hh01.dbf
/u01/app/datafile/goods01.dbf
u01/app/datafile/test01.dbf
u01/app/datafile/test01.dbf
u01/app/datafile/test01.dbf
/u01/app/datafile/hh01.dbf
u01/app/datafile/test01.dbf
u01/app/datafile/test01.dbf
u01/app/datafile/test01.dbf
/u01/app/datafile/hh01.dbf
/datafile/sysaux01.dbf
/datafile/hh01.dbf
(3)重做日誌檔案
資料庫的重做日誌檔案記錄了資料庫的所有修改資訊,用於故障恢復,重做日誌檔案的內容是由一條
條的redo entry組成的。當一個故障導致被修改的資料還未從記憶體永久寫入資料檔案,比突然的斷電,
那麼當資料庫重新啟動的時候丟失的資料是可以被恢復的,可以從最近的重做日誌檔案中讀取丟失的
資訊然後應用到資料檔案中,這樣就可以把資料庫恢復到斷電之前的狀態,在恢復操作中恢復重做日
志資訊的過程叫做前滾。
重做日誌的資訊只用於恢復由於系統過介質故障所引起的資料沒法寫入資料檔案的資料。
重做日誌一般有幾組,是迴圈使用的。
為了防止重做日誌自身發生故障,一個日誌組的成員一般有幾個,將相同的日誌組成員存放在不同的
磁碟,即可避免磁碟損壞導致的重做日誌檔案損壞。
可以透過如下命令檢視重做日誌組的資訊:
SYS@orcl 04-SEP-14>select group#,sequence#,members,bytes/1024/1024||'MB' from v$log;
GROUP# SEQUENCE# MEMBERS BYTES/1024/1024||'MB'
---------- ---------- ---------- -------------------------
1 10 1 50MB
2 8 1 50MB
3 9 1 50MB
也可檢視日誌組成員資訊:
SYS@orcl 04-SEP-14>select group#,type,member from v$logfile;
GROUP# TYPE MEMBER
---------- ------------------------------ ----------------------------------------
3 ONLINE /u01/app/oracle/oradata/orcl/redo03.log
2 ONLINE /u01/app/oracle/oradata/orcl/redo02.log
1 ONLINE /u01/app/oracle/oradata/orcl/redo01.log
database的結構:
oracle資料庫由作業系統檔案組成,這些檔案為資料庫資訊提供實際物理儲存。
oracle資料庫主要物理檔案可分為三類:
(1)資料檔案
資料檔案儲存的是oracle資料庫的實際資料,包括各個表,索引,檢視等。資料檔案有三個特性:
.一個資料檔案只能屬於一個資料庫
.資料庫中的資料檔案可以設定成自動增長,就是說,當資料庫的空間用完後,資料庫的資料檔案就會自動增長,比如原來1G的資料檔案自動變成2G的資料檔案。
.一個或多個資料檔案組成了oracle資料庫的一個邏輯單位---tablespace
資料檔案分兩種:永久資料檔案和臨時資料檔案
我們可以透過以下命令來檢視永久資料檔案的名稱大小:
SYS@orcl 04-SEP-14>col name for a50
SYS@orcl 04-SEP-14>col bytes/1024/1024||'MB' for a25
SYS@orcl 04-SEP-14>select name,bytes/1024/1024||'MB' from v$datafile;
NAME BYTES/1024/1024||'MB'
-------------------------------------------------- -------------------------
/datafile/system01.dbf 680MB
/datafile/sysaux01.dbf 520MB
/datafile/undotbs01.dbf 60MB
/datafile/users01.dbf 5MB
/datafile/example01.dbf 100MB
/u01/app/datafile/test01.dbf 100MB
/datafile/hh01.dbf 10MB
/u01/app/datafile/goods01.dbf 50MB
8 rows selected.
SYS@orcl 04-SEP-14>col name for a50
SYS@orcl 04-SEP-14>col bytes/1024/1024||'MB' for a25
SYS@orcl 04-SEP-14>select name,bytes/1024/1024||'MB' from v$tempfile;
NAME BYTES/1024/1024||'MB'
-------------------------------------------------- -------------------------
/u01/app/oracle/oradata/orcl/temp01.dbf 20MB
(2)控制檔案
每個資料庫都有控制檔案,控制檔案對於一個資料庫來說是十分重要的。它是一個二進位制檔案,
一般都很小,十幾兆到幾十兆。控制檔案中記錄的是資料庫物理結構的資訊,主要有:
.資料庫名稱
.資料檔案,重做日誌檔案的名稱和儲存位置
.資料庫建立時間戳
.表空間資訊
.備份檔案的資訊等
oracle可以使用多重資料檔案,也就是可以存在多個控制檔案的映象,這是保護資料庫的一種方法。
如果資料庫同時維護三個控制檔案,只要其中一個控制檔案損壞了資料庫都無法mount,為了讓
資料庫儘快開啟供使用者連線,較好的解決方法是把有問題的控制檔案刪除,把沒有問題的控制檔案
複製一份到原來的位置就可以了。當oracle資料庫的例項啟動的時候,它就會透過控制檔案來識別,
要想執行資料庫的一些操作,必須要知道是哪些資料檔案和重做日誌檔案以及這些檔案的位置。當
資料庫的物理結構發生改變時,比如增加了一個資料檔案或日誌檔案,增加了一個表空間等,控制
檔案就會自動更新記錄這些變化。
可以透過以下命令查詢控制檔案的資訊:
SYS@orcl 04-SEP-14>select name,block_size,file_size_blks from v$controlfile;
NAME BLOCK_SIZE FILE_SIZE_BLKS
-------------------------------------------------- ---------- --------------
/u01/app/controlfile/control01.ctl 16384 616
/u01/app/oracle/flash_recovery_area/orcl/control02 16384 616
.ctl
/u01/app/oracle/flash_recovery_area/orcl/control03 16384 616
.ctl
也可以透過show parameter 快速查詢控制檔案的存放路徑和數量:
SYS@orcl 04-SEP-14>show parameter control_files;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /u01/app/controlfile/control01
.ctl, /u01/app/oracle/flash_re
covery_area/orcl/control02.ctl
, /u01/app/oracle/flash_recove
ry_area/orcl/control03.ctl
如果想要檢視控制檔案裡到底存放了哪些資訊可以檢視v$controlfile_record_section:
SYS@orcl 04-SEP-14>col type for a30
SYS@orcl 04-SEP-14>select type,record_size from v$controlfile_record_section;
TYPE RECORD_SIZE
------------------------------ -----------
DATABASE 316
CKPT PROGRESS 8180
REDO THREAD 256
REDO LOG 72
DATAFILE 520
FILENAME 524
TABLESPACE 68
TEMPORARY FILENAME 56
RMAN CONFIGURATION 1108
LOG HISTORY 56
OFFLINE RANGE 200
TYPE RECORD_SIZE
------------------------------ -----------
ARCHIVED LOG 584
BACKUP SET 40
BACKUP PIECE 736
BACKUP DATAFILE 200
BACKUP REDOLOG 76
DATAFILE COPY 736
BACKUP CORRUPTION 44
COPY CORRUPTION 40
DELETED OBJECT 20
PROXY COPY 928
BACKUP SPFILE 124
TYPE RECORD_SIZE
------------------------------ -----------
DATABASE INCARNATION 56
FLASHBACK LOG 84
RECOVERY DESTINATION 180
INSTANCE SPACE RESERVATION 28
REMOVABLE RECOVERY FILES 32
RMAN STATUS 116
THREAD INSTANCE NAME MAPPING 80
MTTR 100
DATAFILE HISTORY 568
STANDBY DATABASE MATRIX 400
GUARANTEED RESTORE POINT 212
TYPE RECORD_SIZE
------------------------------ -----------
RESTORE POINT 212
DATABASE BLOCK CORRUPTION 80
ACM OPERATION 104
FOREIGN ARCHIVED LOG 604
37 rows selected.
也可以透過作業系統命令strings檢視二進位制控制檔案的內容:
[oracle@localhost orcl]$ strings control02.ctl|grep /datafile
/datafile/users01.dbf
/datafile/undotbs01.dbf
/datafile/sysaux01.dbf
/datafile/system01.dbf
/datafile/example01.dbf
/u01/app/datafile/test01.dbf
/datafile/hh01.dbf
/u01/app/datafile/goods01.dbf
/datafile/users01.dbf
/datafile/undotbs01.dbf
/datafile/sysaux01.dbf
/datafile/system01.dbf
/datafile/example01.dbf
/u01/app/datafile/test01.dbf
/datafile/hh01.dbf
/u01/app/datafile/goods01.dbf
u01/app/datafile/test01.dbf
u01/app/datafile/test01.dbf
u01/app/datafile/test01.dbf
/u01/app/datafile/hh01.dbf
u01/app/datafile/test01.dbf
u01/app/datafile/test01.dbf
u01/app/datafile/test01.dbf
/u01/app/datafile/hh01.dbf
/datafile/sysaux01.dbf
/datafile/hh01.dbf
資料庫的重做日誌檔案記錄了資料庫的所有修改資訊,用於故障恢復,重做日誌檔案的內容是由一條
條的redo entry組成的。當一個故障導致被修改的資料還未從記憶體永久寫入資料檔案,比突然的斷電,
那麼當資料庫重新啟動的時候丟失的資料是可以被恢復的,可以從最近的重做日誌檔案中讀取丟失的
資訊然後應用到資料檔案中,這樣就可以把資料庫恢復到斷電之前的狀態,在恢復操作中恢復重做日
志資訊的過程叫做前滾。
重做日誌的資訊只用於恢復由於系統過介質故障所引起的資料沒法寫入資料檔案的資料。
重做日誌一般有幾組,是迴圈使用的。
為了防止重做日誌自身發生故障,一個日誌組的成員一般有幾個,將相同的日誌組成員存放在不同的
磁碟,即可避免磁碟損壞導致的重做日誌檔案損壞。
可以透過如下命令檢視重做日誌組的資訊:
SYS@orcl 04-SEP-14>select group#,sequence#,members,bytes/1024/1024||'MB' from v$log;
GROUP# SEQUENCE# MEMBERS BYTES/1024/1024||'MB'
---------- ---------- ---------- -------------------------
1 10 1 50MB
2 8 1 50MB
3 9 1 50MB
也可檢視日誌組成員資訊:
SYS@orcl 04-SEP-14>select group#,type,member from v$logfile;
GROUP# TYPE MEMBER
---------- ------------------------------ ----------------------------------------
3 ONLINE /u01/app/oracle/oradata/orcl/redo03.log
2 ONLINE /u01/app/oracle/oradata/orcl/redo02.log
1 ONLINE /u01/app/oracle/oradata/orcl/redo01.log
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29800581/viewspace-1264083/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 簡述常見資料結構資料結構
- Oracle 資料庫 結構Oracle資料庫
- JavaScript資料結構和演算法簡述——陣列JavaScript資料結構演算法陣列
- Oracle資料庫體系結構Oracle資料庫
- Oracle字串資料型別簡述Oracle字串資料型別
- Oracle 資料庫體系結構解析Oracle資料庫
- Oracle 資料庫體系結構 (上)Oracle資料庫
- Agile PLM資料庫表結構(Oracle)資料庫Oracle
- Oracle - 資料庫的記憶體結構Oracle資料庫記憶體
- 初識Oracle資料庫體系結構Oracle資料庫
- Oracle資料庫開發——深入索引結構Oracle資料庫索引
- dump Oracle資料庫的內部結構Oracle資料庫
- Oracle體系結構之-資料庫、表空間、例項簡介Oracle資料庫
- Oracle例項和Oracle資料庫(Oracle體系結構)Oracle資料庫
- 資料結構簡介資料結構
- 簡易資料結構資料結構
- MySQL資料庫啟動過程的簡述MySql資料庫
- 瞭解oracle資料庫體系結構(3)Oracle資料庫
- 瞭解oracle資料庫體系結構(2)Oracle資料庫
- 瞭解oracle資料庫體系結構(1)Oracle資料庫
- mysql資料庫-資料結構MySql資料庫資料結構
- Verilog 過程結構簡述
- ffmpeg資料結構簡介資料結構
- Redis資料結構簡介Redis資料結構
- 資料結構簡單題資料結構
- 資料結構中樹形結構簡介資料結構
- Oracle 19c資料庫體系結構-2Oracle資料庫
- Oracle 19c資料庫體系結構-1Oracle資料庫
- zt_Oracle 資料庫體系結構圖_eygleOracle資料庫
- Oracle 8i資料庫體系結構(轉)Oracle資料庫
- 常見問題--oracle物理資料庫結構概述Oracle資料庫
- database資料庫的資料結構Database資料庫資料結構
- 2 Day DBA-管理Oracle例項-管理資料庫儲存結構-關於資料庫儲存結構Oracle資料庫
- Oracle:容器資料庫簡介Oracle資料庫
- ORACLE資料庫簡介(轉)Oracle資料庫
- oracle hint簡述Oracle
- oracle 鎖 簡述Oracle
- Activiti資料庫表結構資料庫