- 浏览: 555595 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (340)
- Spring (4)
- Hibernate (2)
- Linux (34)
- Oracle (145)
- Eclipse (1)
- UML (1)
- HTML&&JAVASCRIPT (11)
- JAVA (33)
- 设计模式 (1)
- 版本控制 (1)
- wrap框架 (3)
- IBATIS (5)
- Ruby (1)
- DWR (1)
- MINA (11)
- JBPM (2)
- 缓存技术 (4)
- 网络 (3)
- 应用服务器 (1)
- GWT (5)
- 杂谈 (2)
- ICE (4)
- XML (2)
- ArcGis (2)
- Flex (8)
- junit单元测试 (1)
- SNMP (1)
- 存储 (1)
- office (1)
- MongoDB (0)
- Greenplum (3)
- 管理点滴 (1)
- C++ (6)
- 网络入门 (3)
- Tomcat (7)
- JMX (0)
- webservice (1)
- Oracle的10046事件 (1)
- Library cache内部机制详解 (1)
- expdp通过dblink来导入 (1)
最新评论
-
yuanliangding:
有没有关于mock的更多知识。
基于mock对象和JUnit框架简化Spring Web组件单元测试 -
saup007:
ssh端口不是22,怎么搞呢?
Greenplum 学习笔记 -
springmvc-freemarker:
java开源项目源码实例下载
Apache上全部JAVA开源项目简介 -
bobbell:
哇塞,你真厉害,整理的非常全面。我是一个java barcod ...
Greenplum 学习笔记 -
wsj55133245513324:
这不是bug,你将日志级别从debug提升到INFO 就好了 ...
Spring,smppapi,apache mina, ssl快速实现安全的smpp(5)
对于绝大部分32位系统上的32位数据库,内存最大的设置都不能超过2G,有的系统最大值甚至不能超过1.7G左右。
不过有的系统可以利用USE_INDIRECT_DATA_BUFFERS参数来突破这个限制。
这篇文章介绍如何设置这个参数。
当前的操作系统是Rethat Enterprise Linux 4 32位:
[oracle@zjyy ~]$ uname -a
Linux zjyy 2.6.9-42.ELsmp #1 SMP Wed Jul 12 23:27:17 EDT 2006 i686 i686 i386 GNU/Linux
[oracle@zjyy ~]$ more /etc/issue
Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
Kernel r on an m
而安装的数据库是32位的Oracle10.2.0.1:
[oracle@zjyy ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Sep 23 10:24:29 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
通过设置USE_INDIRECT_DATA_BUFFERS参数,可以使得SGA超过3G的大小:
SQL> show sga
Total System Global Area 3288334336 bytes
Fixed Size 1217836 bytes
Variable Size 322439892 bytes
Database Buffers 2949120000 bytes
Redo Buffers 15556608 bytes
SQL> show parameter use_indirect_data_buffers
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
use_indirect_data_buffers boolean TRUE
使用这个参数并不是简单的将其置为TRUE就可以了,如果只是修改参数并重启数据库,会碰到各种的错误。下一篇文章中会专门介绍在使用这个参数的时候碰到的错误。
[oracle@zjyy bdump]$ su -
Password:
[root@zjyy ~]# umount /dev/shm
[root@zjyy ~]# mount -t ramfs ramfs /dev/shm
[root@zjyy ~]# chown oracle:oinstall /dev/shm
[root@zjyy ~]# vi /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
umount /dev/shm
mount -t ramfs ramfs /dev/shm
chown oracle:oinstall /dev/shm
~
"/etc/rc.local" 10L, 298C written
[root@zjyy ~]# reboot
Broadcast message from root (pts/4) (Wed Sep 23 07:52:56 2009):
The system is going down for reboot NOW!
首先切换到root用户,执行umount /dev/shm操作,然后执行mount –t ramfs ramfs /dev/shm命令,并给Oracle用户授权。
为了确保这个操作可以在系统重启后生效,修改/etc/rc.local,将上面的命令添加进去,然后重启系统。
检查系统的配置:
[root@zjyy ~]# mount | grep shm
ramfs on /dev/shm type ramfs (rw)
[root@zjyy ~]# ls -ld /dev/shm
drwxr-xr-x 2 oracle oinstall 0 Sep 23 07:55 /dev/shm
下面修改系统配置,在/etc/security/limits.conf文件,添加Oracle用户所允许的内存限制:
* soft memlock 3145728
* hard memlock 3145728
修改/etc/init.d/sshd文件,在脚本中的start部分,添加ulimit –l命令:
start()
{
# Create keys if necessary
do_rsa1_keygen
do_rsa_keygen
do_dsa_keygen
ulimit -l
echo -n $"Starting $prog:"
initlog -c "$SSHD $OPTIONS" && success || failure
RETVAL=$?
[ "$RETVAL" = 0 ] && touch /var/lock/subsys/sshd
echo
}
下面修改/etc/ssh/sshd_config文件,在文件的最后添加下面的配置:
UseLogin yes
在操作系统级的设置完成,下面切换到Oracle用户检查设置是否生效:
[root@zjyy ~]# su - oracle
[oracle@zjyy ~]$ ulimit -l
3145728
如果Oracle用户执行ulimit –l的结果不是前面设置的3145728,那么说明前面的设置有问题,需要根据上面的步骤重新设置。
下面设置正确的Oracle数据库初始化参数,就可以启动数据库了:
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=180000
*.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
ORACLE instance started.
Total System Global Area 3288334336 bytes
Fixed Size 1217836 bytes
Variable Size 322439892 bytes
Database Buffers 2949120000 bytes
Redo Buffers 15556608 bytes
Database mounted.
Database opened.
需要注意,使用USE_INDIRECT_DATA_BUFFERS参数,不能在使用其他9i以后新增的内存控制参数了,比如SGA_TARGET、DB_CACHE_SIZE等等,必须通过DB_BLOCK_BUFFERS参数来指定内存的容量。
SQL> show parameter db_block
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_buffers integer 180000
db_block_checking string FALSE
db_block_checksum string TRUE
db_block_size integer 16384
SQL> select 180000*16384 from dual;
180000*16384
------------
2949120000
SQL> show parameter sga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 3136M
sga_target big integer 0
SQL> show parameter db_cache_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_cache_size big integer 0
而对于没有使用这个参数的情况,将SGA设置到2.5G,也就是DB_CACHE_SIZE的大小超过1.7G,则Oracle启动报错:
SQL> startup
ORACLE instance started.
Total System Global Area 2214592512 bytes
Fixed Size 1220532 bytes
Variable Size 486539340 bytes
Database Buffers 1711276032 bytes
Redo Buffers 15556608 bytes
Database mounted.
Database opened.
SQL> show parameter use_ind
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
use_indirect_data_buffers boolean FALSE
SQL> alter system set sga_target = 2500m 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: 884739
最早碰到的错误是由于设置了SGA_TARGET,导致了启动时报错: SQL> create pfile='/home/oracle/initcis.ora' File created. SQL> host echo "use_indirect_data_buffers=true" >> /home/oracle/initcis.ora SQL> host more /home/oracle/initcis.ora SQL> startup pfile=/home/oracle/initcis.ora 查询ORA-385错误,发现Oracle的错误文档上描述的十分清晰: ORA-00385: cannot enable Very Large Memory with new buffer cache 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 Total System Global Area 1811939328 bytes System altered. SQL> shutdown immediate Total System Global Area 2432696320 bytes NAME TYPE VALUE System altered. SQL> shutdown immediate 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' SQL> startup pfile=initcis.ora 构成这个错误的原因就是由于操作系统上面没有进行设置。 这时alert文件中对应的错误信息为: Wed Sep 23 07:39:47 2009 这时,只需要根据上一篇文章介绍的步骤进行配置,就可以最终启动数据库。
2 from spfile='/data/ora10g/product/10.2.0/db_1/dbs/spfilecis.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
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.
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
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;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
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
------------------------------------ ----------- ------------------------------
use_indirect_data_buffers boolean FALSE
SQL> alter system set db_cache_size = 2100m scope = spfile;
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';
*.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
ORA-27103: internal error
Linux Error: 11: Resource temporarily unavailable
ERROR: Unable to attach to VLM segment at (nil): window size=0x20000000 size=0x83400000
发表评论
-
expdp通过dblink来导入
2011-12-14 15:01 1779create.sql: spo create.log rem ... -
Library cache内部机制详解
2011-12-14 14:55 885Library cache内部机制详解 http://www ... -
Oracle的10046事件
2011-12-14 14:53 2092Oracle的10046事件,可以跟踪应用程序所执行的SQL语 ... -
REDO LOG MEMBER STATUS 和 REDO LOG GROUP STATUS
2011-12-14 14:51 924V$LOG 中列出的是REDO LOG GROUP STA ... -
oracle的exp/imp使用方法学习(转)
2011-08-30 08:54 954exp/imp两个命令可以说是oracle中最常用的命令了 ... -
oracle几个awr报告
2011-08-09 14:25 890工作中,碰到的数据库慢的几个awr报告 -
Oracle Profile 使用详解
2011-06-21 14:41 966一、目的: Oracle系统中的profile可以用来对 ... -
ORA-27013
2011-04-13 14:25 1510很新的一个bug,看下你的 memory_target是不是& ... -
ACLE表连接方式分析及常见用法
2011-03-23 09:14 1109摘要: 针对在数据仓库 ... -
ORACLE 外部表应用
2011-03-09 14:58 1062SQL> create or replace direc ... -
How to convert a 32-bit database to 64-bit database on Linux
2011-02-18 14:09 1209How to convert a 32-bit databas ... -
expdp impdp 数据库导入导出命令详解
2011-02-16 09:10 1948一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最 ... -
Oracle手工解/锁表
2011-01-25 14:15 2487手工锁表:lock table tbl_t1 in row ... -
oracle动态性能视图
2011-01-22 10:47 855Oracle动态性能视图个人整理 -
RBO规则介绍
2011-01-17 16:45 1057•无条件使用索引•使用内置的优先级别决定访问路径•比较难以 ... -
关于排序、sort_area_size、临时表空间
2011-01-13 15:30 1114简单陈述一下:针对每 ... -
创建索引ORACLE 需要做的工作
2011-01-13 14:53 1315一. 先来看一下创建索引要做哪些操作:1. 把inde ... -
表之间的连接
2011-01-13 10:42 791Join是一种试图将两个表结合在一起的谓词,一次只能连接2 ... -
重建索引的条件
2011-01-12 16:43 947如果索引存在碎片,那每个索引数据块上的索引数据就更少,会导致我 ... -
TKPROF使用学习
2011-01-10 17:38 715Tkprof工具可用来格式化sql trace产生的文件, ...
相关推荐
在启用VLM的情况下,`_DB_BLOCK_LRU_LATCHES`等于`(Max buffer pools * SETS_PER_POOL)`,而`SETS_PER_POOL`则根据是否启用了`USE_INDIRECT_DATA_BUFFERS`而不同: - 如果`USE_INDIRECT_DATA_BUFFERS = TRUE`,...
同时,需要在初始化参数文件 init.ora 中设置参数 USE_INDIRECT_DATA_BUFFERS=TRUE,将 SGA 内存使用扩大到 4GB 以上。 此外,需要设置参数 DB_BLOCK_SIZE 和 DB_BLOCK_BUFFERS,以确定缓冲池的大小。 在 Oracle9i ...
content this file is matrix converter with indirect method
- 在`init*.ora`文件中设置`USE_INDIRECT_DATA_BUFFERS=TRUE`,这样Oracle就能够利用更多的内存。 - 调整`AWE_WINDOW_MEMORY`参数的值。这个参数控制了Oracle可以直接访问的内存大小。默认情况下,Oracle只使用2GB...
用matlab搭建的间接矢量控制模块,用于矢量控制的仿真
CSDN博客:《非线性滤波——基于EKF的INS/GPS松组合算法的研究(间接法|EKF|欧拉角)》附件资源 博文地址:https://blog.csdn.net/tsuibeyond/article/details/104059643 摘要:在之前的博文《非线性滤波——基于EKF...
基于matlab/simulink的间接矢量控制建模
commande victoriel indirect de la machyne asynchrone programme par matlabe
1. **修改初始化参数文件**:在 Oracle 的初始化参数文件中设置 `USE_INDIRECT_DATA_BUFFERS` 参数为 TRUE,以便启用间接数据缓冲区支持。 ```ini USE_INDIRECT_DATA_BUFFERS=TRUE ``` 2. **调整缓存大小**:...
无论是对电力电子工程的学生还是研究人员,都能从中学习到如何应用SVM来设计高效、灵活的矩阵变换器,同时掌握如何利用Simulink进行电力系统仿真。通过对"OPEN1.mdl"模型的分析和调试,可以深入理解和优化矩阵变换器...
- **use_indirect_data_buffers**: 在32位平台上,该参数允许SGA使用更多的物理内存,从而突破2GB的限制。在64位平台上,该参数被忽略。 #### 初始化参数查询 通过执行如下SQL命令,可以查看当前实例中相关内存...
基于RLS算法的 功放数字预失真仿真 Saleh模型 多项式
- 大数据处理:对于大数据集,间接存储可以避免一次性加载所有数据到内存,提高内存利用率。 综上所述,`indirect_array`是C++中实现高效间接存储的一种工具,通过类模板提供了一种通用的解决方案,适用于各种需要...
GL_AMD_draw_buffers_blend GL_AMD_multi_draw_indirect GL_AMD_name_gen_delete GL_AMD_performance_monitor GL_AMD_pinned_memory GL_AMD_sample_positions GL_AMD_seamless_cubemap_per_texture GL_AMD_shader_...
在Excel 2016这款强大的办公软件中,掌握一些常用函数可以显著提高工作效率,而INDIRECT函数就是其中非常实用的一个。INDIRECT函数的主要功能是将文本字符串转换为实际的单元格引用,允许用户灵活地处理和引用工作表...
在这个“利用Excel INDIRECT函数返回对多表区域的引用”的例子中,我们将深入探讨如何利用此函数来引用不同工作表中的学期成绩表。 首先,我们需要理解INDIRECT函数的基本语法。它的结构是 `INDIRECT(ref_text, [a1...
其中,单点传送是发送数据包给已知网络地址的设备,组寻址是发送给一组设备,广播传送是发送给网络上所有设备,而间接传送则是在应用程序不清楚最终目标时,利用栈的绑定表进行目标查找。 - `srcEP`:表示源端点,...
用到空间杜宾模型SDM,由于jplv7包中的原有的SDM模型只能分析截面数据,而做面板数据需要jplv7的panel里面给出的SAR模型再自己改编,难度很高。该工具箱是已经直接可以做面板的SDM代码,当然,也可以做SAR,SER等空间...
RDF 间接路径 编写代码是为了解决作者在查找域本体采用的各种命名空间下的两个概念之间的间接关系(路径)时面临的一些特定问题。 注意:代码是使用 Netbean (Java) 编写的 目的 代码已根据作者项目的特定用途编写...
- **Indirect:** Indirect addressing involves using a register to store the address of the data being accessed. - **Relative:** Relative addressing uses an offset relative to the program counter to ...