我们知道数据库的参数文件有spfile 和pfile。 RAC 的参数文件比较特殊。 因为默认情况下,RAC的spfile 是放在共享设备上(RAW设备或者ASM磁盘组)。而在各节点的pfile文件里只记录了这个spfile的位置。  所以在用spfile 生成pfile 或者修改相关参数值时都需要特别注意。

如果我们直接使用: create pfile from spfile 命令穿件pfile,那么生成的pfile 文件将覆盖原有$ORACLE_HOME/dbs 目录下的pfile 文件。 而在之前的pfile文件里面值保留了一条指向spfile存放位置的记录。 这样修改之后,就会造成数据库启动时会因为找不到spfile文件而读取本地的pfile文件,而不是共享设备上的spfile文件。这样对参数管理上就会带来麻烦,也带来其他的隐患。

所以对于RAC,要慎用 create pfile from spfile 来创建pfile 文件, 在创建的时候,尽量指定pfile的生成位置。

先来看一下$ORACLE_HOME/dbs 下的pfile文件内容:

[oracle@rac1 bin]$ cd $ORACLE_HOME/dbs

[oracle@rac1 dbs]$ ls

ab_+ASM1.dat  hc_orcl1.dat   initdw.ora  initorcl1.ora  orapworcl   orapworcl2

hc_+ASM1.dat  init+ASM1.ora  init.ora    orapw+ASM1     orapworcl1  snapcf_orcl1.f

[oracle@rac1 dbs]$ more initorcl1.ora

SPFILE='+DATA/orcl/spfileorcl.ora'     -- 本地的pfile 只有一条记录

[oracle@rac1 dbs]$

我们现在看一下spfile 文件的内容:

[oracle@rac1 bin]$ export ORACLE_SID=orcl1

[oracle@rac1 bin]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Sep 23 12:04:24 2010

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> conn / as sysdba;

Connected.

SQL> show parameter spfile

NAME                  TYPE        VALUE

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

spfile                   string      +DATA/orcl/spfileorcl.ora  -- 这里记录spfile 位置

SQL> show parameter  -- 查看所有参数

NAME                                 TYPE        VALUE

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

O7_DICTIONARY_ACCESSIBILITY          boolean     FALSE

active_instance_count                integer

aq_tm_processes                      integer     0

archive_lag_target                   integer     0

asm_diskgroups                       string

asm_diskstring                       string

asm_power_limit                      integer     1

audit_file_dest                        string    /u01/app/oracle/admin/orcl/adump

audit_sys_operations                 boolean     FALSE

audit_syslog_level                   string

所有参数比较多,我们把它转成pfile后在查看:

SQL> create pfile='/u01/dave.ora' from spfile;

File created.

打开dave.ora 文件:

[oracle@rac1 u01]$ more dave.ora

orcl2.__db_cache_size=88080384

orcl1.__db_cache_size=96468992

orcl2.__java_pool_size=4194304

orcl1.__java_pool_size=4194304

orcl2.__large_pool_size=4194304

orcl1.__large_pool_size=4194304

orcl2.__shared_pool_size=79691776

orcl1.__shared_pool_size=71303168

orcl2.__streams_pool_size=0

orcl1.__streams_pool_size=0

*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'

*.background_dump_dest='/u01/app/oracle/admin/orcl/bdump'

*.cluster_database_instances=2

*.cluster_database=TRUE

*.compatible='10.2.0.1.0'

*.control_files='+DATA/orcl/controlfile/current.280.730181163','+FLASH_RECOVERY_AREA/orcl/controlfile/current.260.730181165'

*.core_dump_dest='/u01/app/oracle/admin/orcl/cdump'

*.db_block_size=8192

*.db_create_file_dest='+DATA'

*.db_domain=''

*.db_file_multiblock_read_count=16

*.db_name='orcl'

*.db_recovery_file_dest='+FLASH_RECOVERY_AREA'

*.db_recovery_file_dest_size=3670016000

*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'

