Oracle9i中,很多系統(tǒng)參數是動態(tài)的,即我們通過alter system set *** scope ***可以實時的修改這些值。通過scope,我們可以指定這次修改的范圍、生效時間,如下:
scope=memory:只修改內存中的參數,重起后恢復到修改前的值。
scope=both:同時修改內存和spfile中的參數值,重起后繼續(xù)有效。
scope=spfile:只修改spfile中的值,對于但前實例不起作用,重起后方生效。
對于本文中要討論的non-dynamic-parameter, 他們是無法通過上述方式來修改的。錯誤如下:
SQL> alter system set utl_file_dir=d:\tmp;
alter system set utl_file_dir=d:\tmp
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
那么我們如何修改這些值呢? 要修改這些值,我們可以通過修改pfile內容,重起實例來實現。下面我們看看修改這樣的參數,需要哪些步驟,
1:如果沒有pfile的話,我們首先需要根據當前實例生成pfile, 連接(要求以dba的角色,否則沒有權限)上該實例,執(zhí)行如下的sql,
SQL> connect system/coffee@testdb as sysdba
SQL> create pfile='D:\oracle\admin\TestDB\pfile\initTestDB.ora' from spfile;
2:關閉數據庫,修改pfile中的對應參數,比如要修改utl_file_dir,我們可以在其中加入,
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
找到initTestDB.ora,并添加如下內容(根據你要修改的參數)
*.utl_file_dir='D:\oracle\admin\TestDB\utl_file_dir'
3:根據新生成的pfile生成spfile,并重起實例
SQL> create spfile from pfile='D:\oracle\admin\TestDB\pfile\initTestDB.ora';
SQL> startup
ORACLE instance started.
Total System Global Area 126950220 bytes
Fixed Size 453452 bytes
Variable Size 109051904 bytes
Database Buffers 16777216 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
4:參看修改是否成功,
SQL> show parameter utl_file_dir
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
utl_file_dir string D:\oracle\admin\TestDB\utl_file_dir
可以看到,這個參數我們修改成功了。以此類推,我們可以用同樣的方法去修改其它non-dynamic-parameter,如果你手里有現成的pfile,第一步就可以省了。不過建議還是去做一下,這樣可以保證我們的pfile是最新的。
關鍵詞標簽:Oracle,dynamic
相關閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數據庫實例的控制文件 為UNIX服務器設置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數據處理 Oracle刪除表的幾種方法