Oracle RAC下参数文件的维护

2016-11-27
988

题记:在RAC环境下,由于多节点不同实例在启动时都需要依赖参数文件,所以其管理更加复杂。本节就RAC下参数文件管理进行阐述。

RAC下共享spfile

RAC环境下数据库在启动时,首先尝试寻找Cluster里面Database资源的Spfile配置选项。如果找不到对应的文件,那么继续按照单实例的寻找顺序在默认位置查找。

建议在RAC环境下使用共享的SPFILE,并在默认位置保留一个PFILE,里面通过SPFILE参数指向共享的SPFILE。默认在RAC安装配置完成,就自动生成了一个PFILE文件。


下面是RAC环境中一个参数文件的设置范例。

[oracle@raclinux1 ~]$ cd $ORACLE_HOME/dbs

[oracle@raclinux1 dbs]$ more initRACDB1.ora

SPFILE='+MY_DG2/RACDB/spfileRACDB.ora'


在此环境中,需要谨慎使用createspfile from pfile的命令,很多朋友因为草率地执行这样的操作而导致数据库故障。在ASM或RAC环境中,通常的init<sid>.ora文件中只有如上示例的一行,如果此时执行createspfile from pfile命令,则新创建的SPFILE文件将也只有这样一行信息,数据库将无法启动。

使用ASM存储参数文件

在ASM环境中,参数文件可以存储在ASM磁盘组上,而在Oracle RAC环境中,默认使用存储在ASM上的参数文件,在维护RAC环境的参数文件时要格外谨慎。


以下是一个测试过程,用于指导大家如何将参数文件转移到ASM存储并使之生效。

首先检查参数文件的位置,并通过SPFILE创建一个PFILE文件,进而在ASM磁盘上创建SPFILE文件。

SQL> connect as sysdba

SQL> show parameter spfile

NAME    TYPE      VALUE

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

spfile string   oracle/product/11.2.0/db_1/dbs/spfileracdb11.ora

SQL> create pfile from spfile

File created. 

SQL> create spfile='+RACDB_DATA' from pfile='/oracle/product/11.2.0/db_1/dbs/initracdb11.ora';

File created.


检查ASM上的参数文件。

[grid@rac1 ~]$ asmcmd

ASMCMD> ls RACDB_DATA/racdb1/spfile* 

spfileracdb1.ora

同步RAC两个节点上的参数文件,更改其内容,设置SPFILE参数指向ASM中的参数文件。

[oracle@rac1 dbs]$ echo "SPFILE='+RACDB_DATA/racdb1/spfileracdb1.ora'" >  /oracle/product/11.2.0/db_1/dbs/initracdb11.ora


[oracle@rac1 dbs]$ ssh rac2 "echo \"SPFILE='+RACDB_DATA/racdb1/spfileracdb1.ora'\" >  /oracle/product/11.2.0/db_1/dbs/initracdb12.ora"

通过srvctl修改OCR中关于参数文件的配置。

[oracle@rac1 dbs]$ srvctl modify database -d racdb1 -p+RACDB_DATA/racdb1/spfileracdb1.ora


现在通过CRS启动数据库,将不再需要dbs目录下的参数文件,可以将其移除。

[oracle@rac1 dbs]$ mv /oracle/product/11.2.0/db_1/dbs/spfileracdb11.ora oracle/product/ 11.2.0/db_1/dbs/spfileracdb11.ora_bak

 

[oracle@rac1 dbs]$ ssh rac2 "mv /oracle/product/11.2.0/db_1/dbs/spfileracdb12.ora /oracle/product/11.2.0/db_1/dbs/spfileracdb12.ora_bak"

 

在下次重新启动数据库时,新的配置将会生效。

[oracle@rac1 dbs]$ srvctl stop database -d racdb1

[oracle@rac1 dbs]$ srvctl start database -d racdb1

 

[oracle@rac1 dbs]$ srvctl status database -d racdb1

