利用USE_INDIRECT_DATA_BUFFERS突破32位的2G記憶體限制(二)
對於絕大部分32位系統上的32位資料庫,記憶體最大的設定都不能超過2G,有的系統最大值甚至不能超過1.7G左右。
不過有的系統可以利用USE_INDIRECT_DATA_BUFFERS引數來突破這個限制。
這篇文章介紹設定這引數過程中碰到的錯誤。
利用USE_INDIRECT_DATA_BUFFERS突破32位的2G記憶體限制(一):http://yangtingkun.itpub.net/post/468/492617
最早碰到的錯誤是由於設定了SGA_TARGET,導致了啟動時報錯:
SQL> create pfile='/home/oracle/initcis.ora'
2 from spfile='/data/ora10g/product/10.2.0/db_1/dbs/spfilecis.ora';
File created.
SQL> host echo "use_indirect_data_buffers=true" >> /home/oracle/initcis.ora
SQL> host more /home/oracle/initcis.ora
cis.__db_cache_size=1711276032
cis.__java_pool_size=16777216
cis.__large_pool_size=16777216
cis.__shared_pool_size=452984832
cis.__streams_pool_size=0
*.audit_file_dest='/data/ora10g/admin/cis/adump'
*.background_dump_dest='/data/ora10g/admin/cis/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/webdata/oracle/oradata/cis/control01.ctl','/webdata/oracle/oradata/cis/control02.ctl','/webdata/oracle/oradata/cis
/control03.ctl'
*.core_dump_dest='/data/ora10g/admin/cis/cdump'
*.db_block_size=16384
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='cis'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=cisXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=1048576000
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=2621440000
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/data/ora10g/admin/cis/udump'
use_indirect_data_buffers=true
SQL> startup pfile=/home/oracle/initcis.ora
ORA-00385: cannot enable Very Large Memory with new buffer cache parameters
查詢ORA-385錯誤,發現Oracle的錯誤文件上描述的十分清晰:
ORA-00385: cannot enable Very Large Memory with new buffer cache parameters
Cause: User specified one or more of { db_cache_size , db_recycle_cache_size, db_keep_cache_size, db_nk_cache_size (where n is one of 2,4,8,16,32) } AND use_indirect_data_buffers is set to TRUE. This is illegal.
Action: Very Large Memory can only be enabled with the old (pre-Oracle_8.2) parameters.
連DB_CACHE_SIZE等9i引入的記憶體引數都不支援的話,就更不要說10G的SGA_TARGET了,嘗試去掉SGA_TARGET和DB_CACHE_SIZE引數:
SQL> alter system set sga_target = 0 scope = spfile;
System altered.
SQL> alter system set shared_pool_size = 300m scope = spfile;
System altered.
SQL> alter system set java_pool_size = 0 scope = spfile;
System altered.
SQL> alter system set large_pool_size = 0 scope = spfile;
System altered.
SQL> alter system set streams_pool_size = 0 scope = spfile;
System altered.
SQL> alter system set db_cache_size = 1400m scope = spfile;
System altered.
SQL> alter system set sga_max_size = 0 scope = spfile;
System altered.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 1811939328 bytes
Fixed Size 1219952 bytes
Variable Size 318767760 bytes
Database Buffers 1476395008 bytes
Redo Buffers 15556608 bytes
Database mounted.
Database opened.
SQL> alter system set db_cache_size = 2000m scope = spfile;
System altered.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 2432696320 bytes
Fixed Size 1220844 bytes
Variable Size 318770964 bytes
Database Buffers 2097152000 bytes
Redo Buffers 15552512 bytes
Database mounted.
Database opened.
SQL> show parameter use_indi
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
use_indirect_data_buffers boolean FALSE
SQL> alter system set db_cache_size = 2100m scope = spfile;
System altered.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORA-27102: out of memory
Linux Error: 12: Cannot allocate memory
Additional information: 1
Additional information: 1835011
SQL> create pfile='/home/oracle/initcis.ora'
2 from spfile='/data/ora10g/product/10.2.0/db_1/dbs/spfilecis.ora';
File created.
SQL> host echo "use_indirect_data_buffers=true" >> /home/oracle/initcis.ora
SQL> host vi initcis.ora
*.audit_file_dest='/data/ora10g/admin/cis/adump'
*.background_dump_dest='/data/ora10g/admin/cis/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/webdata/oracle/oradata/cis/control01.ctl','/webdata/oracle/oradata/cis/control02.ctl','/webdata/oracle/oradata/cis/control03.ctl'
*.core_dump_dest='/data/ora10g/admin/cis/cdump'
*.db_block_size=16384
#*.db_cache_size=2202009600
db_block_buffers=134400
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='cis'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=cisXDB)'
*.java_pool_size=0
*.job_queue_processes=10
*.large_pool_size=0
*.open_cursors=300
*.pga_aggregate_target=1048576000
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_max_size=0
*.sga_target=0
*.shared_pool_size=314572800
*.streams_pool_size=0
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/data/ora10g/admin/cis/udump'
use_indirect_data_buffers=true
~
~
~
"initcis.ora" 27L, 902C written
SQL> startup pfile=initcis.ora
ORA-27103: internal error
Linux Error: 11: Resource temporarily unavailable
構成這個錯誤的原因就是由於作業系統上面沒有進行設定。
這時alert檔案中對應的錯誤資訊為:
Wed Sep 23 07:39:47 2009
ERROR: Unable to attach to VLM segment at (nil): window size=0x20000000 size=0x83400000
這時,只需要根據上一篇文章介紹的步驟進行配置,就可以最終啟動資料庫。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-616466/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 利用USE_INDIRECT_DATA_BUFFERS突破32位的2G記憶體限制(一)記憶體
- 突破oracle for win2K的2G記憶體限制Oracle記憶體
- 突破oracle for win2K的2G記憶體限制 (轉)Oracle記憶體
- 解決sqlserver限制2G記憶體限制安裝SQLServer記憶體
- GoldenGate通過CACHEMGR限制記憶體利用Go記憶體
- 全記憶體的redis用習慣了?那能突破記憶體限制類redis產品ssdb呢?記憶體Redis
- Netweaver工作程式的記憶體限制 VS CloudFoundry應用的記憶體限制記憶體Cloud
- 程式設計師修仙之路--突破記憶體限制的高效能排序程式設計師記憶體排序
- oracle 9i 突破win2003記憶體限制Oracle記憶體
- ORACLE 使用超過2G記憶體Oracle記憶體
- 2G記憶體搞定一億資料的分析引擎記憶體
- 安裝記憶體2g的可以裝win10系統嗎_2g記憶體裝win10系統的方法記憶體Win10
- Node記憶體限制和垃圾回收記憶體
- Node記憶體限制與垃圾回收記憶體
- aix 共享記憶體段大小限制AI記憶體
- win10系統2g記憶體夠用嗎_2g記憶體可以裝win10流暢嗎會不會卡Win10記憶體
- windows 32位的 Oracle 記憶體限制問題WindowsOracle記憶體
- MikroTik RouterOS x86最大記憶體只能支援2GROS記憶體
- 顯示卡視訊記憶體2G和4G的區別 視訊記憶體越大效能越好嗎?記憶體
- 谷歌NLP新模型「大鳥」突破BERT限制,稀疏注意力機制更省記憶體谷歌模型記憶體
- C語言-記憶體管理之二[記憶體指令]C語言記憶體
- 027、限制容器對記憶體的使用(2019-01-22 週二)記憶體
- 利用MAT分析JVM記憶體問題,從入門到精通(二)JVM記憶體
- windows2003/32bit和oracle32位突破記憶體1.7GB限制WindowsOracle記憶體
- 記憶體才2G,蘋果iPhone為啥敢賣那麼貴?記憶體蘋果iPhone
- VB輸入限制的記憶體破解 (2千字)記憶體
- 擺脫限制使有限的記憶體用在刀刃上(轉)記憶體
- 快取及使用 Circuit Breaker 限制記憶體使用快取UI記憶體
- Windows 32bit OS上實體記憶體限制以及ORACLE 10G 在32bit OS的SGA記憶體分配限制解決方法Windows記憶體Oracle 10g
- CTF記憶體高階利用技術記憶體
- Linux共享記憶體(二)Linux記憶體
- Windows記憶體管理分析(二)Windows記憶體
- oracle 記憶體結構(二)Oracle記憶體
- 突破32位操作繫系統記憶體限製記憶體
- [Virtualization]ESXi體系結構與記憶體管理(二)控制記憶體分配記憶體
- 深入理解Kubernetes資源限制:記憶體記憶體
- Java的記憶體 -JVM 記憶體管理Java記憶體JVM
- Android 是如何管理 App 記憶體的 — Android 記憶體優化第二彈AndroidAPP記憶體優化