操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    【一】實例與數據庫

    1.1 Oracle 基礎架構及應用環境

    1.1.1 Oracle Server的基本結構

    1)oracle server: +

    2):data file、control file、redolog file

    3): an access a

    4)oracle memory: sga + pga

    5):sga + process

    1.1.2 系統全局區SGA:

    1)在一個只有一個sga;

    2)sga為所有session共享,隨著啟動而分配;

    3) down,sga被釋放。

    1.2 SGA的基本組件

    1)shared pool

    共享池是對SQL、PL/SQL程序進行語法分析、編譯、執行的內存區域。

    共享池由庫緩存(library cache)和數據字典緩存(data cache)以及結果緩存(result cache)等組成。共享池的大小直接影響數據庫的性能。

    關于shared pool中的幾個概念:

    ① library cache:

    sql和plsql的解析場所,存放sql/plsql語句代碼,以及它們的執行計劃,以備其他用戶共享。

    ② data cache

    存放重要的數據字典信息,以備其他用戶共享使用。

    ③ server result cache:

    存放服務器端的SQL結果集及PL/SQL函數返回值。

    ④ User Global Area (UGA):

    共享服務器連接模式下如果沒有配置large pool,則UGA屬于SGA的shared pool, 專用連接模式時UGA屬于PGA。

    2) buffer cache(PPT-II-328)

    用于存儲從磁盤數據文件中讀入的數據,為所有用戶共享。

    服務器進程(server process)負責將數據文件的數據從磁盤讀入到數據緩沖區中,當后續的請求需要這些數據時如果在內存中找到,則不需要再從磁盤讀取。

    數據緩沖區中被修改的數據塊(臟塊)由后臺進程DBWR將其寫入磁盤,數據緩沖區的大小對數據庫的讀取速度有直接的影響。

    要弄明白 Buffer Cache中的幾個cache概念:

    ① Buffer pool=(default pool)+( pool)

    其中:

    default pool(參數)是標準塊存放的內存空間大小,SGA自動管理時此參數不用設置,使用LRU算法清理空間:

    pool:對應的參數有:

    db_nk_cache_size: 指定非標準塊大小內存空間,比如2k、4k、16k、32k。
    db_keep_cache_size: 存放經常訪問的小表或索引等。
    db_recycle_cache_size: 與keep相反,存放偶爾做全表掃描的大表的數據。

    ①如何指定使用某個表調入 pool

    SQL> alter table scott.emp1 storage(buffer_pool keep);
    SQL> select segment_name,buffer_pool from dba_segments where segment_name='EMP1';

    ②default pool對應的參數是與標準塊default block是配套的日志記錄緩沖區多大好,如果default block是8k, 這個參數將代替。

    ③如果要建立非標準塊的表空間,先前要設定db buffer中的與之對應的參數。

    第一步,先指定db buffer里的16k cache空間大小

    SQL> alter system set db_16k_cache_size=8m;

    第二步,建立非標準塊表空間

    SQL> create tablespace tbs_16k datafile '/u01/oradata/prod/tbs16k01.dbf' size 10m blocksize 16k;
    SQL> select TABLESPACE_NAME,block_size from dba_tablespaces;

    3)redo log buffer

    以日志條目(redo entries)方式記錄了數據庫的所有修改信息(包括DML和DDL),目的是為數據庫恢復,日志條目首先產生于日志緩沖區,日志緩沖區較小,一般缺省值在3M-15M之間,它是以字節為單位的。

    日志緩沖區的大小啟動后就是固定不變的,如要調整只能通過修改參數文件后重新啟動生效,不能動態修改!不能由SGA自動管理!

    4)large pool(可選)

    為了進行大的后臺批處理操作而分配的內存空間,主要用于共享服務器的session memory(UGA),RMAN備份恢復以及并行查詢等操作,有助于降低shared pool碎片。

    5)java pool(可選)

    為了java虛擬機及應用而分配的內存空間,包含所有session指定的JAVA代碼和數據。

    6)stream pool(可選)

    為了stream process而分配的內存空間。stream技術是為了在不同數據庫之間共享數據,因此,它只對使用了stream數據庫特性的系統是重要的。

    1.3 Oracle的進程:

    1)user process:

    客戶端的process,訪問數據庫分為三種形式:

    ① sql*plus

    ② 應用程序

    ③ web方式(EM)

    ①sql*plus可以執行sql和plsql請求,是典型的客戶端進程。

    linux作為客戶端:可以使用ps看到sqlplus關鍵字:

    $ ps -ef |grep sqlplus

    windows作為客戶端,可以通過查看任務管理器看到sqlplus用戶進程:

    C:\Documents and Settings\prod>sqlplus sys/system@ as sysdba

    ②應用程序

    例如:通過java程序直接嵌套sql語句,或調用Oracle存儲過程。

    ③web方式

    例如:使用OEM登錄、管理數據庫。

    $emctl start dbconsole

    2)server process:

    服務器端的進程,user process不能直接訪問Oracle日志記錄緩沖區多大好,必須通過相應的server process訪問實例,進而訪問數據庫。

    [oracle@prod ~]$ ps -ef |grep LOCAL

    在linux下看到的server process, (LOCAL=YES)是本地連接,(LOCAL=NO)是遠程連接。

    可以在oracle查看V$process視圖,它包括了當前所有的后臺進程和服務器進程。

    SQL> select pid,program,background from v$process;

    字段為1是 process,其余都是server process

    3) process

    基本的后臺進程有

    1)smon:系統監控進程

    ①當實例崩潰之后,Oracle會自動恢復實例。

    ②釋放不再使用的臨時段。

    2)pmon:進程監控

    ①當user process失敗時,清理出現故障的進程,釋放所有當前掛起的鎖定,釋放服務器端使用的資源;

    ②監控空閑會話是否到達閾值;

    ③動態注冊監聽。

    3)dbwn: 數據寫入進程

    1、將變更的數據緩沖區的臟buffer寫入數據文件中。

    2、釋放數據緩沖區空間。

    3、觸發條件:

    ①ckpt發生

    ② 臟塊太多時(閾值)

    ③自由空間不夠時

    ④表空間read only/offline/backup模式等

    以上4個狀況之一發生時,dbwn都會被觸發。

    4)lgwr:寫日志條目

    1、將日志緩沖區中的日志條目寫入日志文件;

    2、不像DBWR可以有多個進程并行工作,LGWR只有一個工作進程;

    3、觸發條件:

    ① commit

    ②online redo switch

    ② 3秒

    ④三分之一滿(或1M滿)

    ⑤先于dbwr寫(先記后寫,必須在dbwr寫臟塊之前寫入日志,保證未提交數據都能回滾)

    以上5個狀況之一發生時, lgwr都會記日志fast commit和group commit

    第一個事務commit時發生寫日志的動作,在這個過程中如果又有其他事務也commit,則等到第一個事務寫日志完成后,其他事務以group commit的方式一次性一起commit寫日志。

    5)ckpt:生成檢查點

    作用:通知或督促dbwr寫臟塊。

    1、完全檢查點:保證數據庫的一致性。

    2、增量檢查點:不斷更新控制文件中的檢查點位置,當發生實例崩潰時,可以盡量縮短實例恢復的時間。

    3、局部檢查點:特定的操作下,如針對某個表空間read only/offline、Shrink 數據文件、ALTER BEGIN BACKUP等 。

    6)arcn:歸檔當前日志

    歸檔模式下,發生日志切換時,把當前日志組中的內容寫入歸檔日志,作為歷史日志提供數據庫的。

    1.4 PGA的基本組件

    1)程序全局區(Program Global Area)的作用

    ①緩存來自服務器進程和后臺進程的數據和控制信息;

    ② 提供排序、hash連接;

    ③ 不提供session之間的共享;

    ④ PGA在進程創建時被分配,進程終止時被釋放,所有進程的PGA之和構成了PGA的大小;

    PGA的管理是比較復雜的,9i后,Oracle推薦使用PGA自動管理,屏蔽了PGA的復雜性。

    2)PGA的結構:

    ①SQL工作區(SQL Work Area): 有幾個子區 1、Sort Area, 2、Harh Area 3、Bitmap Merge Area

    作用:排序操作(order by/group by//union等),多表hash連接,位圖連接,創建位圖

    ②會話空間(Session Memory)

    作用:存放logon信息等會話相關的控制信息

    ③私有SQL區域(Private SQL Area)

    作用:存儲server process執行SQL所需要的私有數據和控制結構,如綁定變量,它包括固定區域和運行時區域

    ③ 游標區域(Cursor Area):PLSQL游標使用的就是這塊區域。

    1.5連接方式

    1)專用連接模式()

    對于客戶端的每個user process,服務器端都會出現一個server process,會話與專用服務器之間存在一對一的映射(一根繩上的兩個螞蚱)。

    專用連接的PGA的管理方式是私有的,Oracle缺省采用專用連接模式。

    2)共享連接模式(shared)

    多個user process共享一個server process。

    ① 共享服務器實際上就是一種連接池機制(),連接池可以重用已有的超時連接,服務于其它活動會話,但容易產生鎖等待,此種連接方式現在已經很少見了。

    ②所有調度進程()共享一個公共的請求隊列( queue),但是每個調度進程都有與自己響應的隊列( queue)。

    ③在共享服務器中會話的(UGA)存儲信息是在SGA中的,而不像專用連接那樣在PGA中存儲信息,這時的PGA(非UGA部分))的存儲結構為堆棧空間。

    3)駐留連接池模式( pooling,簡稱DRCP):

    適用于必須維持數據庫的永久連接,結合了專用服務器模式和共享服務器模式的特點,它使用連接代理(而不是專用服務器)連接客戶機到數據庫,優點是可以用很少的內存處理大量并發連接(11g新特性,特別適用于Apache的PHP應用環境)。

    the end !!!

    @jackman 共筑美好!

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有