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 location(Show parameter pfile/spfile;)
2.从spfile获取pfile
- sqlplus /nolog
- connect / as sysdba
- Create pfile='d:pfileSID.ora' from spfile;
- Create pfile='d:pfileSID.ora' from spfile='spfile_location';
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'
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
alter system set parameter=Value scope=spfile|both|memory
(1)scope=spfile
对参数的修改仅记录在服务器初始化参数文件中。该选项同时适用于动态与静态的初始化参数。修改后的参数只有下一次启动数据库时更改才会生效。
(2)scope=memory
对参数的修改记录在内存中,对于动态初始化参数,更改立即生效。修改并不会被记录在服务器端的初始化参数中。下一次启动数据库时更改失效,不能用于静态初始化参数。
(3)scope=both
对参数的修改同时记录在内存中和服务器端的初始化参数文件中。为默认使用值。
6.查看初始化参数
7.执行startup时,按如下顺序寻找初始化参数文件:
(1)spfile.ora
(2)pfile.ora
(3)都没找到,则在默认位置寻找默认名称的服务器端初始化参数文件。
(4)还没找到,则在默认位置寻找默认名称的文本初始化参数文件。
8.查看系统全局区大小:
- show sga;
- select * from v$sga;
show sga;
select * from v$sga;
9.使用pfile/spfile启动数据库
如果你想使用pfile启动数据库,你可以在启动时指定pfile或者删除spfile.
- startup pfile='E:\Oracle\admin\eyglen\pfile\init.ora';
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';
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;
SELECT COUNT(*) FROM v$spparameter WHERE value IS NOT NULL;
或者使用以下查询,如果true值返回非0值,那么说明我们使用的是spfile.
- select isspecified, count(*) from v$spparameter group
- by isspecified;
select isspecified, count(*) from v$spparameter group
2 by isspecified;
11.修改Oracle最大连接数
a、以sysdba身份登陆PL/SQL 或者 Worksheet
b、查询目前连接数
- show parameter processes;
show parameter processes;
c、更改系统连接数
- alter system set processes=1000 scope=spfile;
alter system set processes=1000 scope=spfile;
d、创建pfile
- create pfile from spfile;
create pfile from spfile;
e、重启Oracle服务或重启Oracle服务器
12.查询Oracle游标使用情况的方法
- select * from v$open_cursor where user_name = 'TRAFFIC';
select * from v$open_cursor where user_name = 'TRAFFIC';
13.查询Oracle会话的方法
14.关于init.ora.XXXXXXXX
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。
3.参数文件的动作原理
oracle实例在启动时,会去读取参数文件中的配置,这个过程是这样的:
数据库的startup命令中可以指定以哪个pfile来启动,但是请注意,只能指定pfile,不 能指定spfile。
当使用不带pfile 子句的startup 命令时,Oracle 将从平台指定的默认位置上的服务器 参数文件(spfile) 中读取初始化参数。Oracle查找spfile或者创通的init.ora的顺序 是:在平台指定的默认位置上,Oracle首先查找名为spfile$ORACLE_SID.ora的文件,如 果没有就查找spfile.ora文件,还没有的话,就找init$ORACLE_SID.ora文件。
在$ORACLE_BASE/admin/db_name/spfile下,你很可能可以看到一个类似这样init.ora.1 92003215317]名字的文件,这就是初始化参数文件,只是跟上了时间戳。对于Oracle920 ,缺省的就使用spfile启动,但是这个spfile不是凭空而来,而是根据这个文件创建而来 ,你可以去掉这个长后缀,就是标准的pfile文件了。
对于Windows NT 和Windows 2000 ,其位置是:$ORACLE_HOME/database/spfile$ORACLE_SID.ora。
数据库在启动后,参数的配置值可以通过查询数据字典v$parameter得到。
用startup(默认)启动的顺序
1、直接在默认路径下查找spfileSID.ora --(spfile)
如果没有再查找2
2、直接在默认路径下查找spfile.ora
如果没有再查找3
3、直接在默认路径下查找initSID.ora --(pfile)
如果还没有 就会报错……