Oracle 數存儲——物理結構


Oracle 數據庫存儲物理結構

 

  • 物理存儲結構是實際的數據存儲單元,對應於操作系統文件。
  • oracle數據庫就是由駐留在服務器的磁盤上的這些操作系統文件組成的。
  • 物理存儲結構和邏輯存儲結構之間在操作上的一個區別
    • 邏輯存儲結構有創建、刪除的操作。
    • 物理存儲結構有創建、刪除、將其移動到另一個位置(包括改變其名稱)的操作。這樣可以實現多路復用(控制文件、重做日志文件)和將它們安排到不同磁盤位置、更換名稱的功能。

 

Oracle數據庫文件:

  • oracle數據庫是作為一個單元處理的數據集合。
  • 數據庫的一般用途是存儲和檢索相關信息。
  • 數據庫有一個邏輯結構和一個物理結構。
  • 數據庫的物理結構是數據庫中操作系統文件的集合

 

Oracke數據庫由三種文件類型組成有:

  • 數據文件:數據文件包含數據庫中的實際數據。
  • 重做日志文件:包含對數據庫所做的更改記錄。
  • 控制文件:包含維護和驗證說句哭完整性的必要信息。
  • oracle有關,但從技術上說不屬於數據庫的附屬文件有:
    • 參數文件(SPFILE.ORA
    • 歸檔日志文件
    • 密碼文件(PWD.ORA

 

1.參數文件

    • 參數文件:定義Oracle實例的特性。

    如,它包含調整SGA中一些內存結構大小的參數。

    • 初始化參數文件格式:
      • spfile(二進制文件) 可動態修改(數據庫正在運行時可以修改參數)
        • 10g開始都是spfile的文件
      • pfile(文本文件) 不可以動態修改(文件修改后需要數據庫重啟)
        • 8i9i用的比較多
      • 參數文件的作用(約束oracle行為的參數、約束oracleshili
        • 設定數據庫的限制
          • 數據庫有多少個文件,數據庫一次可以同時打開多少個文件,數據庫的內存等
        • 設定用戶或者進程的限制
          • 實例最多可以接收多少個用戶的並發,最多可以開多少個后台進程等.
        • 設定數據庫資源的限制
          • 並行會消化CPU,設置ORACLE是否使用並行等.
        • 調整系統的性能
          • 優化器,優化器的模式,IO.
    • oracle實例啟動時就會去讀取參數文件,按照參數文件進行資源配置。
    • SGA_TARGET

    oracle在SGA區(系統全局內存區域:放數據塊、redo信息、sharepool、sql字典信息等)的大小.

    • PGA_AGGREGATE_TARGET

    oracle在PGA區總和(一個PGA表示一個會話分配的內存,總和就表示所有會話分配內存的總和)的大小.

    • DB_CACHE_SIZE

    SGA里,給數據塊分配的內存的大小.

    • DB_FILES

    數據庫實例允許打開多少個數據文件的配置.

    • LOG_ARCHIVE_DEST_n

    歸檔路徑.

    • USER_DUMP_DEST

    用戶的一個trace文件路徑

    SQL> show parameter user_dump_dest;

     /u01/app/oracle/diag/rdbms/gaga01/gaga01/trace

2.控制文件

    • 控制文件
      • 一個數據庫至少需要一個控制文件
      • 控制文件(二進制文件)是一個很小的(通常是數據庫中最小的)文件,大小一般在1-5M左右。
      • 在數據庫的運行過程中,每當出現數據庫檢查點或修改數據庫的結構后,oracle就會修改控制文件的內容。
      • DBA可以通過OEM工具修改控制文件中的部分內容,但DBA和用戶都不應該人為修改控制文件內容,容易破壞控制文件。
      • 控制文件存儲了以下關鍵信息,對數據庫的成功啟動和正常運行至關重要。
        • 數據庫的名稱
        • 數據文件、重做日志文件的名稱、位置、聯機\脫機狀態和大小
        • 發生磁盤故障或用戶錯誤時,用於恢復數據庫的信息(日志序列號,檢查點)
    • 控制文件至少包含以下的信息
      • 數據庫名字 (DBID)
      • 數據庫建立時間
      • 數據文件,在線日志文件,歸檔文件的信息
      • 表空間信息
      • – Rman的備份信息

     

    • 控制文件的作用
      • 它包含數據文件,在線日志文件,歸檔文件的信息,這些信息用於數據庫OPEN時的件驗證
        • 數據庫的架構改變時,比如增減,刪除文件時,會更新控制文件。
      • 包含了數據庫恢復時候需要的一些信息,用於數據庫的恢復

     

    • 控制文件的結構

    (空間允許重用+不允許重用,即允許覆蓋+不允許覆蓋)

    • 空間允許重用區
      • 這個區域的信息是可以被從用(覆蓋的),當空間不足或者規則滿足時,允許覆蓋以前的信息,比如歸檔日志和Rman備份集的信息
    • 空間不允許重用區
      • 這個區域的信息是不允許重用(覆蓋)的,因為他們是數據庫必須的信息,比如表空間,數據文件,在線日志文件等等。

3.數據文件

    •  數據文件
      • 數據文件是實際存儲插入到數據庫中的實際數據的操作系統文件。
      • 數據以一種oracle特有的格式被寫入到數據文件,其他程序無法讀取數據庫文件中的數據。
      • 數據文件的大小與他們所存儲的數據庫的大小直接相關。
      • 數據庫寫入數據后會由於自動分配新增區而增大,但刪除數據卻不會使其減小,而只能使得其中有更多的空閑區。
      • 除了SYSTEM表空間之外,任何表空間都可以由聯機狀態切換為脫機狀態。
      • 當表空間進入脫機狀態時,組成該表空間的數據文件也就進入了脫機狀態。
      • 可以將表空間某一個數據文件單獨的設置為脫機狀態,以便進行數據庫的備份或恢復,否則是不能備份的。 
      • 數據存儲在用戶定義的中,但是數據文件也包含數據字典、成圖像前的修改數據、索引以及其他類型的結構
      • 一個數據庫至少有一個數據文件。
      • 數據文件的特點是:
        • 一個數據文件只能與一個數據庫相關。
        • 可以為數據文件設置某些特性以便它們在數據庫運行空間不足時能夠自動擴展。
        • 一個或多個數據文件形成數據庫存儲邏輯單元,這個單元成為表空間
    • 數據文件
      • 存放實際的數據
      • 隸屬於某個表空間
        • 數據表空間
        • – UNDO 表空間
        • 臨時表空間
    • 數據文件的損壞
      • 需用通過備份恢復
        • 還原備份文件
        • 用歸檔+在線redo 恢復
      • 使用Redo 信息恢復
        • 創建新數據文件
        • 用歸檔+在線redo 恢復

4.日志文件

    • 重做日志文件
      • 當用戶對數據庫進行修改時候,實際上是先修改內存中的數據,過一段時間后,再幾種將內存中的修改結果成批的寫入到上面的數據文件中。oracle采取這樣的做法,主要是出於性能上的考慮,因為針對數據操作而言,內存的速度比硬盤的速度快。
      • oracle利用“聯機重做日志文件”隨時保持修改結果,即oracle隨時將內存中的修改結果保存到“重做日志文件”中,“隨時”表示在將修改結果寫入到數據文件之前,可能已經分幾次寫入到“重做日志文件”。因此發生故障導致數據庫崩潰,oracle也可以利用重做日志文件中的信息來恢復丟失的數據。只要某項操作的重做信息沒有丟失,就可以利用這些重做信息來重現該操作。
      • oracle是以循環方式來使用重做日志文件的,所以每個數據庫至少需要2個重做日志文件。
    • 重做日志的作用
      • 核心作用
        • 保護數據的安全
        • 恢復數據
      • 附加作用--數據同步和分析
        • – Data guard
        • – streams
        • – golden gate
        • – log miner

     

    • 日志文件損壞
      • ACTIVE活動日志損壞
        • 數據丟失,數據庫損壞
      • INACTIVE非活動日志損壞
        • 數據不會丟失,可以重建日志文件

口令文件

    • 口令文件:認證哪些用戶有權啟動和關閉Oracle實例。

歸檔重做日志文件

    • 歸檔重做日志文件:是重做日志文件的脫機副本,這些副本可能對於從介質失敗中進行恢復很必要。

 

查看數據庫名

SQL> show parameter db_name

查看實例名:

SQL> show parameter instance_name

 

文件類型

數據字典

相關命令

參數文件

v$parameter

 alter system set open_cursors=400;

show parameter cursor;

select name,value from v$parameter where name='spfile';

控制文件

v$controlfile

show parameter control;

1、數據庫關閉,將控制文件復制一份。

2、將控制文件的語句備份.

SQL> alter database backup controlfile to trace;

這個就是控制文件語句的備份:alert_gaga01.log,可以運行這個語句來創建控制文件.

注:

1trace文件在這個路徑下:/u01/app/oracle/diag/rdbms/gaga01/gaga01/trace/

2、可以使用明了查找trace路徑:show parameter user_dump_dest;

數據文件

dba_data_files

dba_temp_files

v$datafile

 

看表空間及對應的數據文件信息

– select file_name,tablespace_name from dba_data_files;

– select file_name,tablespace_name from dba_temp_files;

日志文件

v$log

$logfile

3log文件

  • INACTIVE
  • ACTIVE
  • CURRENT

select group#,status from v$log;

 alter system switch logfile;

 select group#,member from v$logfile;

select member from v$logfile;

歸檔文件

 v$archived_log

select name from v$archived_log;

密碼文件

 host本機操作命令

SQL> ho ls $ORACLE_HOME/dbs/orapw$ORACLE_SID

告警日志

 host本機操作命令

SQL> ho ls $ORACLE_BASE/admin/$ORACLE_SID

adump dpdump pfile

bdump放警告日志

 

 

Data file數據文件

記錄所有的關系型數據庫里的信息

Control file控制文件

記錄數據庫的結構和行為

Redo log file

記錄塊的更改的操作

以組為單位,組下是成員

寫日志根據組按順序寫

為了實例恢復

Alter log

 

Other log

 

Archived log files歸檔日志文件

 

日志文件是按照順序寫,從一個組寫到下一個組叫切換,寫123,然后寫1,再寫1時會把1的內容覆蓋。

所以將覆蓋之前的日志保留,archived log 打開一個進程ARCn,將日志記錄到歸檔日志中

Parameter file參數文件(數據庫運行必須的)

參數文件分為2種:pfilespfile

記錄數據庫的配置信息,相當於一些開關

Password file密碼文件

用於控制sysdba的用戶進行遠程登錄的時候使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM