zoukankan      html  css  js  c++  java
  • RAC下SPFILE文件修改

    关于RAC下spfile和pfile文件启动浅谈

    第一篇:RAC下SPFILE文件修改

    在RAC下spfile位置的修改与单节点环境不完全一致,有些地方需要特别注意,否则可能修改会失败。
    SPFILE放在ASM中一个不正确的目录(+ARCH)中,现在想把它放在另外一个目录(+DATA)下。

    以下是具体步骤:

    1. 原spfile位置

    1 SQL> show parameter spfile
    2 spfile string +ARCH/spfiledorcl.ora

    2. 拷贝spfile到其他目录

    1 cp spfiledorcl.ora +DATA
    2 copying +data/spfileorcl.ora -> +data/spfileorcl.ora

    3. 修改所有节点$ORACLE_HOME/dbs/initorcl.ora下的参数文件

    1 [oracle@dwdb04 dbs]$ vi initdorcl2.ora
    2 
    3 SPFILE='+ARCH/spfiledorcl.ora'
    4 替换为
    5 SPFILE='+DATA/spfiledorcl.ora'


    4. 通过sqlplus方式重启实例

    复制代码
     1 SQL> shutdown immediate
     2 SQL> startup
     3 
     4 ORACLE instance started.
     5 
     6 Total System Global Area 5.2429E+10 bytes
     7 Fixed Size 2193872 bytes
     8 Variable Size 3707766320 bytes
     9 Database Buffers 4.8671E+10 bytes
    10 Redo Buffers 48136192 bytes
    11 Database mounted.
    12 Database opened.
    13 
    14 SQL > show parameter spfile
    15 
    16 NAME TYPE VALUE
    17 
    18 spfile string +DATA/spfiledorcl.ora
    复制代码

    可以发现,spfile已经修改成功。

    5. 但是如果用过srvctl重启数据库,发现spfile又变回来了:

    复制代码
    1 oracle用户下执行
    2 srvctl config database -d orcl -a
    3 srvctl modify database -d orcl -p '+DATA/spfileorcl.ora'
    4 srvctl config database -d orcl -a
    5 
    6 su - grid
    7 srvctl stop database -d orcl
    8 srvctl start database -d orcl
    复制代码


    6. 原因及解决

    这是为什么呢?实际上在RAC环境中,我们更多时候是用srvctl来管理RAC资源,而srvctl的信息来自ocr,
    包括spfile的位置信息。我们刚才那样做虽然修改了参数文件的位置,但是ocr并不知道,它还用原来的文件启动数据库。

    我们可以用srvctl查看数据库的配置信息来确认:

    复制代码
     1 [oracle@nhi-oa01 dbs]$ srvctl config database -d orcl -a
     2 Database unique name: orcl
     3 Database name: orcl
     4 Oracle home: /u01/app/oracle/product/11.2.0/db_1
     5 Oracle user: oracle
     6 Spfile: +ARCH/spfileorcl.ora
     7 Domain: 
     8 Start options: open
     9 Stop options: immediate
    10 Database role: PRIMARY
    11 Management policy: AUTOMATIC
    12 Server pools: orcl
    13 Database instances: orcl1,orcl2
    14 Disk Groups: DATA,ARC
    15 Mount point paths: 
    16 Services: 
    17 Type: RAC
    18 Database is enabled
    19 Database is administrator managed
    复制代码



    可以看到,SPFILE的位置指向是+ARCH。解决方法是通过srvctl修改SPFILE的位置。

    复制代码
     1 srvctl modify database -d orcl -p '+DATA/spfileorcl.ora'
     2 
     3 [oracle@nhi-oa01 dbs]$ srvctl config database -d orcl -a
     4 Database unique name: orcl
     5 Database name: orcl
     6 Oracle home: /u01/app/oracle/product/11.2.0/db_1
     7 Oracle user: oracle
     8 Spfile: +ARCH/spfileorcl.ora
     9 Domain: 
    10 Start options: open
    11 Stop options: immediate
    12 Database role: PRIMARY
    13 Management policy: AUTOMATIC
    14 Server pools: orcl
    15 Database instances: orcl1,orcl2
    16 Disk Groups: DATA,ARC
    17 Mount point paths: 
    18 Services: 
    19 Type: RAC
    20 Database is enabled
    21 Database is administrator managed
    复制代码


    7.总结

    在RAC环境下修改spfile:
    1. 需要修改$ORACLE_HOME/dbs下的相关文件,指向新文件
    2. 需要用srvctl修改config信息,指向新文件

  • 相关阅读:
    SQL Server 2005 出现“此数据库没有有效所有者”错误的解决方法
    使用swfupload出现SecurityError Error #2156问题
    读取Excel表
    POJ 1953 (DP)
    POJ 1050 (DP)
    POJ 1276 (DP)
    POJ 1579 (DP)
    HDOJ 4223 (DP)
    POJ 1080 (DP)
    POJ 1458 (DP)
  • 原文地址:https://www.cnblogs.com/shujuyr/p/13098302.html
Copyright © 2011-2022 走看看