通过pfile修改Oracle中非dynamic parameter

日期: 2009-06-15 作者:fjin 来源:TechTarget中国 英文

  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:oracleadminTestDBpfileinitTestDB.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:oracleadminTestDButl_file_dir’

  3、根据新生成的pfile生成spfile,并重起实例

  SQL> create spfile from pfile=’D:oracleadminTestDBpfileinitTestDB.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:oracleadminTestDButl_file_dir

  可以看到,这个参数我们修改成功了。以此类推,我们可以用同样的方法去修改其它non-dynamic-parameter,如果你手里有现成的pfile,第一步就可以省了。不过建议还是去做一下,这样可以保证我们的pfile是最新的。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

fjin
fjin

相关推荐