Oracle篇—参数文件在11gRAC或12cRAC的启动位置介绍

💫《博主介绍》:✨又是一天没白过,我是奈斯,DBA一名✨

💫《擅长领域》:✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux,也在扩展大数据方向的知识面✌️

💖💖💖大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注💖💖💖

    今天给大家介绍一下参数文件在11gRAC和12cRAC的启动位置,因为在12c之后参数文件在单机环境没有发生变化,但是在rac环境中发生了变化,所以了解新版本的新改变是在之后的运维工作中是非常重要的。

    众所周知,在Oracle数据库启动的第一步(nomount状态)就会在$ORACLE_HOME/dbs目录下读取参数文件,并且数据库的设置、配置、优化都是在参数文件中完成的。读取参数文件会按照spfile<SID>.ora --> spfile.ora --> init<SID>.ora(同pfile.ora)的顺序依次寻找,如果按照顺序都没有找到参数文件,那么启动就会报错,当然也可以在启动时指定自定义的参数文件完成数据库的启动。

指定pfile启动:

[oracle@11g dbs]$ sqlplus / as sysdba
SQL> startup pfile='/路径/pfile.ora'

                      

指定spfile启动:Oracle的STARTUP命令本身不直接支持指定SPFILE路径启动,但可以通过先使用PFILE启动,并在PFILE中指定SPFILE位置的方式,间接实现使用特定SPFILE启动数据库的目的。

[oracle@11g dbs]$ vi pfile.ora
SPFILE=/路径/spfileorcl.ora
[oracle@11g dbs]$ sqlplus / as sysdba
SQL> startup pfile='/路径/pfile.ora'

    今天我将以修改参数文件位置案例的形式介绍一下11gRAC和12cRAC的启动位置。

    先介绍一下参数文件在11gRAC或12cRAC的启动位置的区别,然后再开始修改参数文件位置的学习。

11gRAC中参数文件的位置:

存在于每个节点的$ORACLE_HOME/dbs目录和OCR的数据库资源信息中。

       

12gRAC中参数文件的位置:

不存在与$ORACLE_HOME/dbs目录下,只存在于OCR的数据库资源信息中。

           

ps介绍一下OCR是什么:OCR是oracle cluster register集群注册表,包括了rac中集群和数据库的配置信息。信息包括集群节点的列表,集群数据库实例的节点的映射以及crs应用程序资源信息。

铁子别忘了点个关注!!!

f4df815e9acd4b3fb56b73351386533d.gif


                            

目录

一、11gRAC(11gR2)参数文件的管理和修改,11gRAC中参数文件的位置:先找init.ora,在由该文件所指向的ASM中的spfile

二、12cRAC(包含12c以后的所有版本)参数文件的管理和修改12cRAC中参数文件的位置:12c之后spfile信息只记录在OCR的数据库资源信息中


          

一、11gRAC(11gR2)参数文件的管理和修改,11gRAC中参数文件的位置:先找init<SID>.ora,在由该文件所指向的ASM中的spfile

    众所周知, 在集群环境下,参数文件是共享的 ,在11g中的oracle用户下每一个节点的$ORACLE_HOME/dbs目录下都存在一个init<SID>.ora文件,该文件用于指向共享存储中参数文件spfile的位置所以11gR2实例启动过程是先找init<SID>.ora在由该文件所指向的ASM中的spfile。

              

内容如下:

1)查看$ORACLE_HOME/dbs目录:

节点一:
[oracle@rac1 dbs]$ more initorcl1.ora
SPFILE='+DATA/orcl/spfileorcl.ora'

节点二:
[oracle@rac2 dbs]$ more initorcl2.ora
SPFILE='+DATA/orcl/spfileorcl.ora'

                     

2)查看OCR数据库资源信息:

任意节点:
[oracle@rac2 ~]$ srvctl config database -d orcl

9d1a53b345f44636a108925c66bdbd81.png

                  

