程序員備忘

          java技術
          posts - 8, comments - 0, trackbacks - 0, articles - 0

          oracle

          Posted on 2009-07-21 11:53 波波^_^ 閱讀(164) 評論(0)  編輯  收藏
          在32位的操作系統(如windows server 2003)oracle使用的總內存有2G限制。無論你為系統配置多大的物理內存,正常情況下都不能使oracle使用超過2G的內存(包含SGA、PGA等)。windows 提供了一種叫4GT(4G Tuning)的技術,使得oracle使用超過2G(不超過3G)的內存成為可能。

          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 文件
             方法: (sid以szhii為例)
          A、        在“運行”輸入cmd
          B、        C:\Documents and Settings\Administrator>sqlplus /nolog
          C、        Sql> conn sys/oracle@szhii as sysdba
          D、        Sql> create pfile from  spfile;
          說明:(建創文件放在$ \ora92\database \下,文件名稱為init+(sid名稱).ora (如sid名稱為 szhii,則initszhii.ora) 備份此文件,然后到此文件進行修改)
          修改內容如下:
            ..1) 確定oracle的緩沖區及共享池大小,假設作如下定義:
            ........ db_block_size = 4096
            ........db_block_buffers = 262144  # 緩沖區大小為1G (此項與文件中的db_cache_size沖突,因此刪除此項或屏閉此項)
            ........ 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使用常規內存大小
          ... AWE_WINDOW_MEMORY參數值,也就是在HKEY_LOCAL_MACHINE\ Software\Oracle\HOME0下中添加一個二進制值,名稱為AWE_WINDOW_MEMORY ,值的單位為字節,大小為你需要讓oracle使用普通內存作為緩存的大小(不是windows讓出來的1G,而是內存地址在0x00000000 到 0x7FFFFFFF 之間的內存大小)。假如設為209715200,即200M大小,那么oracle的數據緩沖區將占用200M的普通內存,其余部分(1G - 200M = 824M)則使用間接內存。
          (說明:修改完成以后看量否正確可以使用修改的文件啟動數據庫,具體方法如下:
          Sql> startup pfile=' D:\oracle\ora92\database\INITszhii.ORA';
          正常啟動說明修改成功,否則修改不成功。
          修改成功以后,調用生成spfile
          Sql> create spfile from pfile

          5 重新啟動操作系統,啟動數據庫。OK,你現在的 oracle 可以使用2G + 824M內存了。

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 奉新县| 眉山市| 阿克苏市| 若尔盖县| 江孜县| 江都市| 大埔县| 绿春县| 吴桥县| 清水河县| 永修县| 抚顺县| 庐江县| 双城市| 宁河县| 冀州市| 宜良县| 紫阳县| 剑阁县| 潢川县| 乌拉特后旗| 浦江县| 民乐县| 商丘市| 元朗区| 阳山县| 成安县| 南澳县| 彰化市| 东兰县| 武邑县| 祁东县| 中宁县| 牙克石市| 溆浦县| 台北县| 嘉义市| 宜川县| 桃园市| 乌鲁木齐县| 通榆县|