RAC sid=‘*‘ 最好加上 v$system_parameter

实验结论:在RAC环境中,最好修改参数sid='*' 安全可靠,因为暂时未明确知道哪些参数是默认全局修改,什么参数是默认单节点修改的,+* 靠谱,不容易出问题

                  在RAC环境中,修改全局参数scope=spfile生效时,尽量重启所有实例, 避免某个实例故障后,由于参数不一致导致实例无法启动的尴尬事件(不是所有,除db_files 等之外需要同时重启,别的可以rolling fashion ,避免 complete outage)

 

1.故障现象

尝试启动RAC 节点1,遭遇ORA-01105,ORA-01606: ``` SQL> startup mount; ORACLE instance started.

Total System Global Area 9.4869E+10 bytes
Fixed Size 2264056 bytes
Variable Size 5.0197E+10 bytes
Database Buffers 4.4560E+10 bytes
Redo Buffers 109174784 bytes
ORA-01105: mount is incompatible with mounts by other instances
ORA-01606: parameter not identical to that of another mounted instance

数据库节点1目前状态是NOMOUNT.<h1 id="1">2.解决过程</h1>
**错误代码说明:**

$ oerr ora 1105
01105, 00000, "mount is incompatible with mounts by other instances"
// *Cause: An attempt to mount the database discovered that another instance
// mounted a database by the same name, but the mount is not
// compatible. Additional errors are reported explaining why.
// *Action: See accompanying errors.

$ oerr ora 1606
01606, 00000, "parameter not identical to that of another mounted instance"
// *Cause: A parameter was different on two instances.
// *Action: Modify the initialization parameter and restart.

查询gc_隐含参数set linesize 333col name for a35col description for a66col value for a30SELECT   i.ksppinm name,  i.ksppdesc description,  CV.ksppstvl VALUEFROM   sys.x$ksppi i, sys.x$ksppcv CV  WHERE   i.inst_id = USERENV ('Instance')  AND CV.inst_id = USERENV ('Instance')  AND i.indx = CV.indx  AND i.ksppinm LIKE '/_gc%' ESCAPE '/'  ORDER BY   REPLACE (i.ksppinm, '_', '');  查询结果如下(部分相同值的参数已省略):

--节点1:
_gc_policy_time how often to make object policy decisions in minutes 0
_gc_read_mostly_flush_check if TRUE, optimize flushes for read mostly objects FALSE
_gc_read_mostly_locking if TRUE, enable read-mostly locking FALSE

--节点2:
_gc_policy_time how often to make object policy decisions in minutes 10
_gc_read_mostly_flush_check if TRUE, optimize flushes for read mostly objects FALSE
_gc_read_mostly_locking if TRUE, enable read-mostly locking TRUE

发现问题,_gc_policy_time隐藏参数,_gc_read_mostly_locking隐藏参数,2个节点值不一致。
解决方法:根据现在正常运行的节点2的值,重新设置这两个值:

alter system set "_gc_read_mostly_locking"=true scope=spfile sid='';
alter system set "_gc_policy_time"=10 scope=spfile sid='
';
--正常关闭节点1:
shutdown immediate;
--正常启动节点1:
startup

实际执行过程如下:

SQL> alter system set "_gc_read_mostly_locking"=true scope=spfile sid='*';

System altered.

SQL> alter system set "_gc_policy_time"=10 scope=spfile sid='*';

System altered.

SQL> shutdown immediate;
ORA-01507: database not mounted

ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 9.4869E+10 bytes
Fixed Size 2264056 bytes
Variable Size 5.1271E+10 bytes
Database Buffers 4.3487E+10 bytes
Redo Buffers 109174784 bytes
Database mounted.
Database opened.

至此RAC节点1启动成功。

<h1 id="3">3.总结</h1>
猜测故障原因应该是之前有人修改数据库隐含参数,误操作只修改了一个实例导致。
当我们操作RAC环境时,一定要注意`sid='*'`这一点。

本篇文档--目的:实验测试在RAC环境下,修改数据库参数与单实例相比,需要注意的地方

--举例说明,在实际生产环境下,以下参数很可能会需要修改

--在安装数据库完成后,很可能没有标准化,初始化文档,没有对以下参数进行调整

SQL> show parameter db_files

NAME   VALUE

-------------------------------------------------

db_files    200

--实验测试

节点一、对此参数调整 加大至800

SQL> alter system set db_files=800 scope=spfile;

--节点二、数据库实例OPEN

--重启节点一数据库

SQL> shutdown immediate;
startup

--查看节点一的Alert日志

--从日志看,节点一的实例启动,已经成功读取db_files=800后的参数值了

Using parameter settings in server-side pfile /u01/app/oracle/product/11.2.0/db_1/dbs/initjx1.ora
System parameters with non-default values:

  db_files                 = 800

--SQLPLUS --STARTUP  显示内容
ORACLE instance started.

Total System Global Area 484356096 bytes
Fixed Size 2229584 bytes
Variable Size 297798320 bytes
Database Buffers 176160768 bytes
Redo Buffers 8167424 bytes
ORA-01105: mount is incompatible with mounts by other instances
ORA-01174: DB_FILES is 800 buts needs to be 200 to be compatible

--报错,在RAC环境,修改全局参数,重启生效scope=spfile的参数,单纯启动一个实例是危险的,需要重启所有节点的数据库实例,来完成参数的修改

--本次解决方法:重启节点二实例,完成参数的修改

测试二、隐含参数设置

修改参数,不加sid='*'

节点一实例修改参数:

SQL> alter system set "_gc_policy_time"=10 scope=spfile;

SQL> alter system set "_gc_read_mostly_locking"=true scope=spfile;

--两个节点实例,都相互,关闭,重启RAC实例

SQL> shutdown immediate;

--节点一,先启动

startup

查询参数

SQL> show parameter "_gc_policy_time"

NAME              VALUE

------------------------------

_gc_policy_time   10

SQL> show parameter "_gc_read_mostly_locking"

NAME                                 VALUE

------------------------------
_gc_read_mostly_locking    TRUE

 

--节点二,再启动

一切正常

测试三、对数据库参数进行sid =2 单独配置,重启测试

--数据库节点2 修改参数,指定sid自身

SQL> alter system set "_gc_read_mostly_locking"=false sid='2' scope=spfile;

SQL> startup force;  

--发现未生效

--对于隐含参数--在本次测试环境中,是全局生效,而不能单独一个节点生效

--https://www.cnblogs.com/jyzhao/p/5391746.html

--参考lob  实验还原报错失败,未能配置两个节点不同的参数值

--解决方法如上,去查询验证,两个节点实例的参数-- 匹配不一致的参数,进行修改一致,然后都使用同一个参数文件启动实例就OK

--ORA-01105,ORA-01606  --如果是修改隐含参数,会报这两个错误,解决方法

set linesize 333 col name for a35 col description for a66 col value for a30 SELECT i.ksppinm name, i.ksppdesc description, CV.ksppstvl VALUE FROM sys.x$ksppi i, sys.x$ksppcv CV WHERE i.inst_id = USERENV ('Instance') AND CV.inst_id = USERENV ('Instance') AND i.indx = CV.indx AND i.ksppinm LIKE '/_gc%' ESCAPE '/' ORDER BY REPLACE (i.ksppinm, '_', '');

实验结论:在RAC环境中,最好修改参数sid='*' 安全可靠,因为暂时未明确知道哪些参数是默认全局修改,什么参数是默认单节点修改的,+* 靠谱,不容易出问题

                  在RAC环境中,修改全局参数scope=spfile生效时,需重启所有实例,不要偷懒,避免某个实例故障后,由于参数不一致导致实例无法启动的尴尬事件

Oracle 参数查看详解 

Oracle 中有很多参数,同时也有不同设置参数的方式,比如:
会话级别(alter SESSION set ...)、系统级别(alter SYSTEM set ...)、直接修改pfile参数文件;
其中系统级别设置中 又分三种:
只在内存中生效(alter system set  ...  scope=MEMORY)  --重启后无效
只在spfile文件中生效 (alter system set...scope=SPFILE)    ---重启后才生效
内存和spfile文件同时生效(alter system set ... scope=both)  ---默认方式

上面讲过了如何设置参数的方式,下面讲一下怎么查看参数的值,查看参数会涉及如下几个视图:
v$parameter & v$parameter2、v$system_parameter & v$system_parameter2、v$spparameter
 V$parameter 和 V$prameter2 :
两者中显示的参数值 是 当前会话某个参数的值;
另外我们平时用的最多的 show parameter ...的查看参数值的命令对应的值就是V$parameter 中的值;
而二者的区别仅仅在于当参数有多个数值时候,V$parameter中用一行表示,不同值之间以逗号相1隔,而V$parameter2中不同值用不同行表示,举例如下:查看control_files
SQL> select name,value from  v$parameter where name='control_files';

NAME
----------------
control_files
VALUE
--------------------------------------------------------------------------------
/home/oracle/oradata/cms2009/control01.ctl, /home/oracle/oradata/cms2009/control
02.ctl, /home/oracle/oradata/cms2009/control03.ctl

SQL> select name,value from  v$parameter2 where name='control_files';

NAME                    VALUE
----------------------- ---------------------------------------------
control_files           /home/oracle/oradata/cms2009/control01.ctl
control_files           /home/oracle/oradata/cms2009/control02.ctl
control_files           /home/oracle/oradata/cms2009/control03.ctl

如果是RAC环境,查看GV$parameter和 GV$parameter2;

v$system_parameter & v$system_parameter2:
两者中记录的参数值 是 实例中参数的值,新启动的会话都会继承此类参数的值;
而两者的区别同上V$parameter和V$parameter2的区别;
RAC环境对应GV$system_parameter和 GV$system_parameter2;

V$spparameter :
记录的参数值 是spfile文件中的值。
RAC环境对应 GV$spparameter;

另外除了上面查看参数的方式外,还有一种 查看方式比较特别:create pfile from (spfile 、memory)11g支持from memory 
这种方式生成的新的pifle只显示手动设置过得参数和参数值,默认的参数不会显示,这样就能更直观的查看我们曾经显式修改过得那些参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/53368.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sql developer 连不上oracle数据库 报错 ORA-01031: insufficient privileges

sql developer 连不上oracle数据库 报错 ORA-01031: insufficient privileges 1、问题描述2、问题原因3、解决方法4、sql developer 连接oracle 成功 1、问题描述 使用sys账户以SYSDBA角色登录失败 报错 ORA-01031: insufficient privileges 2、问题原因 因为没有给sys账户分…

无涯教程-PHP - Filtered反序列化

PHP 7引入了Filtered unserialize()函数&#xff0c;以在对不受信任的数据上的对象进行反序列化时提供更好的安全性。 <?phpclass MyClass1 { public $obj1prop; }class MyClass2 {public $obj2prop;}$obj1new MyClass1();$obj1->obj1prop1;$obj2new MyClass2();$obj…

Docker-Consul

Docker-Consul 一、介绍1.什么是服务注册与发现2.什么是consul3.consul提供的一些关键特性&#xff1a; 二、consul 部署1.环境准备2.consul服务器3.查看集群信息4.通过 http api 获取集群信息 三、registrator服务器1.安装 Gliderlabs/Registrator2.测试服务发现功能是否正常3…

机器学习简介[01/2]:简单线性回归

Python 中的机器学习简介&#xff1a;简单线性回归 一、说明 简单线性回归为机器学习提供了优雅的介绍。它可用于标识自变量和因变量之间的关系。使用梯度下降&#xff0c;可以训练基本模型以拟合一组点以供未来预测。 二、技术背景 这是涵盖回归、梯度下降、分类和机器学习的其…

MySQL每日一练--校园教务系统

一丶数据库名称&#xff1a;SchoolDB 二丶数据库表信息&#xff1a;角色信息表 表名&#xff1a; t_role 主键&#xff1a; r_id 序号 字段名称 字段说明 类别 位数 属性 备注 1 r_id 角色编号 int 主键 自动增长 2 r_name_EN 角色名&#xff08;英…

学习设计模式之装饰器模式,但是宝可梦

装饰模式 为了不改变组件的结构&#xff0c;动态地扩展其功能。 通常&#xff0c;扩展功能通过子类进行&#xff0c;但是继承的方式具有静态特征&#xff0c;耦合度高。 意图&#xff1a;动态地给对象添加额外的功能 主要解决&#xff1a;继承方式是静态特征&#xff0c;扩…

高效PDF校对:释放高质量内容的力量

在数字化世界中&#xff0c;内容是王者。随着企业和个人越来越依赖数字文档进行沟通、分享和创新&#xff0c;我们在PDF中传递的内容的质量变得至关重要。在这里&#xff0c;我们将探索高效的PDF校对如何帮助您释放高质量内容的真正潜力。 超越仅仅是“正确” 当我们谈论PDF校…

【目标检测】“复制-粘贴 copy-paste” 数据增强实现

文章目录 前言1. 效果展示代码说明3. 参考文档4. 不合适点 前言 本文来源论文《Simple Copy-Paste is a Strong Data Augmentation Method for Instance Segmentation》&#xff08;CVPR2020&#xff09;&#xff0c;对其数据增强方式进行实现。 论文地址&#xff1a;https:/…

[matlab]matlab配置mingw64编译器

第一步&#xff1a;下载官方绿色版本mingw64编译器然后解压放到一个非中文空格路径下面 比如我mingw64-win是我随便改的文件名&#xff0c;然后添加环境变量&#xff0c;选择用户或者系统环境变量添加下面的变量 变量名&#xff1a; MW_MINGW64_LOC 变量值&#xff1a;自己的m…

原生小案例:如何使用HTML5 Canvas构建画板应用程序

使用HTML5 Canvas构建绘图应用是在Web浏览器中创建交互式和动态绘图体验的绝佳方式。HTML5 Canvas元素提供了一个绘图表面&#xff0c;允许您操作像素并以编程方式创建各种形状和图形。本文将为您提供使用HTML5 Canvas创建绘图应用的概述和指导。此外&#xff0c;它还将通过解释…

解决无法远程连接MySQL服务的问题

① 设置MySQL中root用户的权限&#xff1a; [rootnginx-dev etc]# mysql -uroot -pRoot123 mysql> use mysql; mysql> GRANT ALL PRIVILEGES ON *.* TO root% IDENTIFIED BY Root123 WITH GRANT OPTION; mysql> select host,user,authentication_string from user; -…

小小讲一下Linux基本命令

Linux是一套类Unix的操作系统&#xff0c;这套系统最大的优点就是安全便捷&#xff0c;快速高效。这就为它赢得了广大的市场空间。但是呢&#xff0c;Linux系统虽然广为流行&#xff0c;它也不是那么容易就可以学会的。比如说&#xff0c;如果我们不懂得Linux系统的基本操作命令…

【es6】中的Generator

Generator 一、Generator 是什么&#xff1f;1.1 与普通函数写法不一样&#xff0c;有两个不同 二、Generator 使用2.1 书写方法 三、yield语句3.1 yield和return3.2 注意事项3.3 yield*语句3.4 yield*应用 四、next方法4.1参数4.2 运行逻辑 五、异步解决方案六、Generator相关…

Java“牵手”根据关键词搜索(分类搜索)lazada商品列表页面数据获取方法,lazadaAPI实现批量商品数据抓取示例

lazada商城是一个网上购物平台&#xff0c;售卖各类商品&#xff0c;包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取lazada商品列表和商品详情页面数据&#xff0c;您可以通过开放平台的接口或者直接访问lazada商城的网页来获取商品详情信息。以下是两种常用方法的介…

浅析C指针

文章目录 前言指向整型变量的指针指向一维数组的指针以指针为形参且以指针为返回值类型以局部变量地址作为返回值存在的安全隐患 指向字符串的指针通过指针交换两变量的值多级指针指针数组数组指针指向函数的指针 前言 C语言中的指针实质是指向某一对象的内存地址&#xff0c;…

mysql的group by与order by同时使用导致排序

场景描述&#xff1a;接手离职同事的一行代码&#xff0c;如下&#xff1a; select pdtm.name,pdtm.temperature,pdtm.humidity,pdtm.pressure from ( select pp.id,p.name,pp.temperature,pp.humidity,pp.pressure from phe_device_thermo_mst p LEFT JOIN phe_device_thermo…

keepalived

目录 keepalived概述 vrrp工作原理 keepalived体系主要的模块及其作用 模块 core模块 vrrp模块 check模块 作用 keepalived工作原理 keepalived和lvs-DR实验 keepalived概述 keepalived高可用应用&#xff08;健康检查&#xff0c;故障切换&#xff09; 节点服务器…

Spring AOP教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 AOP为Aspect Oriented Programming的缩写&#xff0c;意为&#xff1a;面向切面编程&#xff0c;通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续&#xff0c;是软件开发中的一个热点&#xff0c;也是Spring框架中的一个重要内容…

量子非凡暴风去广告接口

>>>https://videos.centos.chat/lzffbf.php/?url 免费提供综合去广告接口&#xff0c;各位请友好调用

Android 使用模拟器模拟Linux操作系统

1. 简介 在Android手机上使用模拟器模拟ubuntu等操作系统&#xff0c;便于测试 2. 软件准备 Termux&#xff1a;是一款 Android 终端模拟器和 Linux 环境应用程序&#xff0c;无需 root 或设置即可直接运行。虽然酷安和谷歌菜市场都能下载&#xff0c;但这些渠道都很久没更新…