程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 通過pfile修改Oracle中非dynamic parameter

通過pfile修改Oracle中非dynamic parameter

編輯:Oracle數據庫基礎
Oracle9i中,很多系統參數是動態的,即我們通過alter system set *** scope ***可以實時的修改這些值。通過scope,我們可以指定這次修改的范圍、生效時間,如下:

scope=memory:只修改內存中的參數,重起後恢復到修改前的值。

scope=both:同時修改內存和spfile中的參數值,重起後繼續有效。

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的角色,否則沒有權限)上該實例,執行如下的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是最新的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved