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

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

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

    鷹翔宇空

    學習和生活

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      110 Posts :: 141 Stories :: 315 Comments :: 1 Trackbacks

    引自:http://blog.oracle.com.cn/2446/viewspace_2056.html



      眾所周知,在32位的操作系統如win2K上,操作系統能管理的內存為4GB(power(2,32) =4G) ,oracle使用的總內存有2G限制。目前大多數信息系統都能為數據庫服務器配上4G物理內存甚至更多,但無論你為系統配置多大的物理內存,正常情況下都不能使oracle使用超過2G的內存(包含SGA、PGA等),從而造成系統資源浪費。那么,有沒有什么辦法能使運行在windows系統上的oracle使用超過2G的內存呢?windows 提供了一種叫4GT(4G Tuning)的技術,使得oracle使用超過2G(不超過3G)的內存成為可能。而為了讓應用程序使用更大的內存,還有一種PSE36的技術,可以讓oracle使用超過3G的內存。這里,只對我們使用4GT特性讓oracle使用超過2G的內存進行討論。

    一 使用4GT特性的基本要求:
    ....盡管可以在不超過2G物理內存的系統上使用4GT特性,但oracle并不推薦這種做法,因為這將會嚴重降低系統性能。以我的經驗來講,如果系統未安裝4G物理內存,最好也不要使用這種方法來讓oracle使用更多的內存。此外,在需要你的oracle使用超過2G的內存時,數據庫服務器最好不要再運行其他的服務,以減小系統的壓力,讓oracle工作得更好。
    ....另外,據MS的文檔,4GT只能用于 Advanced Server , Datacenter版本上,Server 版以及 Professional 版不能使用4GT特性(實際上是不是也沒有必要?)

    二 為什么4GT能讓應用程序使用超過2G的內存
    ....在正常情況下,windows系統對內存的分配是這樣的:在內存地址0x00000000 到 0x7FFFFFFF之間的空間,交給應用程序使用,操作系統內核及其支持則使用內存地址 0x80000000 到 0xFFFFFFFF之間的空間。在使用4GT之后,操作系統將內核及其支持程序使用的內存地址空間壓縮到 0xC0000000 到 0xFFFFFFFF之間,從而為應用程序“讓”出來1G的空間。但是,僅僅“讓”出來了這1G的空間還是不夠的,還需要指定哪一個應用程序來使用這“多出來的”1G空間,以及如何分配份額等。后面將結合具體的參數設置來討論。為便于討論,我們將正常情況下應用程序可以使用的2G內存(即地址在 0x00000000 到 0x7FFFFFFF 之間的內存)稱作普通內存,而將windows “讓”出來的1G內存(地址在 0x80000000 到 0xBFFFFFFF之間)稱作間接內存。

    三 oracle使用超過2G內存,不超過3G內存的具體設置步驟:
    1 首先應卸載實例,關閉oracle服務。
    2 打開操作系統3G開關:
    ....修改boot.ini文件,在啟動windows項中添加 /3G 參數。修改過后的boot.ini文件應該類似以下內容:
    [boot loader]
    timeout=8
    default=multi(0)disk(0)rdisk(0)partition(1)
    [operating systems]
    multi(0)disk(0)rdisk(0)partition(1)="Microsoft Windows 2000 Advanced Server" /3G /fastdetect
    注意在啟動win2K AdvServer的一欄里,多了一個 /3G 參數。這個參數的作用,就是讓windows啟動時,將自己的內核及支持程序裝載到內存地址 0xC0000000 到 0xFFFFFFFF 之間,給應用程序留出3G的空間來。
    3 修改oralce 的 init.ora 文件
    ..1) 確定oracle的緩沖區及共享池大小,假設作如下定義:
    ........ db_block_size = 4096
    ........ db_block_buffers = 262144 # 緩沖區大小為1G
    ........ share_pool_size = 314572800 # 使用300M共享池
    ..2) 添加下列各項內容:
    ........ use_indirect_data_buffers = true
    ........ # 告訴oracle可以使用間接內存(即可以使用windows讓出來的1G內存作為數據緩沖區)
    ........ pre_page_sga = true
    ........ # 把oracle SGA鎖定到內存中,不產生頁面交換文件(8i的參數可能是lock_sga = true)
    ........ # 對于一個有4G物理內存的系統來講,可能這一個參數并不是必須的
    4 修改注冊表,定義oracle的DBbuffer使用常規內存大小
    ....在注冊表 _Local_Machine中添加一個二進制值,名稱為AWE_WINDOW_MEMORY ,值的單位為字節,大小為你需要讓oracle使用普通內存作為緩存的大小(不是windows讓出來的1G,而是內存地址在0x00000000 到 0x7FFFFFFF 之間的內存大小)。假如設為209715200,即200M大小,那么oracle的數據緩沖區將占用200M的普通內存,其余部分(1G - 200M = 824M)則使用間接內存。
    5 重新啟動操作系統,啟動數據庫。OK,你現在的 oracle 可以使用2G + 824M內存了。

    四 幾個補充討論
    1 windows系統“讓”出來的1G間接內存,只能用于數據緩沖區
    ....在4GT特性測試中發現,間接內存只能用于數據緩沖區,而不能用于共享池,也不能分配給用戶作為PGA。或許有其他的參數可以定義,但我查到的文獻中沒有任何一篇講間接內存可以用于哪些地方,而在我們的測試中發現按上面的修改后,間接內存只能用于數據緩沖區。此結論只作為一個經驗,不是定論,請各位大俠補充修正。
    2 注冊表中 AWE_WINDOW_MEMORY 參數大小的定義
    ....這個參數定義緩沖池使用普通內存的大小,不能太小。在數據塊大小為4K,緩沖池為1G(即使用262144個塊作緩沖池)大小的情況下,此參數定義為100M時,oracle不能啟動,定義為200M時正常啟動。根據我閱讀文獻后對這個情況的理解,數據緩沖區的每一個塊的塊頭信息都將存放于普通內存中,不能存放于間接內存中。如果此參數定義過小,導致緩沖區塊頭信息都不能存放,則可導致數據庫啟動失敗。那么,是不是同樣大小的緩沖區,數據庫塊越大,則這個參數就可以定義得越小,因而可以占用更少的普通內存呢?有待驗證。
    ....在具體的應用中,如何定義此參數,應綜合考慮最大并發連接數(專用服務器模式下)、用戶重用的堆棧大小、排序區、共享池、大池等內存參數的設置情況,盡可能的將數據緩沖區放到間接內存中,充分利用系統的資源。
    3 間接內存的性能
    ....據oracle的文獻講,間接內存的性能(我想主要是指速度和效率吧?)不如直接內存,絕不推薦在未安裝有4G物理內存的系統上使用4GT特性。我不知道如何比較間接內存與直接內存的速度和效率,因而未作測試,姑且信之。
    ....一點小結,期望能對大家有所啟發。還請各位大俠補充指正。
    以上內容的測試環境:
    IBM X360 +4G內存 + RAID 5陣列
    Windows 2000 Advaced Server SP3 + oracle 8.1.6 專用服務器模式

    posted on 2006-11-15 09:37 TrampEagle 閱讀(1703) 評論(0)  編輯  收藏 所屬分類: 技術文摘
    主站蜘蛛池模板: 亚洲欧洲春色校园另类小说| 亚洲色大成网站WWW国产| 免费福利视频导航| 亚洲一区二区三区成人网站| 国产成人99久久亚洲综合精品| 特级精品毛片免费观看| 亚洲AV成人无码网站| 久久亚洲精品无码| 国产人成免费视频| 在线a免费观看最新网站| 一区二区三区免费在线视频| 亚洲第一区视频在线观看| 免费国产综合视频在线看 | 久久99精品视免费看| 亚洲jizzjizz少妇| 久久精品国产亚洲AV无码娇色 | 亚洲日日做天天做日日谢| 久久久久久久亚洲精品| 手机在线看永久av片免费| 中文字幕手机在线免费看电影| 亚洲五月丁香综合视频| 国产亚洲人成无码网在线观看| 青青草国产免费久久久91| 97在线视频免费播放| 一区二区视频免费观看| 国产成人精品日本亚洲专| 亚洲国产精品福利片在线观看| 国产男女猛烈无遮挡免费视频 | 亚洲中文字幕成人在线| 免费毛片在线视频| 18禁止看的免费污网站| 亚洲免费人成在线视频观看| 国产天堂亚洲精品| 亚洲精华液一二三产区| 亚洲狠狠狠一区二区三区| 亚洲不卡av不卡一区二区| 亚洲成a人片在线播放| 嫩草影院免费观看| 中文字幕无码成人免费视频| 18观看免费永久视频| 88av免费观看|