首页 > 代码库 > ORACLE参数文件

ORACLE参数文件

一、oracle pfile/spfile区别
    pfile 默认的名称为“init+例程名.ora”文件路径:E:\oracle\product\10.2.0\db_1\dbs,这是一个文本文件,可以用任何文本编辑工具打开。
    spfile 默认的名称为“spfile+例程名.ora”文件路径:E:\oracle\product\10.2.0\db_1\dbs以二进制文本形式存在,不能用vi编辑器对其中参数进行修改。
两个文件可以用命令 CREATE PFILE FROM SPFILE或CREATE SPFILE FROM PFILE来互相创建

区别:
1、启动次序 SPfile优先于Pfile。
2、PFILE是静态文件,修改之后不会马上生效,数据库必须重新启动读取这个文件才行。
3、SPFILE是动态参数文件,是二进制文件,不可以直接用记事本等等程序做修改,可以用ALTER命令做修改,不用重起数据库也能生效。
修改方法:
#查看参数信息
sql>show parameter;
#修改参数
sql>alter system set 参数名=值 scope=参数2;
参数2取值有如下三种:
1. scope=spfile: 对参数的修改记录在服务器初始化参数文件中,修改后的参数在下次启动DB时生效。适用于动态和静态初始化参数。
2. scope=memory: 对参数的修改记录在內存中,对于动态初始化参数的修改立即生效。在重启DB后会丟失,会复原为修改前的参数值。
3. scope=both:   对参数的修改会同时记录在服务器参数文件和內存中,对于动态参数立即生效,对静态参数不能用这个选项。
   如果使用了服务器参数文件,则在执行alter system语句时,scope=both是default的选项。
   如果沒有使用服务器参数文件,而在执行alter system语句时指定scope=spfile|both都会出错。

二、init.ora文件(E:\oracle\product\10.2.0\db_1\srvm\admin)
该文件的参数说明:
1)db_name = "clustdb"  一个数据库标识符,应与CREATE DATABASE 语句中指定的名称相对应。
2)instance_name = clustdb1 在多个例程使用相同服务名的情况下,用来唯一地标识一个数据库例程;INSTANCE_NAME 不应与 SID 混淆,它实际上是对在一台主机上共享内存的各个例程的唯一标识。
3)control_files = control_files = ("\\.\clustdb_control1", "\\.\clustdb_control2")
4)open_cursors =300
    库高速缓存 指定一个会话一次可以打开的游标 (环境区域) 的最大数量,并且限制 PL/SQL 使用的 PL/SQL 游标高速缓存的大小,以避免用户再次执行语句时重新进行语法分析。请将该值设置得足够高,这样才能防止应用程序耗尽打开的游标。              
5)db_block_buffers =  200
    高速缓存与I/O    缓冲区高速缓存中 Oracle 块的数量。该参数会显著影响一个例程的 SGA 总大小。
6)large_pool_size=1048576  
    池--指定大存储池的分配堆,它可被多线程服务器 (MTS) 用作会话内存、用作并行执行的消息缓冲区以及用作 RMAN备份和恢复的磁盘 I/O 缓冲区。
7)java_pool_size=67108864   
    以字节为单位,指定 Java 存储池的大小,它用于存储 Java 的方法和类定义在共享内存中的表示法,以及在调用结束时移植到 Java 会话空间的 Java 对象。
8)log_checkpoint_interval = 10000 
    指定在出现检查点之前,必须写入重做日志文件中的 OS 块 (而不是数据库块) 的数量。无论该值如何,在切换日志时都会出现检查点。较低的值可以缩短例程恢复所需的时间,但可能导致磁盘操作过量。
9)
processes = 220
log_buffer = 8388608 
    以字节为单位,指定在 LGWR 将重做日志条目写入重做日志文件之前,用于缓存这些条目的内存量。重做条目保留对数据库块所作更改的一份记录。如果该值大于65536,就能减少重做日志文件 I/O,特别是在有长时间事务处理或大量事务处理的系统上  **最大值为 500K 或 128K * CPU_COUNT,两者之中取较大者
