eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« Oracle10gR2 New Feature:CVU(Cluster Verification Utiltiy) | Blog首页 | Oracle9i新特点:SPFILE的使用 »

Oracle9i新特点-如何修改Spfile的参数
modb.pro

本文发表于itpub技术丛书《Oracle数据库DBA专题技术精粹》,未经许可,严禁转载本文.

三. 使用pfile/spfile启动数据库


如果你想使用pfile启动数据库,你可以在启动时指定pfile或者删除spfile.

 


SQL> startup pfile='E:\Oracle\admin\eyglen\pfile\init.ora';
                      

你不能以同样的方式指定spfile,但是可以创建一个包含spfile参数的pfile文件,指向spfile.
SPFILE是一个自Oracle9i引入的初始化参数,类似于IFILE参数。 SPFILE参数用于定义非缺省路径的spfile文件。
你可以在PFILE链接到SPFILE文件,同时在PFILE中定义其他参数,如果参数重复设置,后读取的参数将取代先前的设置。
PFILE参数的使用,例如:
这是我们使用SPFILE启动的情况

 

SQL> startup
ORACLE 例程已经启动。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter log_archive_start

NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
log_archive_start                    boolean
TRUE
SQL> show parameter spfile

NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
spfile                               string
%ORACLE_HOME%\DATABASE\SPFILE%
ORACLE_SID%.ORA
SQL>
       

我们修改PFILE文件内容如下:

 

#Pfile link to SPFILE
SPFILE= 'E:\Oracle\Ora9iR2\database\SPFILEEYGLEN.ORA'
log_archive_start = false

可以预见这个log_archive_start参数设置将会代替SPFILE中的设置:

SQL> startup  pfile='e:\initeyglen.ora'
ORACLE 例程已经启动。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter spfile

NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
spfile                               string
E:\Oracle\Ora9iR2\database\SPF
ILEEYGLEN.ORA
SQL> show parameter log_archive_start

NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
log_archive_start                    boolean
FALSE
      

 

然后我们可以使用ALTER SYSTEM方式将修改固定到SPFILE.

 

SQL> alter system set log_archive_start=false scope=spfile;

系统已更改。

 

所以你也可以通过如上方式在启动时修改初始化参数。比我们在本文最后介绍的导入导出方法要简便的多。

 

四. 修改参数

可以通过ALTER SYSTEM或者导入导出来更改SPFILE的内容。
ALTER SYSTEM增加了一个新选项:SCOPE。SCOPE参数有三个可选值:MEMORY ,SPFILE , BOTH
MEMORY:只改变当前实例运行
SPFILE:只改变SPFILE的设置
BOTH:改变实例及SPFILE


1. SCOPE=MEMORY

SQL> show parameter timed_statistics

NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
timed_statistics                     boolean
TRUE
SQL> ALTER SYSTEM SET timed_statistics=FALSE SCOPE=MEMORY;

系统已更改。

SQL> show parameter timed_statistics

NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
timed_statistics                     boolean
FALSE
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter timed_statistics

NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
timed_statistics                     boolean
TRUE
      

 

2. SCOPE=SPFILE

 
SQL> show parameter timed_statistics

NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
timed_statistics                     boolean
TRUE
SQL> ALTER SYSTEM SET timed_statistics=FALSE SCOPE=SPFILE;

系统已更改。

SQL> show parameter timed_statistics

NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
timed_statistics                     boolean
TRUE
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter timed_statistics

NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
timed_statistics                     boolean
FALSE
SQL>
      

 

3. SCOPE = BOTH
使用BOTH选项实际上等同于不带参数的ALTER SYSTEM语句。
注意:如果修改静态参数,那么需要指定SPFILE参数,否则将会报错。

 
SQL> show parameter timed_statistics
NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
timed_statistics                     boolean
FALSE
SQL> ALTER SYSTEM SET timed_statistics=TRUE SCOPE=BOTH;
系统已更改。
SQL> show parameter timed_statistics
NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
timed_statistics                     boolean
TRUE
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter timed_statistics
NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
timed_statistics                     boolean
TRUE
SQL> ALTER SYSTEM SET sql_trace=FALSE SCOPE=BOTH;
ALTER SYSTEM SET sql_trace=FALSE SCOPE=BOTH
                 *
ERROR 位于第 1 行:
ORA-02095: 无法修改指定的初始化参数
SQL> ALTER SYSTEM SET sql_trace=FALSE SCOPE=SPFILE;
系统已更改。
      

 

4.你也可以在数据库shutdown时创建和修改spfile,例如:

SQL> show sga

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> create pfile from spfile;
文件已创建。
SQL> create spfile from pfile;
文件已创建。
SQL>
                      

 

所以spfile的修改是相当容易的.

 

<<上一页 下一页>>

 


历史上的今天...
    >> 2016-10-10文章:
    >> 2012-10-10文章:
    >> 2008-10-10文章:
           关于Mutex的笔记
    >> 2006-10-10文章:

By eygle on 2005-10-10 19:52 | Comments (0) | FAQ | 469 |


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com