天天看點

如何修改Spfile的參數

三. 使用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的修改是相當容易的.