• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Oracle 認證學習筆記

    發表于:2007-07-02來源:作者:點擊數: 標簽:
    這是我一位朋友最近研究 oracle 的心得,我把它偷了出來,和大家共同分享 Oracle 9i DBA 認證教程學習筆記 第一章 Oracle 數據庫體系結構基礎 1、Oracle 數據庫系統:為具有管理Oracle數據庫功能的計算機系統。 2、系統全局區(System Global Area):在數據
    這是我一位朋友最近研究oracle的心得,我把它偷了出來,和大家共同分享
    Oracle 9i DBA 認證教程學習筆記

    第一章 Oracle 數據庫體系結構基礎
    1、Oracle 數據庫系統:為具有管理Oracle數據庫功能的計算機系統。
    2、系統全局區(System Global Area):在數據庫服務器上啟動一數據庫時的一塊共享內存區(簡稱SGA)。它被看作是Oracle數據庫的一個大緩沖池,這里的數據可以被Oracle的各個進程共用。
    3、實例(Instance):SGA和Oracle進程的結合稱為一個Oracle實例。一個Oracle實例(Instance)只能與一個運行的Oracle數據庫相聯系。

    1.1 Oracle存儲器結構
    Oracle使用共享內存區和后臺進程來管理其內存和文件結構。
    1.1.1 系統全局區(SGA)
    一、系統全局區的大小可以通過如下語句查詢:
    SQL> SELECT * FROM V$SGA;
    NAME VALUE
    -------------------- ----------
    Fixed Size 453492
    Variable Size 109051904
    Database Buffers 25165824
    Redo Buffers 667648
    更詳細的信息可以參考V$SGASTAT、V$BUFFER_POOL

    二、系統全局區主要包括以下幾部分:
    1、數據塊緩存區
    內存中用來存儲頻繁訪問的數據的區域。數據庫的任何修改都在該緩沖里完成,并由DBWR進程將修改后的數據寫入磁盤。數據塊緩存區的大小由數據庫服務器init.ora文件中的DB_BLOCK_BUFFERS參數決定(用數據塊的個數表示)。通常,數據塊緩存區只是數據庫大小的1%-2%,Oracle使用最近最少使用(LRU,Least Recently Used)算法來管理可用空間。塊緩沖區高速緩存又可以細分為以下三個部分(Default pool、Keep pool、Recycle pool)。如果不是人為設置初始化參數(init.ora),ORACLE將默認為Default pool。
    由于操作系統尋址能力的限制,不通過特殊設置,在32位的系統上,塊緩沖區高速緩存最大可以達到1.7G,在64位系統上,塊緩沖區高速緩存最大可以達到10G。
    2、數據字典緩存區
    數據庫表和視圖的集合,包含關于數據庫、數據庫結構、權限和用戶的元數據。字典緩存區的大小由數據庫內部管理。字典緩存區是SQL共享池的一部分,共享池的大小由數據庫文件init.ora中的SHARED_POOL_SIZE參數來設置。
    3、重做日志緩沖區
    重做日志文件的緩沖區,對數據庫的任何修改都按順序被記錄在該緩沖,然后由LGWR進程將它寫入磁盤。這些修改信息可能是DML語句,如(Insert,Update,Delete),或DDL語句,如(Create,Alter,Drop等)。重做日志緩沖區的大?。ㄒ宰止潪閱挝唬┯蒳nit.ora文件中的LOG_BUFFER參數決定。
    重做日志緩沖區的存在是因為內存到內存的操作比較內存到硬盤的速度快很多,所以重作日志緩沖區可以加快數據庫的操作速度,但是考慮的數據庫的一致性與可恢復性,數據在重做日志緩沖區中的滯留時間不會很長。所以重作日志緩沖區一般都很小,大于3M之后的重作日志緩沖區已經沒有太大的實際意義。
    4、SQL共享池
    共享SQL區保留了數據庫用戶執行的SQL語句的解釋版本和這些語句的執行計劃。目的是那些語句被再次使用時提高進程的速度。如果SQL共享池太小,語句將被連續不斷地再裝入到庫緩存區,從而影響操縱性能。SQL共享池的大小由init.ora文件的參數SHARED_POOL_SIZE決定。共享池有可分為以下兩部分:
    1、SQL語句緩沖(Library Cache):主要對SQL語句的解析(Parse)產生執行計劃。
    2、數據字典緩沖區(Data Dictionary Cache)
    5、大池
    大池是SGA中的可選內存區,對于諸如Oracle備份和恢復等大型命令的SQL語句,利用大池就可以防止這些SQL大型命令把條目重寫入SQL共享池中,從而減少再裝入到庫緩存區中的語句數量,防止與其它應用程序對庫緩存去的爭用。大池沒有LRU清單。Oracle9i已不用這個參數。作為LargePool的一種選擇的方案,可以用init.ora文件的SHARED_POOL_RESERVED_SIZE參數為SQL大型語句保留一部分SQL共享池。
    6、Java池
    為Java命令提供語法分析。Java池的大小通過init.ora文件的JAVA_POOL_SIZE參數設置,默認為10M。
    7、多緩沖池
    可以在SGA中創建多個緩沖池,能夠用多個緩沖池把大數據集與其它的應用程序分開,以減少它們爭奪數據塊緩存區內相同資源的可能性。創建緩沖池時,需要規定保存區(keeparea)的大小和再循環區(recyclearea)的大小??梢酝ㄟ^BUFFER_POOL_KEEP參數來規定保存區的大小。保存和再循環緩沖池的容量減少了數據塊緩沖區的可用空間(通過DB_BLOCK_BUFFERS參數設置)。
    1.1.2 程序全局區(PGA)
    是內存中的一個區域,該區保存一個進程的數據和進程信息,該區域不是共享的。SORT_AREA_SIZE(排序區的最大尺寸)和SORT_AREA_RETAINED_SIZE(排序操作完成之后排序區被減少后的尺寸)參數對于PGA的大小由重要影響。
    在大型企業環境管理中管理SORT_AREA_SIZE可能具有挑戰性。原則是使性能最佳而盡量少用系統資源。Oracle9i提供自動方法管理PGA內存。兩個用于自動管理PGA內存的主要初始化參數是PGA_AGGREGATE_TARGET(指定可由所有服務器進程使用的內存總量)和WORKAREA_SIZE_POLICY(值是MANUAL或AUTO)。

    1.2后臺進程
    后臺進程是維護數據庫的物理結構和存儲結構之間的關系??梢栽O置init.ora文件的BACKGROUND_DUMP_DEST參數來規定后臺進程跟蹤文件的位置。在排除數據故障時,跟蹤文件顯得非常重要,主要紀錄數據庫的警告日志。
    這里給出每一個進程功能的簡介:
    1、數據庫書寫器進程Database Writer(DBWR)
    負責將修改過的數據塊寫回到數據庫文件。多個DBWR進程有助于在進行大的操作期間減少DBWR中的沖突,DBWR進程的數量由數據庫的init.ora文件中的DB_WRITER_PROCESSES參數決定。
    2、日志書寫器進程Log Writer(LGWR)
    負責將聯機redo日志緩沖區的內容分批寫到聯機redo日志文件。重做日志緩沖區條目總是包含著數據庫的最新狀態,這是因為DBWR進程可以一直等待到把數據塊緩沖區中的修改數據塊寫入到數據文件中。對于Oracle9i,可以創建多個LGWR/IO從進程以改善向聯機重做日志文件寫入性能,其個數由數據庫的init.ora文件的LGWR_IO_SLAVES參數決定。
    3、歸檔進程Archive(ARCH)
    負責把寫滿的redo文件復制到歸檔日志目標中。Oracle最多允許有10個歸檔進程。LOG_ARCHIVE_MAX_PROCESSES參數用來設置允許的最大數。
    4、檢查點進程Checkpoint(CKPT)
    用來減少執行實例恢復所需的時間??梢杂脭祿鞂嵗膇nit.ora文件中LOG_CHECKPIOINT_INTERVAL、LOG_CHECKPOINT_TIMEOUT、FAST_START_IO_TARGET 的參數來設置一個頻繁出現的檢查點。
    5、系統監視器進程System Monitor(SMON)
    執行崩潰恢復、清除臨時段和組合自由空間。
    6、進程監視器Process Monitor(PMON)
    負責清除失敗用戶的進程,釋放用戶當時正在使用的資源。當進程失敗時,PMON執行以下操作:
    1.釋放任何進程包括的鎖;
    2.回滾那些已經啟動但未提交的事務;
    3.從活動進程的列表中刪除進程ID。
    7、恢復進程Recover(RECO)
    用于解決分布式數據庫中的故障問題。只有在平臺支持Distributed Option(分布式選項)且init.ora文件中的DISTRIBUTED_TRANSACTIONS參數大于零時才創建這個進程。
    8、作業隊列進程Snapshot(SNP0)
    Oracle的快照刷新及內容及內部作業對列調度依賴于他們執行的作業隊列進程。為一實例所創建的SNP進程個數由數據庫的init.ora文件中的JOB_QUEUE_PROCESSES參數決定,最多為36個。
    9、作業監視器進程Queue Monitor(QMNO)
    和Oracle的優先隊列選項一起使用。最多可以有10個隊列監視器進程,并且它們使用AQ_TM_PROCESSED初始化參數配置。

    1.3 Oracle物理存儲結構
    數據庫相關的文件有:重做日志文件、控制文件、跟蹤文件及警告日志。
    1.3.1數據字典的內容及用法
    數據字典是DBA在執行Create Database命令之后應建立的第二組數據庫對象。使用Oracle數據字典,可以對數據庫中的每個對象以某種方式進行跟蹤。Oracle通常利用catalog.sql和catproc.sql腳本建立數據字典,而不需要DBA干預。如果手工建立數據庫,則要確保在建立數據庫不久后就運行這些腳本。
    1、 構造數據字典視圖
    catalog.sql是用來建立組成數據字典的各個對象。Catporc.sql為PL/SQL建立過程選項和實用程序。必須以sys as sysdba用戶才能運行這些腳本。
    2、 主要的數據字典
    Oracle數據字典主要由兩部分組成—基表和用戶可訪問的視圖。
    3、 識別數據字典視圖的范圍
    i. USER:允許你看到你所擁有的相關數據庫對象。
    ii. ALL:允許你看到你可以訪問的相關數據庫對象。
    iii. DBA:允許你看到整個數據庫中所有的相關對象。
    4、 動態性能視圖
    V$DATABASE 存放數據庫的常規信息
    V$SYSSTAT 存放數據庫性能的大部分信息
    V$SESSION 存放用戶會話信息
    V$LOG、V$LOGFILE 存放聯機重做日志信息
    V$DATAFILE 存放數據文件信息
    V$CONTROLFILE 存放數據庫控制文件信息
    1.3.2控制文件
    控制文件是數據庫啟動可操作成功必需的一種二進制文件,它通常記錄數據庫的所有物理組件,如數據文件的位置、重做日志、數據庫名等數據庫信息。通過CONTORL_FILES參數設置控制文件名。通過V$CONTROLFILE、V$CONTROLFILE_RECORD_SECTION視圖得到控制文件的各部分信息。
    1.3.3數據文件
    表空間是數據庫的邏輯劃分,每個數據庫至少有一個表空間(稱作SYSTEM表空間)。每個表空間由同一磁盤上的一個或多個文件組成,這些文件叫數據文件(datafile)。一個數據文件只能屬于一個表空間,而一個表空間可以跨越多個數據文件。數據庫文件列表可以查詢V$DATAFILE和DBA_DATA_FILE的視圖。
    1.3.4日志文件
    日志文件有時也叫做redo日志文件,是任何數據庫的重要組成部分。它們的存在確保在系統崩潰、驅動錯誤或任何其它意外情況中斷了正常操作的事件發生時數據庫能夠恢復。有兩種redo日志文件:聯機redo日志文件和歸檔redo日志文件。數據庫先寫日志,然后提交數據??梢酝ㄟ^V$LOGFILE視圖查看日志文件信息。通過ARCHIVE LOG LIST命令查看歸檔日志文件信息。
    待續...

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>