<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    kxbin
    成功留給有準備的人
    posts - 10,  comments - 35,  trackbacks - 0

    體系架構(gòu)概念
    ·系統(tǒng)的體系架構(gòu)指系統(tǒng)有哪些組成部分,以及這些組成部分之間的關(guān)系。
    ·Oracle的體系架構(gòu),是指Oracle數(shù)據(jù)庫管理系統(tǒng)的組成部分和這些組成部分之間的相互關(guān)系,如進程(程序,如word,excel都算是一個進程)、內(nèi)存、數(shù)據(jù)庫的物理與邏輯結(jié)構(gòu)等。

    Oracle引入體系架構(gòu)原因
    ·為了高效地使用計算機最寶貴的資源:內(nèi)存,同時保證不會丟失數(shù)據(jù)庫中的任何數(shù)據(jù)。所以O(shè)racle引入了一個非常復雜的體系結(jié)構(gòu)。

    問題:為什么計算機中內(nèi)存是最寶貴的?
    ·訪問內(nèi)存中的數(shù)據(jù)是電子速度,硬盤是機械速度,電子速度遠遠大于機械速度。在內(nèi)存中計算的速度是最快的。如計算得到一個結(jié)果,先放到硬盤中,要的時候再從硬盤中讀取;第二種:先將結(jié)果放到內(nèi)存中,要的時候再從內(nèi)存中讀取,后者的速度要快很多。而用戶都需要速度快(如游戲加載的時間都希望越短越好)。
    ·內(nèi)存是有限的,同時內(nèi)存也比硬盤昂貴

    系統(tǒng)架構(gòu)基礎(chǔ)
    ·基礎(chǔ):程序運行以后 = 進程(process) + 內(nèi)存 + 讀取的文件 (如WORD)
    ·擴展:Oracle運行以后,要用程序要管理數(shù)據(jù)庫文件,所以它的結(jié)構(gòu)變?yōu)?br />·Oracle = (程序部分)+(數(shù)據(jù)部分)
    ·程序部分 = 進程(instance,實例)+內(nèi)存(SGA+PGA)


    Oracle體系架構(gòu)分為實例和數(shù)據(jù)庫,而實例分為內(nèi)存和進程。

    下面先來看看內(nèi)存,‍理解內(nèi)存組成和作用。
    SGA:system global area(系統(tǒng)全局區(qū),全局就是都能訪問,如全局變量),指所有程序都能共享的內(nèi)存區(qū)。
    共享SQL編譯結(jié)果:大家知道,運行SQL真正運行前要先編譯、分析而且消耗的時間很長,所以編譯分析的結(jié)果保留在服務(wù)器的內(nèi)存中;一個用戶登錄可能執(zhí)行:select * from 用戶表 where 帳號=? and 密碼=?;另一個用戶登錄時執(zhí)行SQL就不會再編譯分析了,直接取前一個用戶的編譯分析結(jié)果。這叫共享。
    共享數(shù)據(jù)字典:還有查詢時需要表結(jié)構(gòu)(如 select * from stu,*在查詢時要取出stu表真正的字段。如果一個用戶最先查詢時,則必須取;另一個用戶再查詢時就不需要再取了。一個表的有哪些字段,這是數(shù)據(jù)字典中的一個部分。)
    PGA:program global area(程序全局區(qū))。程序一登錄時和數(shù)據(jù)庫要連接,數(shù)據(jù)庫就為這個程序單獨分區(qū)一塊小的專用內(nèi)存。程序一與數(shù)據(jù)庫斷開,則內(nèi)存釋放。
    作用:SGA和PGA都是內(nèi)存,通常由DBA用來設(shè)計大小,從而調(diào)整數(shù)據(jù)庫的速度(性能)。一般程序員用不著。

    PGA和SGA區(qū)別
    ·SGA相當于公司(數(shù)據(jù)庫)的大廳;PGA相當于會客室。
    ·SGA是在數(shù)據(jù)庫啟動時自動分配。PGA是在客戶端程序與數(shù)據(jù)庫連接自動分配。
    ·SGA通常較大,PGA較小。

    SGA組成 = 日志~ + 數(shù)據(jù)~ + 共享池 + 大池
    日志緩沖區(qū)
    ·重做日志(增刪改):每次修改數(shù)據(jù)(增刪改)時,除了要在表中寫入數(shù)據(jù)外,還要在日志文件中記錄相關(guān)信息。Oracle將日志先寫到內(nèi)存,積累到一定數(shù)量,再一次性寫入到磁盤,從而提高了效率。(為什么會提高效率?因為寫入內(nèi)存的速度>磁盤的速度)。所以加大日志緩沖區(qū)的設(shè)置,可以提高增刪改的速度。
    ·數(shù)據(jù)緩沖區(qū)(查):第一個用戶查詢商品信息,數(shù)據(jù)必須從磁盤上讀取;Oracle可以將查詢的數(shù)據(jù)保存內(nèi)存中,其它用戶查詢商品則直接從內(nèi)存中讀取,從而提高查詢效率。這個內(nèi)存區(qū)叫~。從數(shù)據(jù)緩沖區(qū)中讀取數(shù)據(jù),又叫緩存命中率(cache hit)。所以加大數(shù)據(jù)緩沖區(qū),可以提高查詢速度(因為減少磁盤讀取而加快)。
    ·共享池(語句):主要的作用是保存了SQL的編譯結(jié)果,從而執(zhí)行相同的SQL語句不需要再次編譯,節(jié)約了CPU資源。所以加大共享緩沖區(qū),可以提高查詢速度(因為減少SQL的分析時間而加快)。
    ·大池:主要為大的內(nèi)存操作提供相對獨立的操作空間,如數(shù)據(jù)庫的備份和恢復。所以加大大池區(qū),可以提高備份和恢復速度。

    PGA = 排序區(qū) + 會話信息 + 游標狀態(tài) + 堆棧空間 (了解)
    ·排序區(qū):某個程序發(fā)出了order by語句,將臨時排好順序的數(shù)據(jù)放在此區(qū)。就象是要將公司員工的工資進行排序,就要在草稿上先將數(shù)據(jù)排好。草稿 = 排序區(qū)。設(shè)置大一些,有利于加快order by語句的執(zhí)行。
    ·會話信息:包括了如權(quán)限、角色等信息。
    ·游標狀態(tài):所執(zhí)行的SQL語句相關(guān)的信息。
    ·堆棧空間:保存SQL中的變量信息。

     

    再來了解一下Oracle有哪些進程。

    PMON 進程監(jiān)控進程: process  清潔工
    ·清理出現(xiàn)故障的進程。 
    ·釋放所有當前掛起的鎖定。
    ·釋放故障進程使用的資源。
    SMON 系統(tǒng)監(jiān)控進程 system moniter
    ·在Oracle因斷電而重啟時,進行數(shù)據(jù)庫進行必要的修復。
    DBWR 數(shù)據(jù)寫入進程 : database writer
    ·管理數(shù)據(jù)緩沖區(qū),將最近使用過的塊保留在內(nèi)存中。
    ·將修改后的緩沖區(qū)數(shù)據(jù)寫入數(shù)據(jù)文件中。
    LGWR 日志寫入進程 :log writer  (記錄員)
    ·負責將日志緩沖區(qū)中的日志數(shù)據(jù)寫入日志文件。 
    ·系統(tǒng)有多個日志文件,該進程以循環(huán)的方式將數(shù)據(jù)寫入文件。
    ARCH  歸檔進程 
    ·將記錄員記錄的東西放到檔案室
    CKPT 檢查點進程
    · 與Oracle事務(wù)相關(guān)

    體會:Oracle是一個龐大的系統(tǒng)(如跨國公司),分工很明確。
    問題:分工的好處是什么?  (提高效率)。


     

     


    數(shù)據(jù)庫的概念:本義是指數(shù)據(jù)所在倉庫(數(shù)據(jù)的集合)。
    數(shù)據(jù)庫管理的信息,分為:
    ·系統(tǒng)數(shù)據(jù):如配置文件,如指定SGA的大小
    ·用戶數(shù)據(jù):業(yè)務(wù)系統(tǒng)數(shù)據(jù)

     


    物理結(jié)構(gòu):就是從操作系統(tǒng)的角度,有哪些文件。因為文件,又叫物理文件。刪除一個文件,又叫物理刪除。

    如:
    CONTROL01.CTL ctl = control,控制文件(數(shù)據(jù)庫實體的結(jié)構(gòu),如表結(jié)構(gòu))
    CONTROL02.CTL
    CONTROL03.CTL

    CWMLITE01.DBF dbf = database file = 真正存儲數(shù)據(jù)的文件(如員工具體信息)
    DRSYS01.DBF
    EXAMPLE01.DBF
    INDX01.DBF    以index打頭的dbf專門保存索引
    ODM01.DBF
    ODM02.DBF


    REDO01.LOG 專門保存日志文件
    REDO02.LOG
    REDO03.LOG


    SYSTEM01.DBF
    TEMP01.DBF
    TOOLS01.DBF
    UNDOTBS01.DBF
    USERS01.DBF
    XDB01.DBF

    XXX.ORA oracle = 初始化參數(shù)文件
    XXX2.ORA

     


    邏輯結(jié)構(gòu):指Oracle數(shù)據(jù)庫文件的內(nèi)部組成。

    計算機管理基礎(chǔ)
    ·計算機管理最小的單位是bit,相當一個帶電開關(guān)(閉1斷0),這就是二進制。
    ·計算機要通過數(shù)據(jù)類型來區(qū)別不同的數(shù)據(jù),所以通過字節(jié)Byte來管理,一個字節(jié)有32位(32位計算機,或64位,對應64位計算機。計算機數(shù)位越多,管理的內(nèi)存越大。如2的32次方,小于64次方。如電話號碼用完了,要升位)。不同的數(shù)據(jù)類型分配不同的字節(jié)。如整數(shù)通過4個Byte,小數(shù)8個Byte。字符串由字符組成,字符本質(zhì)是數(shù)字,如A就是65(整數(shù))。

    Oracle管理 塊→區(qū)→段→表空間
    ·塊,Block:最小的磁盤存儲單位,通常是2K或2K的整數(shù)位。即使保存1,至少也用2K。
    ·區(qū),extend:最小的磁盤分區(qū)單位,通常為8K。表示Oracle一次性最小給你分配8K。
    ·段,segment:不同類型的數(shù)據(jù),保存在不同的段。如數(shù)據(jù)段,索引段。
    ·表空間,table space:不同的業(yè)務(wù)系統(tǒng)需要一個單獨的存儲空間,這個空間在SQLServer叫做“databse”(通過create databse獲取),而在Oracle中叫表空間。至少要有5個表空間(system,user,index,tool,temp),用戶表空間數(shù)量不限。也就是說,開發(fā)一個新的業(yè)務(wù)系統(tǒng),通常就要在Oracle中新建一個表空間。
    ·模式,Schema:包含一個用戶所有對象的的邏輯結(jié)構(gòu),模式名稱就是控制該模式的用戶名稱。
    ·關(guān)系:一個數(shù)據(jù)文件只能歸到某一個表空間上,每個表空間可以含一個或多個數(shù)據(jù)文件。

    區(qū)別:
    ·物理結(jié)構(gòu):人有男人,女人組成
    ·邏輯結(jié)構(gòu):人由細胞組成。

    塊區(qū)段表空間比喻
    ·塊:抽屜,放東西最少要占有一個抽屜;區(qū):桌子,最少要買一個桌子;段:這幾個桌子的抽屜放衣服,另外幾個桌子的抽屜放褲子。
    ·表空間:就是用戶的房間。張三所有桌子,衣服,在張三相對獨立的房間中。


    實例與數(shù)據(jù)庫關(guān)系
    ·一個保安只在守一個數(shù)據(jù)庫(單實例數(shù)據(jù)庫)
    ·一個數(shù)據(jù)庫可能雇傭多個保安(多實例數(shù)據(jù)庫

    三種進程
    ·用戶進程=顧客,服務(wù)進程=跑堂,后臺進程=(廚師,會計,出納……)

     

     

     

    相關(guān)概念:

    理解“聯(lián)機”的含義
    ·全稱:聯(lián)機重做日志緩沖區(qū) 。
    ·聯(lián)機就是Online,聯(lián)機日志,就是數(shù)據(jù)庫運行以后時刻使用的日志,叫聯(lián)機日志(肯定不能刪除,受數(shù)據(jù)庫保護);聯(lián)機反過來就是脫機,如以前的日志備份。

    理解日志的作用和“重做日志”的含義
    ·日志的作用是用于恢復數(shù)據(jù)。
    ·簡單理解就是今天買了一本JAVA書,寫日記“書名:JAVA……”。后來書丟掉了,于是看日記,購買了一本相同的書,這樣就恢復了數(shù)據(jù)。本質(zhì)上理解就是執(zhí)行一條Insert,日志文件也有一件Insert。1號有10條數(shù)據(jù),2號insert5條,2號晚上數(shù)據(jù)丟掉了。恢復數(shù)據(jù)步驟如下:首先要恢復數(shù)據(jù)到1號的數(shù)據(jù)有10條(通常DBA要備份原始數(shù)據(jù)),再執(zhí)行日志,于是就有了15條。這就表示“重新做了一次”,所以恢復數(shù)據(jù)的動作叫“重做日志”。

    理解數(shù)據(jù)緩沖區(qū)
    ·圖書館看報紙:第一個人從報架取下來,在閱讀室看,然后不拿回報架;其它同學可以直接在閱讀室看報紙。閱讀室 = 數(shù)據(jù)緩沖區(qū),報架 = 磁盤。

    理解共享池
    ·看英文小說:第一個同學看英文小說,翻譯為中文(時間比較長);其它同學直接看中文小說。

    進程和線程
    ·進程:就是一個程序。如:單線程的孫只能一次打一個妖怪,打完一個再打另一個。如:dos中dir/s,停止以前不能做其它的事情。
    ·線程:就是程序運行以后,在內(nèi)存中的一個COPY,兩者在功能上是完全一樣的。多線程的孫能變出很多個孫,每個孫單獨一個妖怪。 但實際上電腦往往只有一個CPU,做不到真正的多線程。那就要求孫一個妖怪打一會兒,但是打得很快,好像就在同時和很多人打(如以前單核CPU電腦也能同時聽歌和上網(wǎng),只是切換得很從,體會不出來)
    ·打開一個WORD程序,同時讀取兩個WORD文檔,WORD就要單獨啟動兩份(要求兩份獨立的內(nèi)存)
    打開一個QQ程序,同時和兩個好友聊天,QQ只要啟動一份份(只要求一份獨立的內(nèi)存,好處在于可以共享內(nèi)存中的相同的數(shù)據(jù))

     ‍

    posted on 2012-09-05 16:12 kxbin 閱讀(666) 評論(0)  編輯  收藏 所屬分類: ORACLE轉(zhuǎn)發(fā)
    你恨一個人是因為你愛他;你喜歡一個人,是因為他身上有你沒有的;你討厭一個人是因為他身上有你有的東西;你經(jīng)常在別人面前批評某人,其實潛意識中是想接近他。

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(5)

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    J2EE

    java技術(shù)網(wǎng)站

    Linux

    平時常去的網(wǎng)站

    數(shù)據(jù)庫

    電影網(wǎng)站

    網(wǎng)站設(shè)計

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 少妇太爽了在线观看免费视频| 久99久无码精品视频免费播放| 国产精品免费精品自在线观看| 国产亚洲精品无码成人| 免费看小12萝裸体视频国产| 77777午夜亚洲| 成年女人看片免费视频播放器| 亚洲午夜在线播放| 免费观看男人免费桶女人视频| 亚洲国产精品无码久久九九大片| 处破痛哭A√18成年片免费| 亚洲老熟女五十路老熟女bbw| 大陆一级毛片免费视频观看i| 亚洲人成色777777精品| 在线观着免费观看国产黄| 美女视频黄频a免费| 亚洲高清国产拍精品青青草原| jizz中国免费| 亚洲Av永久无码精品三区在线| 免费A级毛片无码A∨ | 中文字幕亚洲天堂| 亚洲人成网站18禁止久久影院| 国产精品免费观看| 亚洲av无码一区二区三区四区| 亚洲国产成人久久精品99 | 久久99亚洲综合精品首页| A毛片毛片看免费| 4480yy私人影院亚洲| 毛片a级毛片免费观看免下载 | 精选影视免费在线 | 久久亚洲AV成人出白浆无码国产 | 国产电影午夜成年免费视频| 99亚偷拍自图区亚洲| 18女人腿打开无遮掩免费| 国产成人精品亚洲2020| www国产亚洲精品久久久日本| 久久国产免费观看精品| 亚洲看片无码在线视频| 亚洲一区二区精品视频| 国产成人免费在线| 一区二区在线免费视频|