返回顶部
首页 > 资讯 > 数据库 >Oracle参数设置之set和reset怎么用
  • 786
分享到

Oracle参数设置之set和reset怎么用

2024-04-02 19:04:59 786人浏览 八月长安
摘要

这篇文章主要为大家展示了“oracle参数设置之set和reset怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Oracle参数设置之set和reset怎

这篇文章主要为大家展示了“oracle参数设置之set和reset怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Oracle参数设置之set和reset怎么用”这篇文章吧。

环境:Oracle 10.2.0.5 RAC

需求:节点1的aq_tm_processes要求恢复默认,节点2设置要求保持不变

背景介绍:

从10.2官档可以查到aq_tm_processes参数,看到该参数的默认值是0,我们姑且叫做它为默认0.

Oracle参数设置之set和reset怎么用

然后,在实际上发现,这个默认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|grep q00
oracle 1462 27385 0 15:27 pts/1 00:00:00 /bin/bash -c ps -ef|grep q00
oracle 1464 1462 0 15:27 pts/1 00:00:00 grep q00
oracle 26534  1 0 15:08 ?  00:00:00 ora_q002_jy1
oracle 31538  1 0 15:21 ?  00:00:00 ora_q000_jy1

SQL> 
SQL> alter system set aq_tm_processes = 0 scope=both sid='jy1';

System altered.

SQL> create pfile='/tmp/pfile12.ora' from spfile;

File created.

SQL> show parameter aq

NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes      integer  0
SQL> !ps -ef|grep q00
oracle 2044 27385 0 15:28 pts/1 00:00:00 /bin/bash -c ps -ef|grep q00
oracle 2046 2044 0 15:28 pts/1 00:00:00 grep q00

SQL>

可以看到,确实设置为0之后q00进程就消失了,即使再重启实例也是一样的,q00进程不再会启动。

2.测试方案

现在我们要做的就是保障不更改节点2的设置情况下,将节点1的aq_tm_processes恢复默认。

2.1 尝试直接reset参数指定节点1,然后重启验证?

alter system reset aq_tm_processes scope=spfile sid='jy1';
create pfile='/tmp/pfile13.ora' from spfile;

重启节点1验证?确认是否可以实现需求?

具体实际操作如下:

SQL> alter system reset aq_tm_processes scope=spfile sid='jy1';

System altered.

SQL> create pfile='/tmp/pfile13.ora' from spfile;

File created.

SQL> show parameter aq

NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes      integer  0
SQL> !ps -ef|grep q00
oracle 3801 27385 0 15:32 pts/1 00:00:00 /bin/bash -c ps -ef|grep q00
oracle 3803 3801 0 15:32 pts/1 00:00:00 grep q00

SQL> startup force
ORACLE instance started.

Total System Global Area 599785472 bytes
Fixed Size     2098112 bytes
Variable Size    301993024 bytes
Database Buffers   289406976 bytes
Redo Buffers    6287360 bytes
Database mounted.
Database opened.
SQL> show parameter aq

NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes      integer  1
SQL> !ps -ef|grep q00
oracle 4228  1 0 15:33 ?  00:00:00 ora_q000_jy1
oracle 4232  1 0 15:33 ?  00:00:00 ora_q002_jy1
oracle 5021 27385 0 15:35 pts/1 00:00:00 /bin/bash -c ps -ef|grep q00
oracle 5023 5021 0 15:35 pts/1 00:00:00 grep q00

SQL>

可以看到,答案明显是:不可以。

因为这样只会将实例1的参数reset,但是由于之前还有全局参数*,所以重启实例1后会发现,aq_tm_processes参数会是1。
也就是说,针对实例1的设置去掉了,自然会沿袭整体的设置。

2.2 实验正确的方式

有了上面的基础,就有了实现需求的思路:

我们想下,如果把全局参数也reset,会影响到节点2之前的设置,那么这样,只能将节点2的值单独设定,然后再reset全局参数。

alter system set aq_tm_processes = 1 scope=both sid='jy2';
--create pfile='/tmp/pfile14.ora' from spfile;

alter system reset aq_tm_processes scope=spfile sid='*';
--create pfile='/tmp/pfile15.ora' from spfile;

重启节点1验证??确认是否可以实现需求?

具体实际操作如下:

SQL> alter system set aq_tm_processes = 1 scope=both sid='jy2';

System altered.

SQL> create pfile='/tmp/pfile14.ora' from spfile;

File created.

SQL> alter system reset aq_tm_processes scope=spfile sid='*';

System altered.

SQL> create pfile='/tmp/pfile15.ora' from spfile;

File created.

SQL> startup force
ORACLE instance started.

Total System Global Area 599785472 bytes
Fixed Size     2098112 bytes
Variable Size    301993024 bytes
Database Buffers   289406976 bytes
Redo Buffers    6287360 bytes
Database mounted.
Database opened.
SQL> show parameter aq

NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes      integer  0
SQL> !ps -ef|grep q00
oracle 7446  1 1 15:40 ?  00:00:00 ora_q000_jy1
oracle 7448  1 0 15:40 ?  00:00:00 ora_q001_jy1
oracle 7450  1 0 15:40 ?  00:00:00 ora_q002_jy1
oracle 7452  1 0 15:40 ?  00:00:00 ora_q003_jy1
oracle 7480 27385 0 15:41 pts/1 00:00:00 /bin/bash -c ps -ef|grep q00
oracle 7482 7480 0 15:41 pts/1 00:00:00 grep q00

SQL>

