SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。 本文主要给大家介绍了关于Oracle参数设置教程之set和reset实用案例的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,希望能帮助到大家。前言 本文主要给大家介绍了关于Oracle参数设置之set和reset的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 环境:Oracle 10.2.0.5 RAC
需求:节点1的aq_tm_processes要求恢复默认,节点2设置要求保持不变 背景介绍:
从10.2官档可以查到aq_tm_processes参数,看到该参数的默认值是0,我们姑且叫做它为默认0. 然后,在实际上发现,这个默认0和我们手工将其SET设置成0,效果是完全不一样的。
与同事交流此事,最终得知一个技术细节:
Oracle中,使用SET设置参数值实际上是少做很多事情的,如果你想恢复Oracle的默认值,最有效的办法就是RESET该值,这样,才会一切都按照Oracle默认的设计。 具体来看现在的场景,如果你对参数aq_tm_processes设置为0.那和本来的默认0是完全不一样的。
如果是设置0,所有q00小工进程都会关闭不会再启动。如果是默认0,q00小工进程是可以启动的。
1.构建测试环境 目前生产的参数内容是类似这样,有全局设置,有实例1的设置,如下:
*.aq_tm_processes=1
jy1.aq_tm_processes=0 我们知道,针对实例的设置优先级是高的,也就是说这样设置的效果就是实例1该参数是0,实例2该参数是1.
即:实例1无法启动q00小工进程,实例2可以启动q00小工进程。 构建测试环境模拟生产: 先设置aq_tm_processes为1: alter system set aq_tm_processes = 1 scope=both sid='*';
--create pfile='/tmp/pfile11.ora' from spfile; 此时参数文件中就会有这样的设置: *.aq_tm_processes=1 再设置实例1的aq_tm_processes为0 alter system set aq_tm_processes = 0 scope=both sid='jy1';
--create pfile='/tmp/pfile12.ora' from spfile; 此时参数文件中就会有这样的设置: *.aq_tm_processes=1
jy1.aq_tm_processes=0 此时就模拟了生产环境的现状。下面来看下实际的操作过程: SQL>
SQL> alter system set aq_tm_processes = 1 scope=both sid='*';
System altered.
SQL> create pfile='/tmp/pfile11.ora' from spfile;
File created.
SQL> show parameter aq
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 1
SQL> !ps -ef |