• Oracle RAC 修改 spfile 文件位置


    在RAC下spfile位置的修改与单节点环境不完全一致,有些地方需要特别注意,否则可能修改会失败。 下面用一个例子说明:SPFILE放在ASM中一个不正确的目录(+ARCH)中,现在想把它放在另外一个目录(+DBSYS)下。 以下是具体步骤: 1.原spfile位置 SQLshowparameter

    在RAC下spfile位置的修改与单节点环境不完全一致,有些地方需要特别注意,否则可能修改会失败。
    下面用一个例子说明:SPFILE放在ASM中一个不正确的目录(+ARCH)中,现在想把它放在另外一个目录(+DBSYS)下。
    以下是具体步骤:

    1. 原spfile位置

    SQL> show parameter spfile

    NAME TYPE VALUE

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

    spfile string +ARCH/dwrac/spfiledwrac.ora

    2. 拷贝spfile到其他目录

    由于在ASM中,不能直接cp,需要通过迂回的办法实现。

    sys@dwrac2> create pfile='/tmp/pfile.ora' from spfile;

    File created.

    sys@dwrac2> create spfile='+DBSYS/dwrac/spfiledwrac.ora' from pfile='/tmp/pfile.ora';

    File created.

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

    [oracle@dwdb04 dbs]$ vi initdwrac2.ora

    SPFILE='+ARCH/dwrac/spfiledwrac.ora'

    ==>

    SPFILE='+DBSYS/dwrac/spfiledwrac.ora'

    4. 通过sqlplus方式重启实例

    sys@dwrac2> shutdown immediate

    Database closed.

    Database dismounted.

    ORACLE instance shut down.

    sys@dwrac2> startup

    ORACLE instance started.

    Total System Global Area 5.2429E+10 bytes

    Fixed Size 2193872 bytes

    Variable Size 3707766320 bytes

    Database Buffers 4.8671E+10 bytes

    Redo Buffers 48136192 bytes

    Database mounted.

    Database opened.

    sys@dwrac2> show parameter spfile

    NAME TYPE VALUE

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

    spfile string +DBSYS/dwrac/spfiledwrac.ora

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

    5. 但是如果用过srvctl重启数据库,

    发现spfile又变回来了:

    [oracle@dwdb02 dbs]$ srvctl stop instance -d dwrac -i dwrac1,dwrac2,dwrac3,dwrac4

    [oracle@dwdb02 dbs]$ srvctl start instance -d dwrac -i dwrac1,dwrac2,dwrac3,dwrac4

    [oracle@dwdb02 dbs]$ sqlplus "/as sysdba"

    sys@dwrac2> show parameter spfile

    NAME TYPE VALUE

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

    spfile string +ARCH/dwrac/spfiledwrac.ora

    6. 原因及解决

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

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

    [oracle@dwdb01 dbs]$ srvctl config database -d dwrac -a

    dwdb01 dwrac1 /oracle/product/10.2.0/db

    dwdb02 dwrac2 /oracle/product/10.2.0/db

    dwdb03 dwrac3 /oracle/product/10.2.0/db

    dwdb04 dwrac4 /oracle/product/10.2.0/db

    DB_UNIQUE_NAME: dwrac

    DB_NAME: dwrac

    ORACLE_HOME: /oracle/product/10.2.0/db

    SPFILE: +ARCH/dwrac/spfiledwrac.ora

    DOMAIN: null

    DB_ROLE: null

    START_OPTIONS: null

    POLICY: AUTOMATIC

    ENABLE FLAG: DB ENABLED

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

    [oracle@dwdb01 dbs]$ srvctl modify database -d dwrac -p '+DBSYS/dwrac/spfiledwrac.ora'

    [oracle@dwdb01 dbs]$ srvctl config database -d dwrac -a

    dwdb01 dwrac1 /oracle/product/10.2.0/db

    dwdb02 dwrac2 /oracle/product/10.2.0/db

    dwdb03 dwrac3 /oracle/product/10.2.0/db

    dwdb04 dwrac4 /oracle/product/10.2.0/db

    DB_UNIQUE_NAME: dwrac

    DB_NAME: dwrac

    ORACLE_HOME: /oracle/product/10.2.0/db

    SPFILE: +DBSYS/dwrac/spfiledwrac.ora

    DOMAIN: null

    DB_ROLE: null

    START_OPTIONS: null

    POLICY: AUTOMATIC

    ENABLE FLAG: DB ENABLED

    [oracle@dwdb01 dbs]$ srvctl stop database -d dwrac

    [oracle@dwdb01 dbs]$ srvctl start database -d dwrac

    sys@dwrac2> show parameter spfile

    NAME TYPE VALUE

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

    spfile string +DBSYS/dwrac/spfiledwrac.ora

    可以看到,此时Oracle是用新的spfile启动的。

    总结一下,在RAC环境下修改spfile:

    1. 需要修改$ORACLE_HOME/dbs下的相关文件,指向新文件

    2. 需要用srvctl修改config信息,指向新文件

    (责任编辑:admin)
    喜欢请赞赏一下啦^_^

    微信赞赏

    支付宝赞赏

  • 相关阅读:
    Ping pong
    [NOIp2015普及组]推销员
    [模板]树状数组
    [洛谷201704R1]开心派对小火车
    洛谷P3515 [POI2011]Lightning Conductor(决策单调性)
    bzoj1560:[JSOI2009]火星藏宝图(斜率优化)
    (转载)行走在镜面的边缘
    洛谷P4360 [CEOI2004]锯木厂选址(斜率优化)
    洛谷P4072 [SDOI2016]征途(斜率优化)
    洛谷P3648 [APIO2014]序列分割(斜率优化)
  • 原文地址:https://www.cnblogs.com/lkj371/p/15292966.html
Copyright © 2020-2023  润新知