zoukankan      html  css  js  c++  java
  • 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)
    喜欢请赞赏一下啦^_^

    微信赞赏

    支付宝赞赏

  • 相关阅读:
    Firemonkey 控件设定字型属性及颜色
    ListView 使用 LiveBindings 显示超过 200 条记录
    Firemonkey ListView 获取项目右方「>」(Accessory) 事件
    XE7 Update 1 选 iOS 8.1 SDK 发布 iPhone 3GS 实机测试
    Firemonkey Bitmap 设定像素颜色 Pixel
    Firemonkey 移动平台 Form 显示使用 ShowModal 范例
    XE7 提交 App(iOS 8)提示「does not contain the correct beta entitlement」问题修复
    XE7 Android 中使用 MessageDlg 范例
    导出 XE6 预设 Android Style (*.style) 档案
    修正 Memo 設定為 ReadOnly 後, 無法有複製的功能
  • 原文地址:https://www.cnblogs.com/lkj371/p/15292966.html
Copyright © 2011-2022 走看看