• oracle RAC和RACOneNode之间的转换


    Convert RAC TO RACOneNode

    1.查看资源状态

    [grid@rac01 ~]$ crsctl status res -t

    从这里看到,数据库的名字叫racdb

    2.查看实例

    [oracle@rac01 ~]$ srvctl status database -d racdb

    3.查看数据库详细信息

    [oracle@rac01 ~]$ srvctl config database -d racdb

    从上图中,可以看到数据库名,oracle_home,实例名,以及重要的TYPE为RAC

    4.删除实例(只留下一个,RACOneNode只有一个实例是活动状态)

    [oracle@rac01 ~]$ srvctl remove instance -d racdb -i racdb2 -f

    加上-f参数可以强制关闭实例并将实例删除

    5.新增一个service

    如果不新增service,无法进行转换

    新增service

    [oracle@rac01 ~]$ srvctl add service -h  --查看新增service的帮助
    [oracle@rac01 ~]$ srvctl add service -d racdb -s rac -r racdb1 -P BASIC -e SELECT -m BASIC -y AUTOMATIC
    [oracle@rac01 ~]$ srvctl start service -d racdb -s ra

    service名字为rac,偏爱racdb1这个实例,TFA类型为BASIC

    https://blog.csdn.net/xujinyang/article/details/6829647

    6.将rac转换为raconenode

    [oracle@rac01 ~]$ srvctl convert database -d racdb -c RACONENODE -i racdb1

    再次查看状态

    [oracle@rac01 ~]$ srvctl config database -d racdb

    这里可以看到TYPE是RACOneNode。Instance name prefix是实例的前缀,后续会生成racdb1_1和racdb1_2实例

    7.查看当前的实例名

    可以看到实例名没有变

    测试一下HA

    [oracle@rac01 ~]$ srvctl relocate database -d racdb -n rac02

    [oracle@rac01 ~]$ srvctl relocate database -d racdb -n rac01

    Convert RACOneNode TO RAC

    1.进行转换

    [oracle@rac01 ~]$ srvctl convert database -d racdb -c rac

    2.查看数据库信息

    [oracle@rac01 ~]$ srvctl config database -d racdb

    从这里可以看到TYPE是RAC

    3.新增实例

    [oracle@rac01 ~]$ srvctl add instance -d racdb -i racdb1_2 -n rac02

    4.启动实例

    [oracle@rac01 ~]$ srvctl start instance -d racdb -i racdb1_2

    5.再次查看数据库的状态

    [oracle@rac01 ~]$ srvctl config database -d racdb

    修改RAC的SPFILE路径

    在实际工作中,发现有一些RAC实例的SPFILE是在各自的ORACLE_HOME/dbs下,现在想将其修改到共享目录(asm磁盘)中

    RAC的实例和单实例启动相同,首先找ORACLE_HOME/dbs/spfileinstancename.ora,如果没有spfile,就会找ORACLE_HOME/dbs/initinstancename.ora,因此要修改,需要以下条件

    1.实例的ORACLE_HOME/dbs下没有spfile

    2.实例的ORACLE_HOME/dbs下的pfile中写入spfile的路径

    3.将spfile建入共享目录中

    1.将spfile建入共享目录中

    create pfile-'/tmp/pfile.txt' from spfile;
    create spfile='+ORADATA01/racdb/spfileracdb.ora' from pfile='/tmp/pfile.txt'

    2.将spfile的路径写入ORACLE_HOME/dbs/initracdb1.ora和ORACLE_HOME/dbs/initracdb2.ora中

    vi initracdb1.ora
    ----------------------------------
    SPFILE='+ORADATA01/racdb/spfileracdb.ora' 
    ----------------------------------
    vi initracdb2.ora
    ----------------------------------
    SPFILE='+ORADATA01/racdb/spfileracdb.ora' 
    ----------------------------------

    3.以上的修改并不会同步到RAC集群的配置文件中,因此需要修改

    srvctl modify database -d racdb -p '+ORADATA01/racdb/spfileracdb.ora'

    4.重启实例

    srvctl stop instance -d racdb -i racdb2
    srvctl start instance -d racdb -i racdb2
    srvctl stop instance -d racdb -i racdb1
    srvctl start instance -d racdb -i racdb1

    在启动racdb2的时候,可能会报如下错误

    ORA-01102: cannot mount database in EXCLUSIVE mode

    这是需要修改参数cluster_database=true即可

    alter system set cluster_database=true sid='*' scope=spfile;

    5.查看数据库状态

    srvctl config database -d racdb
  • 相关阅读:
    python
    图片放大,缩小等操作
    template-web.js 自定义过滤器
    python
    python
    Android Volley源码分析及扩展
    Android 6.0动态权限申请教程
    Jarsigner签名使用
    Python正则表达式(总)
    Python错误和异常概念(总)
  • 原文地址:https://www.cnblogs.com/monkey6/p/13524862.html
Copyright © 2020-2023  润新知