随着RAC在国内的流行,出现了不少将原本单节点数据库转换成RAC的需求;事实上这种single instance到RAC的转换并不困难,可以直接在原有单节点数据库上修改一些初始化参数并运行脚本来完成转换;这里我们通过实例向大家展示转换工作的大致步骤和注意事项。 示例环境中的节点名与示例名对应关系如下,注意Instance Name为PROD21和PROD22。

Node Name Instance Name DB NAME
vrh1 PROD21 PROD2
vrh2 PROD22 PROD2

以下操作均应当在1号节点上完成 一、在各节点上安装clusterware,并确保CRS正常启动;针对clusterware的安装在这里不做展开

[oracle@vrh1 u01]$ crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy/* 应当确保所有RAC节点上的CRS均正常启动 */[oracle@vrh1 u01]$ crsctl query crs activeversion
CRS active version on the cluster is [10.2.0.4.0]

二、在各个节点上以Real Application Cluster选项安装Oracle Database Software软件,一般我们要求DB的版本要与clusterware的版本一致,所以如我们的环境中CRS的版本是10.2.0.4.0,那么DB的版本最好也是10.2.0.4.0;Database Software可以安装在共享存储上(shared storage),也可以是各节点上独立的文件系统上; 同时我们有必要修改一系列的环境变量如ORACLE_HOME、LD_LIBRARY_PATH到新软件的相应目录下,以及为RAC设置Oracle所推荐的一些操作系统内核参数如net.core.wmem_max等; 三、从新安装的DB Software目录下启动Netca工具,为Cluster配置新的Listener监听器;在完成新Listener的配置后;最终将老的单节点的Listener关闭掉 四、备份原单节点的数据库,并将之还原到今后RAC使用的共享存储(shared storage)上;如果今后使用ASM作为共享存储方案的话,那么可以 参考文档Note 452758.1 <How to Convert a Single-Instance ASM to Cluster ASM> 五、备份原单节点实例的参数文件,并加入下列参数:

*.cluster_database = TRUE
*.cluster_database_instances = 2
*.undo_management=AUTO
<SID1>.undo_tablespace=undotbs (undo tablespace which already exists)
<SID1>.instance_name=<SID1>
<SID1>.instance_number=1
<SID1>.thread=1
<SID1>.local_listener=<LISTENERNAME>_<HOSTNAME1>
<SID2>.instance_name=<SID2>
<SID2>.instance_number=2
<SID2>.local_listener=<LISTENERNAME>_<HOSTNAME2>
<SID2>.thread=2
<SID2>.undo_tablespace=UNDOTBS2
<SID2>.cluster_database = TRUE
<SID2>.cluster_database_instances = 2如在我们的示例环境中:SQL> create pfile from spfile;
File created.[oracle@vrh1 u01]$ cd $ORACLE_HOME/dbs[oracle@vrh1 dbs]$ cp initPROD2.ora initPROD2.ora.bak/* 以上备份了pfile形式的参数文件 */*.cluster_database = TRUE
*.cluster_database_instances = 2
*.undo_management=AUTO
PROD21.undo_tablespace=undotbs
PROD21.instance_name=PROD21
PROD21.instance_number=1
PROD21.thread=1
PROD21.local_listener=LISTENERPROD22.instance_name=PROD22
PROD22.instance_number=2
PROD22.local_listener=LISTENER
PROD22.thread=2PROD22.undo_tablespace=undotbs2
PROD22.cluster_database= TRUE
PROD22.cluster_database_instances= 2/* 以上为示例环境中我们加入参数文件的RAC相关initial parameter */

如之前说明的<SID1>对应于<DB_NAME>1; 而<SID2>对应于<DB_NAME>2;因为这里的DB_NAME为PROD2,所以2个实例的名字为PROD21和PROD22,希望不会造成你的困惑。 六、修改参数文件中的"control_files"参数即将控制文件指向到新的共享存储的路径下 七、从pfile的文本参数文件上创建Server parameter file即SPFILE;如果我们将来不使用共享的SPFILE的话,那么因为原单节点上的实例名从原来的PROD2装换成PROD21,所以这里spfile的名字应当是spfilePROD21.ora;如果我们希望使用共享的SPFILE的话,则follow下一个步骤

SQL> create spfile='?/dbs/spfilePROD2.ora' from pfile='?/dbs/initPROD2.ora';
File created.

八、一般我们使用共享的SPFILE,那么就要将以上创建的SPFILE拷贝到共享存储上,并在本地的ORACLE_HOME/dbs/initSID.ora参数文件中留下共享SPFILE的路径:

[oracle@vrh1 dbs]$ cp spfilePROD2.ora /share1[oracle@vrh1 dbs]$ cat initPROD21.ora
spfile='/share1/spfilePROD2.ora'

