本文 oracle 版本 12.2.0.1.0 。
推荐链接:
https://www.cnblogs.com/xqzt/p/4832597.html
https://www.cnblogs.com/kerrycode/p/3254154.html
参数文件pfile和spfile Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件。它们是在数据库实例启动时候加载的,决定了数据库的物理 结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件。可以分为两种类型:
pfile : 初始化参数文件(Initialization Parameters Files)
在Oracle 9i之前,Oracle 一直采用 pfile 方式存储初始化参数,该文件为文本文件,可手工修改。一般都是备份 pfile 后再来做参数的修改,而且修改后必须重启实例才能生效。
**从Oracle 9i开始,该文件可做为 spfile 的备份使用,pfile 和 spfile 可以互相创建。**
**文件目录(pfile 目录)**:`D:\oracle12c\admin\orcl\pfile\init.ora.10242019173728`
spfile : 服务器参数文件(Server Parameter Files)
从Oracle 9i开始,Oracle 引入了 spfile 文件,该文件为二进制格式,不可手工修改。可以使用命令修改参数,而且有很多参数修改后都不用重启数据库,能够立即生效;<font color="red">如果参数修改有问题导致数据库无法启动,可以利用 pfile 文件恢复。</font>
**文件目录(database 目录)**:`D:\oracle12c\product\12.2.0\dbhome_1\database\SPFILEORCL.ORA`
pfile 和 spfile 互相创建 1 2 3 4 5 6 7 8 9 10 SQL> create spfile from pfile ; File created. SQL> create spfile from pfile='D:\oracle12c\admin\orcl\pfile\init.ora.XXXXXXX' ;
使用 pfile/spfile 启动数据库 1 2 3 4 5 6 7 8 SQL> startup SQL> startup pfile='pfile文件全路径名' SQL> startup pfile='D:\oracle12c\admin\orcl\pfile\init.ora.XXXXXXX' SQL> startup spfile='D:\oracle12c\product\12.2.0\dbhome_1\database\SPFILEORCL.ORA' SP2-0714: 无效的 STARTUP 选项组合
spfile优先于pfile: spfileSID.ora > spfile.ora > initSID.ora > init.ora ,如果这些参数文件都不再 database 目录下 ,则无法启动。
判断数据库的启动方式 判断是 SPFILE
还是 PFILE
方式启动数据库
1 2 3 4 5 6 7 8 9 10 SQL> show parameter spfile SQL> show parameter pfile SQL> select decode(count(*),1,'spfile' ,'pfile' ) from v$spparameter where rownum=1 and isspecified ='TRUE' ; DECODE ------ spfile
scope参数说明 1、scope=spfile : 对参数的修改记录在**服务器初始化参数文件(spfile)**中,修改后的参数在下次启动DB时生效。适用于动态和静态初始化参数。
2、scope=memory : 对参数的修改记录在內存 中,对于动态初始化参数的修改立即生效。在重启DB后会丟失,会复原为修改前的参数值。
3、scope=both : 对参数的修改会同时记录在服务器参数文件(spfile)和內存 中,对于动态参数立即生效,对静态参数不能用这个选项
参数类型
spfile
memory
both
静态参数
可以,重启服务器生效
不可以
不可以
动态参数
可以,重启服务器生效
可以,立即生效,重启服务失效
可以,立即生效,重启服务器仍然有效果
修改参数例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 SQL> show parameter sga; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ allow_group_access_to_sga boolean FALSE lock_sga boolean FALSE pre_page_sga boolean TRUE sga_max_size big integer 4880M sga_min_size big integer 0 sga_target big integer 4880M unified_audit_sga_queue_size integer 1048576 SQL> alter system set sga_max_size=200m scope=spfile; 系统已更改。 SQL>
参数列表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 db_block_size=8192 db_cache_size=33554432 db_file_multiblock_read_count=16 open_cursors=300 db_domain="" db_name=cicro background_dump_dest=/opt/oracle/admin/cicro/bdump core_dump_dest=/opt/oracle/admin/cicro/cdump timed_statistics=TRUE user_dump_dest=/opt/oracle/admin/cicro/udump control_files=("/opt/oracle/oradata/cicro/control01.ctl" , "/opt/oracle/oradata/cicro/control02.ctl" , "/opt/oracle/oradata/cicro/control03.ctl" ) instance_name=test 例程名称为test job_queue_processes=10 dispatchers="(PROTOCOL=TCP) (SERVICE=testXDB)" aq_tm_processes=1 compatible=9.2.0.0.0 兼容版本9.2.0 hash_join_enabled=TRUE query_rewrite_enabled=FALSE star_transformation_enabled=FALSE db_name=cicro java_pool_size=83886080 large_pool_size=16777216 shared_pool_size=83886080 processes=150 fast_start_mttr_target=300 remote_login_passwordfile=EXCLUSIVE pga_aggregate_target=25165824 sort_area_size=524288 undo_management=AUTO undo_retention=10800 undo_tablespace=UNDOTBS1