2013年11月24日 星期日

[Tips]Oracle 11g Architecture 資料庫架構(下) - Oracle database files

讓我們先回想一下:當提及Oracle Server的時候,它同時包含了Oracle InstanceOracle database files,本篇將探討Oracle database files,如果忘了Oracle Instance可以利用下面連結閱讀^_^
Oracle database files就是存放資料的地方,可以分為實體(Physical)結構和邏輯(Logical)結構,實體結構就是實際儲存在OS上的datafiles或是OS Block;而一般我們透過軟體工具看到的都是邏輯結構,包括Tablespaces、Segments、Extents、Block。
Oracle database files (檔案)

依照用途不同可以分為以下六種,比較重要且經常變動的是Datafiles、Control files、Redo Log files:
  • Parameter files
  • Password files
  • Datafiles
  • Control files
  • Redo Log files
  • Archived Log files
1)Parameter files
  • 當Oracle Instance啟動時,會載入特定的參數檔來設定系統。
  • 根據不同的類型,可以分為:
    • Static parameter file (PFILE)
    • Persistent parameter file (SPFILE)
2)PFILE v.s. SPFILE
  • PFILE檔名為init<SID>.ora;SPFILE檔名為spfile<SID>.ora
  • PFILE是純文字檔(text file);SPFILE是二進位檔(Binary file)
  • PFILE通常放在本機端$ORACLE_HOME/dbs下;SPFILE放在伺服器端
  • PFILE更動須手動調整參數值;SPFILE可以動態調整參數值
  • Oracle 9i以後才有SPFILE
3)Starup and Shutdown database
分為四個階段:
  • SHUTDOWN:就關機了
  • NOMOUNT:spfile.ora被讀入,Oracle Instance被開啟,SGA和Background processes被啟動。
  • MOUNT:Control files被讀入Instance。此階段又稱為maintenance mode
  • OPEN:所有files被開啟,Database啟動。此階段又稱為transaction mode

4)Tablespaces and Datafiles
  • 實際儲存在OS上的我們稱為datafiles,而Tablespaces就是用邏輯分組的概念,方便不同用途的管理。
  • 一個datafiles只能在一個Tablespaces內;而一個Tablespaces可以包含了一至多個datafiles。
  • 安裝好Oracle之後,預設會有SYSTEM、SYSAUX、TEMP、USERS、UNDO五個Tablespaces
4)Redo Log files
  • 儲存所有對資料進行的改變。
  • 目的是為了系統或資料的回復(recovery)。
  • 可以將檔案進行群組化(groups)的動作,而同一組裡面的檔案會全部寫完才會轉換到下一組,因此至少會有兩個群組
  • 採循環(cycle)的方式,當最後一組寫滿的時候,它會再回寫回第一組。
5)Archived Redo Log files
  • 必須開啟Archived Mode才會有,通常會接上Tape,避免硬碟可能會很快塞滿
  • 目的在於備份(Backup)和還原(Recovery)。
  • Oracle預設是關閉Archived Mode的