修改11gRAC中参数文件的位置: 

    在11gRAC中修改参数文件位置时,不仅需要修改本地操作系统init<SID>.ora的spfile记录文件,也需要修改OCR(OCR是oracle cluster register集群注册表,包括了rac中集群和数据库的配置信息。信息包括集群节点的列表,集群数据库实例的节点的映射以及crs应用程序资源信息)中的数据库资源信息。

1)确定spfile的位置

节点一:
[oracle@rac1 dbs]$ more initorcl1.ora
SPFILE='+DATA/orcl/spfileorcl.ora'

节点二:
[oracle@rac2 dbs]$ more initorcl2.ora
SPFILE='+DATA/orcl/spfileorcl.ora'

任意节点:
[oracle@rac2 ~]$ srvctl config database -d orcl

                       

2)临时位置生成pfile

注意:RAC环境下严禁使用create pfile from spfile;会覆盖默认位置下pfile内容。也不可以使用create spfile from pfile,那么会覆盖掉spfile,需要指定具体的位置。

SQL> create pfile='/oracle/app/oracle/product/12.2/db_1/dbs/pfile.ora' from SPFILE='+DATA/orcl/spfileorcl.ora';

                      

3)新位置重新生成spfile

注意:pfile和spfile都需要指定目录。

ASMCMD> mkdir +DATA/orcl/SPFILE/

SQL> create SPFILE='+DATA/orcl/SPFILE/spfileorcl.ora' from pfile='/oracle/app/oracle/product/12.2/db_1/dbs/pfile.ora';

                           

4)修改pfile中spfile位置

节点一:
[oracle@rac1 dbs]$ vi initorcl1.ora
#SPFILE='+DATA/orcl/spfileorcl.ora'
SPFILE='+DATA/orcl/SPFILE/spfileorcl.ora'

节点二:
[oracle@rac2 dbs]$ vi initorcl2.ora
#SPFILE='+DATA/orcl/spfileorcl.ora'
SPFILE='+DATA/orcl/SPFILE/spfileorcl.ora'

       

5)修改OCR中spfile位置(是在oracle用户下的任意一个节点操作,不是grid用户下执行)

组件使用注意:

    1、rac的name(db_name、db_unique_name、instance_name、service_names)不要随便乱改。

    2、grid用户下可以执行crsctl、srvctl、ocr命令。oracle restart和rac是grid软件安装的一部分,所以执行命令时应在grid用户下进行

    3、oracle用户下只可以执行srvctl命令,集群实例的注册添加删除等只能在oracle用户下进行,在grid下注册集群实例报PRKH-1014 : Current user "grid" is not the oracle owner user "oracle" of oracle home "/oracle/app/oracle/product/11.2.0/db_1"。

[oracle@rac2 ~]$ srvctl modify database -d orcl -p '+DATA/orcl/SPFILE/spfileorcl.ora'
[oracle@rac2 ~]$ srvctl config database -d orcl

b837e04340b04e608fac1df3dff6dcbf.png

             

6)重启数据库并查看是否生效(oracle用户下只可以执行srvctl命令)

节点一:

[oracle@rac1 ~]$ srvctl stop instance -d orcl -i orcl1
[oracle@rac1 ~]$ srvctl start instance -d orcl -i orcl1
[oracle@rac1 ~]$ srvctl status instance -d orcl -i orcl1

SQL> show parameter spfile

1d7031769a69498baec014b7129a67bb.png

节点二:

[oracle@rac2 ~]$ srvctl stop instance -d orcl -i orcl2
[oracle@rac2 ~]$ srvctl start instance -d orcl -i orcl2
[oracle@rac2 ~]$ srvctl status instance -d orcl -i orcl2

SQL> show parameter spfile

f53435cda1ef4acea9abdded1d35d5ac.png

                           

