• RAC 修改 spfile 参数


     

    我们知道数据库的参数文件有spfile pfile RAC 的参数文件比较特殊。 因为默认情况下,RACspfile 是放在共享设备上(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 与单实例不同的一些参数:

     

    1cluster_database

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

     

    2db_name/ db_unique_name/ instance_name

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

     

    3instance_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中获知。该参数值需要每个节点保持一致。

     

     

     

     

     

     

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

    Blog http://blog.csdn.net/tianlesoftware

    网上资源: http://tianlesoftware.download.csdn.net

    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

    DBA1 群:62697716(); DBA2 群:62697977()

    DBA3 群:63306533;     聊天 群:40132017

    --加群需要在备注说明SGA的组成部分,否则拒绝申请

    道森Oracle,国内最早、最大的网络语音培训机构,我们提供专业、优质的Oracle技术培训和服务! 我们的官方网站:http://www.daosenoracle.com 官方淘宝店:http://daosenpx.taobao.com/
  • 相关阅读:
    java客户端调用c#的webservice服务
    hibernate 中如何用注解映射定长字符类型char(2)
    使用spring提供的LocalSessionFactoryBean来得到SessionFactory
    执行JDBC的executeUpdate()方法时,报错:数据类型不一致,应为number,但却为binary
    c++并发编程之进程创建(给那些想知道细节的人)
    c++编程之内存模型
    c++多线程编程互斥锁初步
    c++多线程编程——初探
    字符串匹配算法之————KMP算法
    字符串匹配算法第一篇——暴力匹配
  • 原文地址:https://www.cnblogs.com/tianlesoftware/p/3609980.html
Copyright © 2020-2023  润新知