一、参数文件说明
PFILE(Initialiazation Parameter Files)初始化参数文件,是文本文件,可直使用文本编辑器查看。如果数据库使用的是初始化参数文件PFILE,要想永久修改初始化参数,DBA必须要先关闭数据库,再修改该文件,然后用修改后的PFILE重新启动数据库。文件名:init.oraSPFILE(Server Parameter Files)服务器参数文件,位于服务端,是二进制文件,不能直接修改,在数据库运行的过程中也可以修改该文件。
路径:$ORACLE_HOME/dbs(linux/Unix系统) 默认名字:spfile+sid.ora 如:spfileorcl.orawindows路径为:%ORACLE_HOME\database如果数据库使用的是服务器参数文件SPFILE,则DBA使用ALTER SYSTEM SET ... SCOPE=SPFILE命令修改相应参数即可。临时修改参数文件:
ALTER SYSTEM SET .... SCOPE=MEMORY -----只对当前实例生效,重启实例失效。ALTER SESSION SET .... SCOPE=SPFILE ----只修改参数文件,重启后才生效。ALTER SESSION SET .... SCOPE=BOTH ----立即生效,重启后也生效。即同时修改参数文件和当前memory
二、参数文件查看
SQL> show parameter spfile; --查看参数文件位置NAME TYPE VALUE------------------------------------ ---------------------- ------------------------------spfile string /home/oracle/product/10.2.0/db_1/dbs/spfileorcl.oraSQL> select name,value from v$parameter where name='spfile';
NAME VALUEspfile /home/oracle/product/10.2.0/db_1/dbs/spfileorcl.oraSQL> show parameter shared_pool_size; --查看具体的某个参数值
NAME TYPE VALUE------------------------------------ ---------------------- ---------shared_pool_size big integer 0SQL> select name,value from v$parameter where name='shared_pool_size';
SQL> show parameters; 显示所有参数文件
三、使用参数文件启动数据库可使用SPFILE和PFILE启动数据库。使用SPFILE启动数据库时,直接startup 即可。使用PFILE启动数据库时,需要指定pfile文件位置,如:SQL> startup pfile='D:\test\init.ora';四、参数文件的修改及创建
如果DBA使用参数文件启动数据库,要想修改参数文件pfile,则必须停止数据库,用文本编辑工具直接修改pfile文件,再使用pfile启动数据库。如果数据库使用的是服务器参数文件SPFILE,则DBA使用ALTER SYSTEM SET ... SCOPE=SPFILE命令修改相应参数即可。临时修改参数文件: ALTER SYSTEM SET .... SCOPE=MEMORY -----只对当前实例生效,重启实例失效。ALTER SESSION SET .... ----只对当前会话生效 由于SPFILE文件是二进制文件,无法直接编辑,如果要修改,可先通过SPFILE创建PFILE(客户端初始化参数文件),PFILE可直接用记事本打开编辑。再通过PFILE创建SPFILE即可。SQL> SHOW PARAMETER SPFILE;NAME TYPE VALUE------- ----------- ------------------------------spfile string D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEORCL.ORASQL> create pfile = 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\PFILEORCL.ORA' from spfile;--后也可加上绝对路径from spfile='……';
文件已创建。
SQL> create spfile from pfile= 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\PFILEORCL.ORA'; --从PFILE文件创建SPFILE文件。
SQL> create spfile='D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEORCL.ORA' from pfile= 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\PFILEORCL.ORA';==============
修改spfile参数的三种模式:
scope=both 立次启动才能生效。
scope=memory 立即并永久生效,(默认模式)
scope=spfile 下即生效但下次启动时失效
SELECT NAME, VALUE, DISPLAY_VALUE FROM V$PARAMETER WHERE NAME ='spfile';
SQL> show parameter spfile;SQL> show parameter pfile;如果数据库使用spfile参数文件,那么用show parameter spfile与 show parameter pfile的结果一致,如果数据库使用pfile参数文件,那么上面命令得到的结果都是空判断数据库从SPFILE还是PFILE启动?
方法1:查询动态视图V$PARAMETER,如果VALUE值为非空,则是SPFILE启动,否则是PFILE。 SELECT NAME, VALUE, DISPLAY_VALUE FROM V$PARAMETER WHERE NAME ='spfile';方法2:SHOW PARAMETER命令查看
SQL> show parameter spfile;方法3:通过v$spparameter视图,如果一下查询返回0值,表示你在使用pfile,否则表明你使用的是spfileSQL> SELECT COUNT(1) FROM v$spparameter where value is not null;