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中国
作者
相关推荐
-
OpenWorld18大会:Ellison宣布数据库的搜寻和破坏任务
在旧金山举行的甲骨文OpenWorld 2018大会中,甲骨文首席技术官(CTO)兼创始人Larry Elli […]
-
ObjectRocket着力发展Azure MongoDB服务
MongoDB吸引了微软公司的注意力,微软公司计划针对运行于该公司2017年发布的Azure Cosmos D […]
-
数据库和数据仓库的区别在哪儿?
目前,大部分数据仓库还是用数据库进行管理。数据库是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。
-
如何使用服务来平衡Oracle RAC 数据库工作负载
为不同的应用程序配置不同的服务,DBA可以更有效地平衡集群工作负载,在Oracle RAC数据库环境下实现更好的应用程序性能。