九、以新的SID为实例创建密码文件:

[oracle@vrh2 dbs]$ cd $ORACLE_HOME/dbs
[oracle@vrh1 dbs]$ orapwd file=orapwPROD21 password=oracle entries=10

十、启动实例到mount状态 [oracle@vrh1 dbs]$ echo $ORACLE_SID PROD21 SQL> startup mount; ORACLE instance started. Total System Global Area 629145600 bytes Fixed Size 1269016 bytes Variable Size 318767848 bytes Database Buffers 301989888 bytes Redo Buffers 7118848 bytes Database mounted. 十一、注意将数据文件(datafile),在线日志文件(redo log)重命名(rename)到共享设备上,如:

SQL> select member from v$logfile;MEMBER
--------------------------------------------------------------------------------
/share1/redo01.log
/share1/redo02.log
/share1/redo03.logSQL> alter database rename file '/share1/redo01.log' to '/u01/redo01.log';
Database altered.SQL>  alter database rename file '/share1/redo02.log' to '/u01/redo02.log';
Database altered.
....................../* 不要忘记临时文件 */SQL> select name from v$tempfile;NAME
--------------------------------------------------------------------------------
/share1/temp01.dbfSQL> alter database rename file '/share1/temp01.dbf' to '/u01/temp01.dbf';
Database altered.

十二、加入2号线程的重做日志组,并启用2号线程

SQL> alter database add logfile thread 2 group 4 '/u01/redo04.log' size 50M;
Database altered.
SQL> alter database add logfile thread 2 group 5 '/u01/redo05.log' size 50M;
Database altered.SQL> alter database enable public thread 2;
Database altered.............

十三、从1号节点打开数据库,并创建供二号实例(或其他更多实例)使用的撤销表空间UNDO TABLESPACE:

SQL> alter database open;
Database altered.SQL>  CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE '/u01/undotbs02.dbf' size 100M;
Tablespace created.

十四、从1号节点上运行?/rdbms/admin/catclust.sql脚本创建cluster相关的视图:

SQL> @?/rdbms/admin/catclust
...........Grant succeeded.Synonym created.PL/SQL procedure successfully completed.

以下操作应当在2号或其他更多节点上执行 十五、在2号节点上设置合理的ORACLE_HOME(指向新安装的DB软件目录)和ORACLE_SID(我们的环境中为PROD22)环境变量;你可能还需要为2号实例创建必要的audit_file_dest审计文件存放目录和background_dump_dest后台转储文件存放目录等,如果实例无法正确获取这些目录可能出现"ORA-09925: Unable to create audit trail file"错误。如步骤2所述也需要在2号节点上配置推荐的操作系统内核参数等。 十六、创建$ORACLE_HOME/dbs/initSID.ora PFILE参数文件指向共享的SPFILE文件,如步骤8所示

[oracle@vrh2 ~]$ echo $ORACLE_SID
PROD22[oracle@vrh2 ~]$ cd $ORACLE_HOME/dbs[oracle@vrh2 dbs]$ cat initPROD22.ora
spfile='/u01/spfilePROD2.ora'

十七、在2号节点上创建形如orapwSID的密码文件:

[oracle@vrh2 dbs]$ cd $ORACLE_HOME/dbs
[oracle@vrh2 dbs]$ orapwd file=orapwPROD22 password=oracle entries=10

十八、启动2号节点的实例,并打开数据库:

SQL> startup mount;
ORACLE instance started.Total System Global Area  629145600 bytes
Fixed Size                  1269016 bytes
Variable Size             318767848 bytes
Database Buffers          301989888 bytes
Redo Buffers                7118848 bytes
Database mounted.SQL> alter database open;
Database altered.SQL> select instance_name,status from gv$instance;INSTANCE_NAME    STATUS
---------------- ------------
PROD22           OPEN
PROD21           OPEN

以上完成了对单节点数据库到RAC数据库的转换,但该RAC数据库的资源尚未注册到OCR中,因此无法使用例如srvctl、crs_stat等命令配置或监控这些资源,我们需要手动将这些资源加入到OCR中。 以下操作在任意一节点上完成即可:

srvctl add database -d <database name> -o <ORACLE_HOME path> -p <spfile location and name>srvctl add instance -d <database name> -i <instance 1 name> -n <node 1 name >srvctl add instance -d <database name> -i <instance 2 name> -n <node 2 name >如在我们的示例环境中可以如下添加:
[oracle@vrh2 ~]$ srvctl add database -d PROD2 -o $ORACLE_HOME -p /u01/spfilePROD2.ora[oracle@vrh2 ~]$ srvctl add instance -d PROD2 -i PROD21 -n vrh1[oracle@vrh2 ~]$ srvctl add instance -d PROD2 -i PROD22 -n vrh2[oracle@vrh2 ~]$ crs_start ora.PROD2.db[oracle@vrh2 ~]$ crs_stat -t
Name

