[oracle@orcl ~]$ cat pfile.ora
wilson.__db_cache_size=92274688
wilson.__java_pool_size=4194304
wilson.__large_pool_size=4194304
wilson.__oracle_base='/u01'#ORACLE_BASE set from environment
wilson.__pga_aggregate_target=142606336
wilson.__sga_target=272629760
wilson.__shared_io_pool_size=0
wilson.__shared_pool_size=155189248
wilson.__streams_pool_size=8388608
*.audit_file_dest='/u01/admin/wilson/adump'
*.audit_trail='DB'
*.compatible='11.2.0.0.0'
*.control_files='/u01/oradata/WILSON/controlfile/o1_mf_6bcsqm50_.ctl','/u01/flash_recovery_area/WILSON/controlfile/o1_mf_6bcsqmd8_.ctl'
*.db_block_size=8192
*.db_create_file_dest='/u01/oradata'
*.db_domain=''
*.db_name='wilson'
*.db_recovery_file_dest='/u01/flash_recovery_area'
*.db_recovery_file_dest_size=3145728000
*.diagnostic_dest='/u01'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=wilsonXDB)'
*.memory_target=415236096
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.shared_servers=2
*.undo_tablespace='UNDOTBS1'
1、单独实例与全局实例参数设置差异
在我们导出的参数ASCII文件中,可以明显看到参数的现实格式为“Key-value”配对方式显示。具体看,参数名称key格式为“.”。
其中,sid表示参数效用范围实例。从上面的例子中看,wilson.就表示该参数起效果的实例是在wilson实例之上。此外,一些参数的sid位置是用“*”表示,这样的含义就是该参数其效果是在全局RAC下作用。
通常我们的数据库环境都是单实例(后台进程+共享内存)外加单数据库。而RAC(Real Application Cluster)是Oracle推出的数据库集群解决方案。简单的说,就是多台PC上部署多个Oracle实例,而对应的数据库(数据文件)却只有一份。使用RAC技术,一般可以提高数据库系统整体的可用性和负载均衡特性。
如果参数sid中使用“*”号,就表示这个参数要在整个RAC多个实例上同时作用。
2、遗留实例容量参数
在参数文件中,包括一些以“_”开头的参数文件参数,如“_db_cache_size”等。这些参数可以成为遗留实例容量参数。这些参数大都是一些描述共享内存SGA、PGA区容量的参数,如large_pool、java_pool的大小。见下表:
参数名称 | 容量含义 | 备注 |
__db_cache_size | Buffer Cache容量 | 容纳Data Block缓存 |
__java_pool_size | Java Pool容量 | 为Oracle自身的JVM提供内存; |
__large_pool_size | 大池容量 | 提供备份、恢复等大数据块需求; |
__pga_aggregate_target | PGA总容量设置 | 分配各进程的PGA总和; |
__sga_target | SGA总容量设置 |
|
__shared_io_pool_size | Shared IO | 共享IO池的大小 |
__shared_pool_size | 共享池大小 | 缓存SQL语句和数据字典; |
__streams_pool_size | 流池大小 | 支持流stream组件工作; |
那么,这些参数加入“__”的含义是什么呢?在Oracle中,数据库内存空间分配,特别是SGA各个子分区的分配一直是一个难题。从Oracle 10g开始,Oracle开始推出了自动管理内存空间各个分区的技术。数据库配置人员只需要配置出SGA或者总共Oracle使用数据库的空间target,Oracle会自动根据负载和工作量进行各个分区调节。这样,通常是可以实现内存分布的最优化目标。
在Oracle进行各分区调节的时候,会将当前的空间已“__”的参数计入到系统参数文件中。当重新启动Oracle的时候,会首先按照这部分的参数设置来配置实例的内存空间。这样的有点是能够保留下系统经历“千辛万苦”才调节出的参数组合。
3、关键路径、容量参数配置
除了用于进行Oracle实例内存构建的参数之外,还包括如下一些关键路径信息和容量参数信息:
数据库块datablock大小
参数文件中确定说明了data block的大小,示例中数据库块大小为8k。
control_files控制文件配置目录
控制文件包括了数据库诸多参数和当前状态信息。参数文件加载之后,Oracle启动mount、open很大程度上需要读取控制文件内容。参数文件中会定义当前系统的控制文件位置和名称。如当前实例中,就有:
*.control_files='/u01/oradata/WILSON/controlfile/o1_mf_6bcsqm50_.ctl','/u01/flash_recovery_area/WILSON/controlfile/o1_mf_6bcsqmd8_.ctl'
控制文件极其重要,如果意外损坏或者误删除影响重大。所以,通常会采用多份备份的方法进行保存。同时在使用RMAN等备份手段时,也存在专门针对控制文件的备份方法。
audit_审计信息保存参数
数据库审计是Oracle提供的一个可选组件功能。参数文件Parameter File中包括如下内容:
*.audit_file_dest='/u01/admin/wilson/adump'
*.audit_trail='DB'
其中表示数据库审计信息策略(Database)和审计文件存放的文件系统位置。
恢复文件位置和大小
设置存放恢复文件,如Archivelog Files和一些备份信息的物理位置。这个位置存放大小可以通过dest_size参数进行控制。
*.db_recovery_file_dest='/u01/flash_recovery_area'
*.db_recovery_file_dest_size=3145728000
OMF创建参数设置
Oracle推出了OMF技术(Oracle Managed File),实现各类型文件的自动化管理。用户不需要负责文件名称设置,在创建文件的时候,会自动在设置的目录上建立文件。
*.db_create_file_dest='/u01/oradata'
参数db_create_file_dest为数据文件创建的目录。这样,在建立表空间的时候,只需要指定表空间名称,不需要指定数据文件名称。Oracle会自动的在db_create_file_dest目录下建立相关名称数据文件。
4、实例相关参数
除了实例使用容量信息外,Oracle参数文件中还指定了一些进程和连接模式信息。
共享连接模式设置
Oracle两种连接方式:共享模式和独占模式。在通常情况下,两种模式是可以并存的。一般默认的连接是独占dedicate模式,此时允许一些服务是使用共享连接模式。通常Oracle在安装的时候是有XML数据库服务的,这些在设置中是使用共享连接模式。
*.dispatchers='(PROTOCOL=TCP) (SERVICE=wilsonXDB)'
*.shared_servers=2
参数dispatcher和shared_servers分别是共享连接模式的设置参数。Dispatcher设置共享连接支持的服务名称和连接协议。Shared_server表示共享连接池中默认存放的数据库连接数量。
实例进程数量和开启游标数量
Parameter File中还包括一些实例后台进程个数配置信息。
*.open_cursors=300
*.processes=150
Processes参数表示Oracle实例能够同时支持的服务进程Server Process个数。如果实际连接超过Process参数数量,Oracle会拒绝新连接或者强制断开不活跃连接。
open_cursors是表示一个session会话中可以开启的最大游标数量。
数据库名称信息
参数文件中,也包括了数据库实例的名称信息。
*.db_domain=''
*.db_name='wilson'
5、结论
参数文件中包括了数据库系统中一些最基本的参数内容,是启动过程中一个不可缺少的环节。本篇中展示了笔者示例数据库中的参数文件参数。但是,并不是说每个参数都是必需的。
其中,如db_block_size、control_files、processes和undo_management都是称为basic参数。如果这些参数不设置,就会影响到Oracle的正常启动,启动过程会报错。其他一些Advanced参数Oracle都有默认值可以供使用。
欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) | Powered by Discuz! X3.2 |