Instance racdb11 is running on node rac1

Instance racdb12 is running on node rac2

检查数据库,新的参数文件已经被使用和生效。

SQL> SHOW parameter spfile

NAME TYPE VALUE

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

spfile string +RACDB_DATA/racdb1/spfileracdb1.ora


谨慎修改RAC参数

在RAC环境中,即使按照正常的方式修改参数,也有可能因为遭遇Bug而导致事故,所以在进行重要的环境变更前,一定要进行测试,并详细检查与变更有关的文件,确保变更不会引起错误。


在Oracle 10.1的版本中,会遇到这样的问题,在RAC环境下修改UNDO_RETENTION参数,使用如下命令:

alter system set undo_retention=18000 sid='*';

这条命令直接导致了RAC的其他节点挂起,Oracle记录了一个相关Bug,Bug号为:4220405(这个Bug在Oracle 10gR2中修正),其Workaround就是分别修改不同实例。

alter system set undo_retention=18000 sid='RAC1';

alter system set undo_retention=18000 sid='RAC2';

alter system set undo_retention=18000 sid='RAC3';


这个案例告诉我们,Bug无处不在,数据库调整应当极其谨慎,最好在测试环境中测试过再应用到生产环境。

再次重申,在RAC环境中,每一个维护操作都要相当谨慎!


RAC环境下初始化参数的查询方法

下面介绍RAC环境下初始化参数的查询方法。

一个简单的例子:



不同的查询方法得到的结果。



似乎除了看不到全局设置外,GV$PARAMETER参数和V$SPPARAMETER没有什么不同,其实不然,如果alter system set的时候只修改了spfile或者memory参数,结果就会不同。



从上面的对比可以看出,通过GV$视图访问的结果和SPFILE中包含的信息完全不同。除了上面介绍的几种视图之外,CREATE PFILE也是一个不错的选择。Oracle把SPFILE也纳入到RMAN的备份恢复策略当中,如果你配置了控制文件自动备份(AUTOBACKUP),那么Oracle会在数据库发生重大变化(如增减表空间)时自动进行控制文件及SPFILE文件的备份。


节选自《Oracle性能优化与诊断案例精选第七章》


本书汇聚云和恩墨专家智慧, 作者包含Oracle ACE总监 6人,Oracle ACE 2人和其他云和恩墨的高级技术专家等 共13人。他们掌握Oracle的最新技术和发展动向,并有多年的行业经验,在这本书中,他们将自己的成长经历,技术经验和独特的视角分享给读者,不同作者的风格、方法、经验既迥然相异,又往往不谋而合,这样的融合既可以相互映衬,又可以彼此补充。希望读者可以找到切合自己的经验的内容并以此借鉴,找到学习案例方法从而完善并成就自我。


云和恩墨
数据驱动,成就未来。整合业界顶尖的技术与合作伙伴资源,围绕数据及相关领域,提供解决方案和专业服务。
IT基础架构
zData一体机 - 分布式存储解决方案
数据架构
Oracle DB2 MySQL NoSQL
专项服务:架构 / 安全 / 高可用 / 容灾 / 优化 / SQL 质量管控
运维服务:运维服务  | 代维服务
人才培养:个人认证 | 企业内训
软件产品:SQL审核 - Z3 | 监控 - Zone | 数据恢复 - ODU|智能巡检 - Bethune|
应用架构

应用软件开发:数据建模 SQL审核和优化 | 中间件服务

业务架构

电子渠道(网络销售)分析系统 | 数据治理

恩墨学院

恩墨学院是云和恩墨(北京)信息技术有限公司旗下的培训事业部,创业数年专注于数据库认证、技能培训,以专业的讲师塑造品牌,以专业的训练保证就业,目前已经发展成为国内数据库领域培训领导品牌。

关注Oracle账号,回复CodeSet,立即获取《Oracle性能优化与诊断案例精选》代码包,更多资源,按需自取。


【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论