可以看到,真实操作测试验证的答案和预想的一致:可以。

注:所有创建pfile的步骤都可以去掉。当时是因为想确认理论是否正确才给每一步后加了这个操作。

3.总结

那么总结归纳下,实际在客户环境下,就是应该做以下三个步骤完成需求:

--保障节点2的设置不变
alter system set aq_tm_processes=1 scope=spfile sid='jy2';
--reset节点1的设置
alter system reset aq_tm_processes scope=spfile sid='jy1';
--reset全局的设置
alter system reset aq_tm_processes scope=spfile sid='*';

本文知识点总结:其实只需下面这3个知识点清楚就ok了:

  • reset操作实际只是将这个值从spfile中移除;

  • 针对某个实例级别的设置优先级高于整体设置;

  • 注意Oracle对于SET参数值这种方式,实际上少做了很多事情,简单理解就是默认0和设置0不一样。

以上是“Oracle参数设置之set和reset怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: Oracle参数设置之set和reset怎么用

本文链接: https://lsjlt.com/news/57615.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Oracle参数设置之set和reset怎么用
    这篇文章主要为大家展示了“Oracle参数设置之set和reset怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Oracle参数设置之set和reset怎...
    99+
    2024-04-02
  • oracle process参数怎么设置
    在Oracle数据库中,可以使用ALTER SYSTEM语句来设置process参数。以下是设置process参数的步骤: 确定...
    99+
    2023-10-22
    oracle
  • Oracle中怎么设置optimizer_mode 参数
    这篇文章给大家介绍Oracle中怎么设置optimizer_mode 参数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。 Oracle 在执行SQL语句时...
    99+
    2024-04-02
  • oracle中怎么设置UTL_FILE_DIR参数
    oracle中怎么设置UTL_FILE_DIR参数,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。  or...
    99+
    2024-04-02
  • oracle中spool的参数怎么设置
    在Oracle中,spool命令用于将SQL语句的结果输出到文件中。以下是spool命令的一般语法: SPOOL file_path...
    99+
    2024-04-09
    oracle
  • redis timeout参数怎么设置
    在Redis中,可以通过设置timeout参数来控制连接的超时时间。timeout参数表示Redis服务器在接收到客户端的连接请求后...
    99+
    2024-03-15
    redis
  • spark submit参数怎么设置
    要设置Spark Submit参数,可以通过以下方式进行: 在命令行中使用 --conf 参数设置参数,例如: spark-su...
    99+
    2024-04-02
  • Oracle RAC启动归档时怎么设置CLUSTER_DATABASE参数
    这篇文章主要讲解了“Oracle RAC启动归档时怎么设置CLUSTER_DATABASE参数”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle R...
    99+
    2024-04-02
  • 怎么设置redis启动参数
    设置redis启动参数的方法:修改配置文件,例如:[root@host50 utils]# cp /etc/redis/6379.conf /root/6379.conf //可以先备份一份,防止修改错误没法还原[root@host50 u...
    99+
    2024-04-02
  • Metasploit中怎么设置LHOST参数
    本篇文章为大家展示了Metasploit中怎么设置LHOST参数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Metasploit设置LHOST参数技巧当用户使用Metasploit框架中的模块时,...
    99+
    2023-06-05
  • Netbeans中怎么设置JVM参数
    本篇文章为大家展示了Netbeans中怎么设置JVM参数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在Netbeans中设置JVM参数对ictclas4j进行了比较大的改动,我希望能把分词的速度大...
    99+
    2023-06-17
  • Matlab中plot参数怎么设置
    在Matlab中,可以使用不同的参数来设置plot函数的行为和外观。下面是一些常见的参数设置:1. x和y:用于指定要绘制的数据点的...
    99+
    2023-09-20
    Matlab
  • jquery中lazyload.js参数怎么设置
    在jQuery的lazyload.js插件中,可以通过设置不同的参数来自定义懒加载的行为。下面是一些常见的参数设置:1. `thre...
    99+
    2023-09-21
    jquery
  • MySQL怎么设置变量参数
    在MySQL中,可以使用SET语句来设置变量参数。下面是一个简单的示例: SET @myVariable = 'Hello...
    99+
    2024-03-02
    MySQL
  • prometheus启动参数怎么设置
    Prometheus 启动参数可以通过命令行参数或者配置文件进行设置。以下是一些常用的启动参数设置方式: 使用命令行参数设置: 在...
    99+
    2024-04-02
  • oracle安装时设置的内核参数有什么用
    本篇内容主要讲解“oracle安装时设置的内核参数有什么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“oracle安装时设置的内核参数有什么用”吧! ...
    99+
    2024-04-02
  • sql中query函数参数怎么设置
    在SQL中,QUERY函数的参数可以根据需要进行设置,通常包括要查询的字段、表名、条件等。下面是一个简单的示例: SELECT...
    99+
    2024-04-09
    sql
  • MySQL中怎么设置类型参数
    本篇文章给大家分享的是有关MySQL中怎么设置类型参数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。(一)连接  连接通常来自Web服务器,下...
    99+
    2024-04-02
  • linux怎么设置jvm内存参数
    在 Linux 上设置 JVM 内存参数可以通过修改 JVM 的启动脚本或者设置环境变量来实现。以下是两种常见的方法:方法一:修改 ...
    99+
    2023-09-26
    linux jvm
  • java怎么设置打印机参数
    在Java中设置打印机参数可以通过使用Java打印API中的PrintService和PrintRequestAttributeSe...
    99+
    2023-09-23
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作