二、12cRAC(包含12c以后的所有版本)参数文件的管理和修改12cRAC中参数文件的位置:12c之后spfile信息只记录在OCR的数据库资源信息中

    每个节点的$ORACLE_HOME/dbs目录下已经不存在init<SID>.ora文件。那么各个节点是如何找到共享盘中的spfile参数文件呢,或者说哪里记录了参数文件spfile位置信息。

    从12c开始,spfile信息只记录在OCR的数据库资源信息中 ,当数据库启动时,直接读取OCR中记录的spfile参数文件。

              

内容如下:

1)不存在于$ORACLE_HOME/dbs目录下:

          

2)查看OCR数据库资源信息:

任意节点:
[oracle@rac2 ~]$ srvctl config database -d orcl

0e47832c816b4e1281a49e69a0cb9fdb.png

                

修改12cRAC中参数文件的位置:

    在12cRAC中修改参数文件位置时,不需要修改本地操作系统init<SID>.ora的spfile记录文件,因为从12c开始,spfile信息只记录在OCR(OCR是oracle cluster register集群注册表,包括了rac中集群和数据库的配置信息。信息包括集群节点的列表,集群数据库实例的节点的映射以及crs应用程序资源信息)的数据库资源信息中,当数据库启动时,直接读取OCR中记录的spfile参数文件。

1)确定spfile的位置

[oracle@rac1 ~]$ srvctl config database -d orcl

             

2)临时位置生成pfile

注意:RAC环境下严禁使用create pfile from spfile;会覆盖默认位置下pfile内容。也不可以使用create spfile from pfile,那么会覆盖掉spfile,需要指定具体的位置。

SQL> create pfile='/oracle/app/oracle/product/12.2/db_1/dbs/pfile.ora' from SPFILE='+DATA/ORCL/PARAMETERFILE/spfile.268.1155580573';

                

3)新位置重新生成spfile

注意:pfile和spfile都需要指定目录。

ASMCMD> mkdir +DATA/orcl/SPFILE/

SQL> create SPFILE='+DATA/orcl/SPFILE/spfileorcl.ora' from pfile='/oracle/app/oracle/product/12.2/db_1/dbs/pfile.ora';

                

4)修改OCR中spfile位置(是在oracle用户下的任意一个节点操作,不是grid用户下执行)

组件使用注意:

    1、rac的name(db_name、db_unique_name、instance_name、service_names)不要随便乱改。

    2、grid用户下可以执行crsctl、srvctl、ocr命令。oracle restart和rac是grid软件安装的一部分,所以执行命令时应在grid用户下进行

    3、oracle用户下只可以执行srvctl命令,集群实例的注册添加删除等只能在oracle用户下进行,在grid下注册集群实例报PRKH-1014 : Current user "grid" is not the oracle owner user "oracle" of oracle home "/oracle/app/oracle/product/11.2.0/db_1"。

[oracle@rac2 ~]$ srvctl modify database -d orcl -p '+DATA/orcl/SPFILE/spfileorcl.ora'
[oracle@rac2 ~]$ srvctl config database -d orcl

1b748719a235488d9418540a5790eb36.png

          

5)重启数据库并查看是否生效(oracle用户下只可以执行srvctl命令)

节点一:

[oracle@rac1 ~]$ srvctl stop instance -d orcl -i orcl1
[oracle@rac1 ~]$ srvctl start instance -d orcl -i orcl1
[oracle@rac1 ~]$ srvctl status instance -d orcl -i orcl1

SQL> show parameter spfile

99dba65161fc4355a59774f1cf052047.png

节点二:

[oracle@rac2 ~]$ srvctl stop instance -d orcl -i orcl2
[oracle@rac2 ~]$ srvctl start instance -d orcl -i orcl2
[oracle@rac2 ~]$ srvctl status instance -d orcl -i orcl2

SQL> show parameter spfile

1f8c135b4c7b4e1aa363a6901433f0bd.png

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奈斯DB

打赏到账,我飘啦~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值