转载于:https://blog.51cto.com/maclean/1277749

Convert your single instance to 10g RAC by manual相关推荐

  1. oracle 10.2.0.4 rac emca,ORACLE 10G RAC升级10.2.0.4报错

    升级ORACLE CLUSTERWARE执行root102.sh时报如下错误: /usr/lib/hpux64/dld.so: Unable to find library 'libclntsh.so ...

  2. Oracle 10g RAC RMAN备份异机单实例恢复

    本文通过将Oracle 10g RAC RMAN的完整的备份进行异机恢复的过程,可以对在恢复的过程中可以发现备份时的一些问题.比如规档日志的冗余,控制文件与参数文件的自动备份的利用等,本示例是拿了rm ...

  3. Oracle 10g RAC修改IP/VIP地址示例

    一.准备工作 1. 数据库信息 操作系统版本  : OEL5.4 x64    数据库版本    : Oracle 10.2.0.5 x64 RAC 2. IP地址对应信息 说明: 服务器主机名不能更 ...

  4. oracle 云服务器cpu升级,Oracle 10g RAC 升级(CPU Update)之--升级CRS

    Oracle 10g RAC 升级(CPU Update)之--升级CRS 发布时间:2020-07-16 09:13:19 来源:51CTO 阅读:593 作者:客居天涯 Oracle 10g RA ...

  5. Oracle 10g RAC 升级(CPU Update)之--升级CRS

    Oracle 10g RAC 升级(CPU Update)之--升级CRS 系统环境: 操作系统:RedHat EL5 Cluster: Oracle CRS 10.2.0.1.0 Oracle:   ...

  6. oracle 10g rac数据库,oracle 10g rac安装报错集锦

    oracle 10g rac安装报错汇总 删除crs 1.      停止资源:关闭crs资源:crsctl stop resources 关闭crs:       crsctl stop crs 2 ...

  7. Oracle 10G RAC ASM - 控制文件多路存储

    10G RAC中将controlfile进行多元存放(非OMF格式) 1,确定control_files参数 SQL> show parameter control_files NAME     ...

  8. GoldenGate配置实例:RHEL 4.7下的Oracle 10g RAC到单实例的单向同步(一)

    环境 源端是一个RAC rac1 rac2: RHEL 4u7 + ORACLE 10.2.0.4 + ASM rac1 外网IP 192.168.47.241 虚拟IP 192.168.47.243 ...

  9. 原系统删除11g Rac后安装10g Rac中的问题处理

    最近在自己虚拟机中将原来的11g rac删除掉,打算在原来的系统中安装10g rac,结果遇到了一些问题,特此记录下: 首先说下安装执行root.sh报错后的处理(重新执行root.sh) #安装时出 ...

最新文章

  1. 知识图谱、深度学习、AutoML,推荐系统与新技术结合将碰撞出怎样的火花?
  2. 剑指offer64 不能使用乘除法、for、while、if、else、switch、case 求 1+2+...+n
  3. LINUX-Shell第一课
  4. ubuntu 14.04 安装redmine
  5. 2021年辽宁省大学生数学建模竞赛题目A题_智慧停车的运营、管理规划
  6. 1.Python算法之枚举算法
  7. [BUUCTF-pwn]——[BJDCTF 2nd]test
  8. OS- -I/O之盘和时钟
  9. vba 当前文件名_VBA代码解决方案第77讲内容:如何导出文件
  10. 洛谷1417烹调方案——动态规划:价值受时间影响
  11. 信息学奥赛一本通 提高篇 第一部分 基础算法 第2章 二分与三分
  12. 【Spring 工厂】注入详解 — Set注入(JDK内置类型,用户自定义类型)、构造注入(重载)
  13. SpringMvc之参数绑定注解详解之一
  14. [ios]ios读写文件本地数据
  15. twm配置文件.twmrc
  16. win10安装双系统ubuntu
  17. is与==的恩怨、编码的详解
  18. 周志华教授:如何做研究与写论文?
  19. 3D格式转换工具HOOPS Exchange最全技术指南(三):4大功能特征与典型使用场景
  20. 自媒体游戏领域视频素材在哪找?这几种找素材方法你可以收藏

热门文章

  1. iOS 逆向 - 收藏集 - 掘金
  2. notifier chain — 内核通知链【转】
  3. Android的logger机制分析
  4. MOQL--操作数(Operand) (四)
  5. 【DP】LeetCode 85. Maximal Rectangle
  6. torch.nn.Module.eval
  7. 【Oracle】SQLPLUS命令
  8. jQuery静态方法(each、map、isFunction, isWindow, isArray, .trim(), .holdReady())
  9. Spark之MLlib
  10. javascript 日常