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