orcl2.instance_number=2

orcl1.instance_number=1

*.job_queue_processes=10

orcl2.log_archive_dest_1='LOCATION=/u02/rac2_arch'

orcl1.log_archive_dest_1='LOCATION=/u02/rac1_arch'

orcl2.log_archive_dest_2='SERVICE=orcl1'

orcl1.log_archive_dest_2='service=orcl2'

*.log_archive_dest_state_2='ENABLE'

*.open_cursors=300

*.pga_aggregate_target=59768832

*.processes=150

*.remote_listener='LISTENERS_ORCL'

*.remote_login_passwordfile='exclusive'

*.sga_target=179306496

orcl1.standby_archive_dest='/u02/rac2_arch'

orcl2.standby_archive_dest='/u02/rac1_arch'

orcl2.thread=2

orcl1.thread=1

*.undo_management='AUTO'

orcl2.undo_tablespace='UNDOTBS2'

orcl1.undo_tablespace='UNDOTBS1'

*.user_dump_dest='/u01/app/oracle/admin/orcl/udump'

从上面的结果,我们发现参数的最前面都有一个标识符:orcl1, orcl2 和 *。 这些符号是用来区分参数的。

如:

*.undo_management='AUTO'         -- 所有节点通用的参数

orcl2.undo_tablespace='UNDOTBS2'  -- 代表orcl2的参数

orcl1.undo_tablespace='UNDOTBS1'  -- 代表orcl1 的参数

 

因为spfile区分实例,所以我们在修改的时候要特别注意指定实例,如果不指定,就会修改所有节点的参数。

如:

alter system set sga_target=1024M scope=spfile sid='orcl1';

alter system set sga_target=1024M scope=spfile sid='*';

注意:参数修改完成后,需要重启才能生效。

RAC 与单实例不同的一些参数:

(1)cluster_database

一般情况下,该参数在rac各实例下应该设置为true。在一些特别情况下,比如upgrade等,需要将该参数设置成false。

(2)db_name/ db_unique_name/ instance_name

各节点db_name 需要一致,db_unique_name 也需要一致(这与standby是不同的)。而instance_name配置成各个节点的实例名称。

(3)instance_number

该参数表示节点上实例的实例号。

(4) thread

该参数用来标示实例使用的redo线程。线程号与节点号/实例号没有直接关联。

(5) local_listener

该参数用来手工注册监听。为解决ORA-12514错误,可以设置该参数。

(6) remote_listener

该参数用来进行服务器端负载均衡配置。在配置RAC 负载均衡的服务端均衡时需要设置该参数。具体可以参考Blog:

Oracle RAC LoadBalance

http://blog.csdn.net/tianlesoftware/archive/2010/03/05/5347775.aspx

(7) cluster_interconnects

该参数用来指定集群中IPC通信的网络。如果集群中有多种网络用于高速互联,需要配置该参数。对于多个IP地址,用冒号将其隔开。对于集群中当前使用的互联地址,可以查询视图gv$cluster_interconnects或着oradebug ipc来查看。

(8) max_commit_propagation_delay

该参数用于配置SCN的产生机制。在rac下,SCN的同步有2种模式:

(1) Lamport Scheme.该模式下,由GES 管理SCN 的传播同步,max_commit_propagation_delay 表示SCN 同步所允许的最大时间。在该模式下,全局SCN并非完全同步,这在高并发的OLTP系统中,可能会对应用造成一定的影响。

(2) Broadcast on Commit scheme. 该模式下,一旦任何一个实例上事务发布commit,都立即同步SCN到全局。

在10g R1下,该参数默认数值为700,即采用Lamport Scheme模式。而在10g R2下,该参数默认数值为0,采用Broadcast on Commit scheme模式 (设置小于700的某一值,都将采用该模式) 。采用何种方式,可以从alert.log中获知。该参数值需要每个节点保持一致。

转:http://blog.csdn.net/tianlesoftware/article/details/5902591