10)oracle_trace_enable = true 
    启动一个默认的 Oracle Trace 集合,直到该值再次设置为 NULL。
11)timed_statistics=true 
    收集操作系统的计时信息,这些信息可被用来优化数据库和 SQL语句。要防止因从操作系统请求时间而引起的开销,请将该值设置为零。将该值设置为 TRUE 对于查看长时间操作的进度也很有用。
12)background_dump_dest=%ORACLE_HOME%/admin/clustdb/bdump
指定在 Oracle 操作过程中为后台进程 (LGWR,DBW n 等等) 写入跟踪文件的路径名(目录或磁盘)。它还定义记录着重要事件和消息的数据库预警文件的位置。
13)core_dump_dest = /opt/apps/oracle/admin/51cto/cdump 
    指定核心转储位置的目录名 (用于 UNIX)。
14)user_dump_dest=%ORACLE_HOME%/admin/clustdb/
    为服务器将以一个用户进程身份在其中写入调试跟踪文件的目录指定路径名。例如,该目录可这样设置: NT 操作系统上的 C:/
ORACLE/UTRC;UNIX 操作系统上的 /oracle/utrc;或 VMS 操作系统上的DISK$UR3:[ORACLE.UTRC]。
15)db_block_size = 8192  
    一个 Oracle 数据库块的大小 (以字节计)。该值在创建数据库时设置,而且此后无法更改。 1024 - 65536 (根据操作系统而定)。
16)remote_login_passwordfile = exclusive  
    指定操作系统或一个文件是否检查具有权限的用户的口令。如果设置为 NONE,Oracle 将忽略口令文件。如果设置为EXCLUSIVE,将使用数据库的口令文件对每个具有权限的用户进行验证。如果设置为 SHARED,多个数据库将共享 SYS 和INTERNAL口令文件用户
17)job_queue_processes = 4  
    只用于复制环境。它指定每个例程的 SNP 作业队列进程的数量 (SNP0, ... SNP9, SNPA, ... SNPZ)。要自动更新表快照或执行由 DBMS_JOB 创建的请求,请将该参数设置为 1 或更大的值。   0 到 36
18)job_queue_interval = 10  
    作业队列 只用于复制环境。它以秒为单位指定该例程的每个 SNPn 后台进程的唤醒频率。  1 到 3600
19)distributed_transactions = 5  
    一个数据库一次可参与的分布式事务处理的最大数量。如果由于网络故障异常频繁而减少该值,将造成大量未决事务处理。
20)open_links = 4    
    指定在一次会话中同时打开的与远程数据库的连接的最大数量。该值应等于或超过一个引用多个数据库的单个 SQL 语句中引用的数据库的数量,这样才能打开所有数据库以便执行该语句。
21)compatible = "9.0.0"  
    允许使用一个新的发行版,同时保证与先前版本的向后兼容性。
22)sort_area_size = 524288  
    以字节为单位,指定排序所使用的最大内存量。排序完成后,各行将返回,并且内存将释放。增大该值可以提高大型排序的效率。如果超过了该内存量,将使用临时磁盘段。相当于 6 个数据库块的值 (最小值) 到操作系统确定的值 (最大值)。

三、alert.log文件(e:\oracle\product\10.2.0/admin/fgisdb/bdump\alert_fgisdb.log)
    告警日志,在产生错误时,启动和关闭实例时,都会记录信息到告警日志中,此外还记录了不同于默认值的初始参数的列表,alter system,alter database命令,对表空间,数据文件的操作,空间不足,损坏的文件等。告警日志也会变得很大,可在任意时间重命名或删除告警日志,但是告警日志记录了数据库的各种安全信息,维护和恢复等信息,因此可根据时间先后来选择性删除。

ORACLE参数文件