上星期aaron提出一个"如何修改Oracle数据库的系统连接数"的问题,我反正不需要回答,之后就没去想。
今天看到了rex的答案,总觉得哪里有点怪怪的,和我google出来的东西稍微有点出入,借此机会就稍微多点学习了下oracle这方面的系统配置,也与rex有了些交流,特此记录一笔。
Terminology:
1.sga(system global area) & pga(process global area)
SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。
PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反PGA 是只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收.
查看sga:show parameter sga;或 select * from v$sga;
查看pga:show parameter pga;或 select * from v$pgastat;
修改pga:alter system set pga_aggregate_target=512m scope=both;
ORACLE to the proposal: OLTP systems PGA = (Total Memory) * 80% * 20%. DSS systems PGA = (Total Memory) * 80% * 50%.
这里的OLTP(Online Transaction Processing)指的是在线事务处理,特点有:应用程序具有高的吞吐量,并且是Update、Insert 的密集型。如订票系统、订货系统等
DSS(Decision Support System)指的是决策支持系统,特点有:1)响应时间;2)精确性;3)可用性
具体可以查看http://ezinearticles.com/?OLTP-vs-DSS-systems&id=342276
The illustration show the different composing between SGA and PGA.
2.pfile & spfile
更多pfile与spfile的描述可以查看:http://log-cd.iteye.com/blog/319280,一下是一些摘自这个博客的内容,觉得比较受用的就再次引用一下了。
pfile(Initialization Parameter File)用于Oracle8i,在oracle9i中也可以用,以文本形式存在,可以用文本编辑器对其中参数进行修改。
spfile(Server-Side Initialization Parameter File)用于oracle9i,以二进制文本形式存在,不能用文本编辑器对其中参数进行修改。Spfile改正了pfile管理混乱的问题,在多结点的环境里,pfile会有多个image,启动时候需要跟踪最新的image。这是个烦琐的过程。用spfile以后,所有参数改变都写到spfile里面(只要定义scope=spfile或both)
1.查看spfile的位置:
show parameter spfile/pfile;
我本机不论使用spfile还是pfile返回的都是spfile的位置: E:\ORACLE\PRODUCT\10.1.0\DB_1\DATABASE\SPFILEORCL.ORA
2.从spfile获取pfile
- sqlplus /nolog
- connect / as sysdba
- Create pfile='d:pfileSID.ora' from spfile;
- Create pfile='d:pfileSID.ora' from spfile='spfile_location';
3.从pfile获取spfile
- shutdown immediate
- Create spfile from pfile='Your_pfile_location'
- Create spfile='spfile_location' from pfile='Your_pfile_location'
4.动态修改参数
- alter system set parameter=Value scope=spfile|both|memory
(1)scope=spfile
对参数的修改仅记录在服务器初始化参数文件中。该选项同时适用于动态与静态的初始化参数。修改后的参数只有下一次启动数据库时更改才会生效。
(2)scope=memory
对参数的修改记录在内存中,对于动态初始化参数,更改立即生效。修改并不会被记录在服务器端的初始化参数中。下一次启动数据库时更改失效,不能用于静态初始化参数。
(3)scope=both
对参数的修改同时记录在内存中和服务器端的初始化参数文件中。为默认使用值。
9.使用pfile/spfile启动数据库
如果你想使用pfile启动数据库,你可以在启动时指定pfile或者删除spfile.
- startup pfile='E:\Oracle\admin\eyglen\pfile\init.ora';
你不能以同样的方式指定spfile,但是可以创建一个包含spfile参数的pfile文件,指向spfile.
SPFILE是一个自Oracle9i引入的初始化参数,类似于IFILE参数。SPFILE参数用于定义非缺省路径的spfile文件。可以在PFILE链接到SPFILE文件,同时在PFILE中定义其他参数,如果参数重复设置,后读取的参数将取代先前的设置。
10. 查看系统是以pfile还是spfile启动
(1)查询v$parameter动态视图,如果以下查询返回空值,那么你在使用pfile.
- SELECT name,value FROM v$parameter WHERE name='spfile';
(2)可以使用SHOW命令来显示参数设置,如果以下结果value列返回空值,那么说明你在使用pfile:
(3)查询v$spparameter视图
如果以下查询返回0值,表示你在使用pfile,否则表明你使用的是spfile:
- SELECT COUNT(*) FROM v$spparameter WHERE value IS NOT NULL;
或者使用以下查询,如果true值返回非0值,那么说明我们使用的是spfile.
- select isspecified, count(*) from v$spparameter group
- by isspecified;
14.init.ora.XXXXXXXX在$ORACLE_BASE/admin/{SID}/pfile/目录下。当database 通过DBCA (Database creation assistant)创建的时候, DBCA将创建一个init.ora文件用来创建database,这个时候,他将利用刚才创建的init.ora文件来创建spfile,然后再修改init.ora文件名到一个类似init.ora.XXXXXXXX。
XXXXXXXX is a timestamp of a sort。This init.ora.XXXXXXXX will not be used by Oracle afterwards, so modifiying it will not change the init parameters。
我本机上的oracle中就看到了E:\oracle\product\10.1.0\admin\orcl\pfile\init.ora.52820101397这样的文件,然后修改了process数量,然后在create pfile from spfile; 发现这个init.ora.52820101397文件是不会被修改的,并且没找到在哪里有创建pfile。。。还是在spfile里面找到了新配置的process的数量。
- 大小: 38.8 KB
分享到:
相关推荐
在Oracle数据库环境中,调整最大连接数是一项重要的系统管理任务,它直接影响到数据库能够同时处理的会话数量。本篇将详细探讨如何通过Oracle参数来修改最大连接数,包括理解相关参数的意义、查看当前设置、以及实际...
### 更改Oracle数据库的用户连接数 在Oracle数据库管理中,有时我们可能会遇到因为数据库连接过多而导致的新连接请求被拒绝的问题。这种情况不仅会影响用户的正常使用,还可能导致系统性能下降甚至数据库重启。因此...
由于数据库重启操作会影响业务系统的稳定运行,因此我们需要了解如何在不重启数据库的前提下,对Oracle数据库的连接数进行修改。 首先,我们需要了解Oracle数据库中的连接数指的是什么。数据库连接数是指数据库允许...
通过细致地调整Oracle数据库的`pga_aggregate_target`、`processes`、`sessions`参数,以及优化`LISTENER.ORA`文件和操作系统配置,可以有效解决Oracle连接数问题,提升数据库的并发处理能力。这些操作需要根据具体...
11. 故障排查总结:针对连接数故障,需要关注进程数、会话数、系统资源限制以及系统连接释放的细节。同时,也要注意监听器本身的配置和网络相关的细节。 在处理Oracle数据库的连接数和会话数问题时,系统管理员需要...
Oracle数据库是一种广泛应用的关系型数据库管理系统,而C++作为一种强大的编程语言,常被用来开发高效且复杂的软件系统。本话题将深入探讨如何在C++环境中利用连接池技术实现对Oracle数据库的高速连接与访问。 一、...
- `maxactive`: 最大活动连接数。 - `maxwait`: 获取连接的最大等待时间。 - `maxidle`: 最大空闲连接数。 - `minidle`: 最小空闲连接数。 配置文件示例格式如下: ```properties driver=...
- **MinPoolSize**:连接池的最小连接数。 - **ConnectionLifetime**:连接的最大生存时间。 - **ConnectionTimeout**:连接超时时间。 - **IncrPoolSize**:增加连接时每次增加的数量。 - **DecrPoolSize**:...
### ODBC及Lotusscript代码连接Oracle数据库总结 #### 一、Oracle客户端安装与配置 **1. 下载客户端** 为了能够顺利地使用ODBC及Lotusscript代码连接Oracle数据库,首先需要安装Oracle客户端。根据操作系统位数...
其中,`name`是JNDI名称,`auth`指明认证方式,`type`是数据源类型,`maxActive`、`maxIdle`和`maxWait`分别设置最大活动连接数、最大空闲连接数和最大等待时间,`username`、`password`和`driverClassName`是...
Oracle数据库是世界上最广泛使用的数据库系统之一,用于存储和管理企业级的数据。这篇文档"Oracle数据库所有操作总结.doc"主要涵盖了Oracle中的查询语句和其他基本操作,对于熟悉和使用Oracle数据库非常有帮助。以下...
总结,Oracle系统的性能优化是一个综合性的任务,涉及多个层面,包括内存分配、I/O优化、并发控制等。每个参数的调整都需谨慎,需要结合实际环境和监控数据进行,以确保数据库高效稳定运行。同时,随着Oracle版本的...
如果没有可用连接,且已有连接数小于最大连接数限制,则创建并返回新连接。 * * @param name 在属性文件中定义的连接池名字 * @return Connection 可用连接或null */ public Connection getConnection(String ...
在Oracle数据库管理与优化的过程中,创建spfile(服务器参数文件)以及调整数据库的最大连接数是常见的需求之一。本文将详细解析如何通过命令行方式完成这些操作,并解释相关步骤的意义及其背后的原理。 #### 一、...
Oracle数据库系统是数据库领域最优秀的数据库之一,《Oracle11g从入门到精通》以Oracle最新版本Oracle 11g为蓝本,系统地讲述了Oracle数据库的概念、管理和应用开发等内容。 全书结构合理、内容翔实、示例丰富...
JDBC 提供了一种机制,使 Java 应用程序能够连接到几乎任何类型的关系数据库管理系统(RDBMS),包括 Oracle 数据库。Oracle 是一款广泛使用的 RDBMS,因其高性能、可靠性和可扩展性而受到众多企业和组织的青睐。 #...