RAC 修改 spfile 参数的更多相关文章

  1. RAC修改spfile位置

    RAC修改spfile位置    [root@rac1 ~]# su - oracle  [oracle@rac1 ~]$ sqlplus  / as sysdba  SQL*Plus: Releas ...

  2. Oracle RAC 修改SPFILE路径 文件查看

    在spfile场景下创建pfile: SQL> create pfile='/opt/oracle/init_pfile.ora'; 创建新spfile: SQL> create spfi ...

  3. RAC修改数据库的spfile位置

    RAC修改spfile位置 [root@rac1 ~]# su - oracle [oracle@rac1 ~]$ sqlplus  / as sysdba SQL*Plus: Release 11. ...

  4. RAC 环境下参数文件(spfile)管理

    RAC环境下,初始化参数文件与但实例下参数文件有些异同,主要表现在初始化参数可以为多个实例公用,也可以单独设置各个实例的初始化参数.对于那些非共用的初始化参数则必须要单独设置,而共用的则可以单独设置, ...

  5. oracle 11g rac 修改字符集

    系统版本: Oracle Linux Server release 5.7 数据库版本: Oracle Database 11g Enterprise Edition Release 11.2.0.3 ...

  6. 测试修改gcs_server_processes参数

    RAC部署前提是要求各节点的主机硬件一致的,但实际如果碰上一些不规范的客户,经费有限或是扩容时已买不到同样的机器,那么采购的机器会有一些区别,比如RAC各节点的CPU核数有区别,那么默认的gcs_se ...

  7. RAC修改字符集

    字符集修改做过几次了,这次感觉还是有点不顺,走了弯路,再记一遍[概况]准备搭建RAC+RAC DG,发现两端字符集不大一致,担心到时出问题. [目标]将备库NLS_NCHAR_CHARACTERSET ...

  8. 修改spfile导致oracle无法启动

    今天尝试着调整一下数据库的性能,由于疏忽没有做好备份(spfile.ora),直接修改了MEMORY_TARGET参数,alter system set MEMORY_TARGET=4096m;导致重 ...

  9. 修改spfile位置

    虽然很多地方不建议这么做,可是有HA.oracle软件建在本地盘的情况下,如果spfile放在dbs下,会导致每次修改spfile都要去手动copy到备机上,这是很麻烦的一件事情,所以我把spflie ...

随机推荐

  1. HDU2159二维背包

    FATE Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  2. hdu1584

    蜘蛛牌 Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  3. zk maxClientCnxns参数

    在zk模板配置文件中有: # the maximum number of client connections. # increase this if you need to handle more ...

  4. 小程序animation动画效果综合应用案例(交流QQ群:604788754)

    如果案例有问题,可到QQ群找到今日相关压缩文件下载测试. WXML: <view class="cebian"> <view animation="{{ ...

  5. Openwrt TF Card Auto Mount&Check (4)

    1      Scope of Document This document describes tf card bootup auto do file system check when mount ...

  6. SSH key的烦恼

    ssh key即公钥.私钥对,使用这种方式比较安全也比较方便,可以不用输入用户名.密码. 配置步骤: 1.生成ssh key: ssh-keygen -t rsa -C "bjhuxiaol ...

  7. sgu187&&spoj7734

    题解: splay翻转(只有翻转 sgu ac,spoj tle 代码: #pragma GCC optimize(2) #include<cstdio> #include<cstr ...

  8. LeetCode OJ:Valid Number

    Validate if a given string is numeric. Some examples:"0" => true" 0.1 " => ...

  9. vue-router配置之通用路径

    目的:浏览器地址栏输入了未匹配的地址时,前端控制跳转到首页index页面: 项目入口js:(一般根据项目结构不同,这个js一般取名为:app.js或者main.js) import Router fr ...

  10. NetworkManager 命令配置nmcli注意

    1.使用nmcli connection modify对connection进行修改的时候,ipv4.addresses的输入格式为"ip/mask空格gateway",例如172 ...