`
mikixiyou
  • 浏览: 1098996 次
  • 性别: Icon_minigender_1
  • 来自: 南京
博客专栏
C3c8d188-c0ab-3396-821d-b68331e21226
Oracle管理和开发
浏览量:353155
社区版块
存档分类
最新评论

Oracle RAC一节点系统重做问题

阅读更多

Oracl RAC 10.2.0.4  两个节点,操作系统为Linux 的环境中,一节点服务器的本地硬盘突然全部损坏,停止运行。剩下的一个节点还能正常工作,继续提供对外数据库服务。

问题很清楚,硬盘损坏的服务器在操作系统重做后,如何添加到RAC 集群中去?

(墙内链接: http://mikixiyou.iteye.com/blog/1517628 )

Google 以及METALINK 上查了一下,倒是有完全一样的问题,但没有想要的答案。

其中在Oracle 官网讨论区有这样一个帖子,描述的情况同我的基本一致。

https://forums.oracle.com/forums/thread.jspa?threadID=1034528

Hello all. I have a two-node 10g R2 RAC with ASM patched to 10.2.0.4 running on RedHat AS4 x86_64. We recently had an accidental release of an Inergen fire suppression system at or collocation facility. This release caused many of our disks to fail causing issues for some of our systems. For the most part, we were very lucky having built-in redundancy across LUNs; however, we lost all 4 disks of local storage on Node1 of our two-node RAC.

...............

I appreciate any help, and I'm greatful for your time.

(老外有点比较好,最后都是感谢的话。)

有人给出这样的解决方法:

首先备份数据库,重做RAC ,再恢复。这样最干净,最靠谱,但也是最笨的,最耗时间的,需要很长的应用停机时间的解决方法。

这里我想到一种解决方法,可以在应用不停机的情况下快速恢复RAC 的两节点环境。

 

1.  解决过程

第一步,重做损坏服务器的操作系统,系统版本、参数啥的都保持一致。

第二步,配置环境。尤其是裸设备设置。这里是的udev 管理。确保新安装的节点能访问存储。

第三步,新建oracle 用户,注意uidgid 都要完全一致,配置互信机制。

第四步,在幸存的节点上tar -cvf  出所有的oracle 文件,主要是CRSRDBMS 文件。将tar 文件复制到新建节点上。到此,我们实现类似RAC 新安装过程中最后执行root.sh 前的所有操作。

 

第五步,我们在新节点上执行root.sh ,配置CRS

这个脚本我分析了很久,确认安全后执行的。将一些配置信息写入的/etc/init.d 等目录中。OCR 中因为已经有这个节点的资源了,所以会自动显示成功配置。

[root@webrac1 crs_1]# more root.sh

#!/bin/sh

/u01/app/oracle/product/10.2.0/crs_1/install/rootinstall

/u01/app/oracle/product/10.2.0/crs_1/install/rootconfig

 

[root@webrac1 crs_1]# ./root.sh

WARNING: directory '/u01/app/oracle/product/10.2.0' is not owned by root

WARNING: directory '/u01/app/oracle/product' is not owned by root

WARNING: directory '/u01/app/oracle' is not owned by root

Checking to see if Oracle CRS stack is already configured

/etc/oracle does not exist. Creating it now.

 

Setting the permissions on OCR backup directory

Setting up NS directories

Oracle Cluster Registry configuration upgraded successfully

WARNING: directory '/u01/app/oracle/product/10.2.0' is not owned by root

WARNING: directory '/u01/app/oracle/product' is not owned by root

WARNING: directory '/u01/app/oracle' is not owned by root

clscfg: EXISTING configuration version 3 detected.

clscfg: version 3 is 10G Release 2.

Successfully accumulated necessary OCR keys.

Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.

node <nodenumber>: <nodename> <private interconnect name> <hostname>

node 1: webrac1 webrac1-priv webrac1

node 2: webrac2 webrac2-priv webrac2

clscfg: Arguments check out successfully.

 

NO KEYS WERE WRITTEN. Supply -force parameter to override.

-force is destructive and will destroy any previous cluster

configuration.

Oracle Cluster Registry for cluster has already been initialized

Startup will be queued to init within 30 seconds.

Adding daemons to inittab

Expecting the CRS daemons to be up within 600 seconds.

CSS is active on these nodes.

        webrac1

        webrac2

CSS is active on all nodes.

Waiting for the Oracle CRSD and EVMD to start

Oracle CRS stack installed and running under init(1M)

Running vipca(silent) for configuring nodeapps

 

  (0)  节点上创建   VIP  应用程序资源 .

  (0)  节点上创建   GSD  应用程序资源 .

  (0)  节点上创建   ONS  应用程序资源 .

启动   (2)  节点上的   VIP  应用程序资源   ...

启动   (2)  节点上的   GSD  应用程序资源 ...

启动   (2)  节点上的   ONS  应用程序资源 ...

 

Done.

 

第六步,修改配置文件/etc/oratab

这个文件从幸存节点拷贝过来,修改一下属性和内容。

[root@webrac2 archivelog]# scp /etc/oratab webrac1:/etc/

root@webrac1's password:

oratab                                                                                       

               100%  766     0.8KB/s   00:00   

[root@webrac2 archivelog]#

 

 

[root@webrac1 etc]# chown -R oracle:root oratab

[root@webrac1 etc]# ls -ltr oratab

-rw-r--r-- 1 oracle root 766 05-08 17:12 oratab

[root@webrac1 etc]# vi oratab

#

+ASM1:/u01/app/oracle/product/10.2.0/db_1:N

webdb:/u01/app/oracle/product/10.2.0/db_1:N

~

 

第七步,执行RDBMS 下的root.sh

[root@webrac1 db_1]# ./root.sh

Running Oracle10 root.sh script...

 

The following environment variables are set as:

    ORACLE_OWNER= oracle

    ORACLE_HOME=  /u01/app/oracle/product/10.2.0/db_1

 

Enter the full pathname of the local bin directory: [/usr/local/bin]:

   Copying dbhome to /usr/local/bin ...

   Copying oraenv to /usr/local/bin ...

   Copying coraenv to /usr/local/bin ...

 

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root.sh script.

Now product-specific root actions will be performed.

 

第八步,修改配置文件$ORACLE_HOME/network/admin/listener.ora

原来的监听器文件的配置是基于节点2 的,所有这里修改成符合节点1 的。这个修改很容易。

LISTENER_WEBRAC1 =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS_LIST =

        (ADDRESS = (PROTOCOL = TCP)(HOST = webrac1-vip)(PORT = 1521)(IP = FIRST))

      )

      (ADDRESS_LIST =

        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.42)(PORT = 1521)(IP = FIRST))

      )

      (ADDRESS_LIST =

        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))

      )

    )

  )

 

第九步,修改配置文件$ORACLE_HOME/dbs 下的spfile 文件和密码文件,对象为ASM 实例和数据库实例。

只要修改一下文件名称就可以,例如:

cp orapw+ASM2 orapw+ASM1

cp spfile+ASM2.ora spfile+ASM1.ora

 

第十步,使用crs_start -all 启动所有资源。

经过这十步,新系统被快速加入到RAC 中。整个过程中,不需要停数据库服务。

 

[oracle@webrac1 ~]$  crs_stat -t

名称             类型              目标        状态        主机        

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

ora.webdb.db   application    ONLINE    ONLINE    webrac2    

ora....ebdb.cs application    ONLINE    ONLINE    webrac2    

ora....db1.srv application    ONLINE    ONLINE    webrac2    

ora....b1.inst application    ONLINE    ONLINE    webrac1    

ora....b2.inst application    ONLINE    ONLINE    webrac2    

ora....SM1.asm application    ONLINE    ONLINE    webrac1    

ora....C1.lsnr application    ONLINE    ONLINE    webrac1    

ora....ac1.gsd application    ONLINE    ONLINE    webrac1    

ora....ac1.ons application    ONLINE    ONLINE    webrac1    

ora....ac1.vip application    ONLINE    ONLINE    webrac1    

ora....SM2.asm application    ONLINE    ONLINE    webrac2    

ora....C2.lsnr application    ONLINE    ONLINE    webrac2    

ora....ac2.gsd application    ONLINE    ONLINE    webrac2    

ora....ac2.ons application    ONLINE    ONLINE    webrac2    

ora....ac2.vip application    ONLINE    ONLINE    webrac2    

[oracle@webrac1 ~]$

2.  总结

这个问题关键点在于 $CRS 目录中 root.sh 文件,这个文件在 /etc 等目录下创建了一些文件。这些文件,如果你很清楚,也可以手工去创建。

RAC 整个环境都是正常的, OCR 配置在存储上正常访问,所以问题本质上也就是配置配置访问链接。

2
2
分享到:
评论

相关推荐

    在vmwarevsphereesxi上安装oracleRAC.docx

    #### 五、准备第一个RAC节点虚拟机 ##### 5.1 创建虚拟机 - **选择模板**: 使用已有的模板或手动创建。 - **资源分配**: 分配足够的CPU、内存和磁盘空间。 ##### 5.2 添加两个网卡 - **公共网卡**: 用于客户端连接...

    Oracle RAC恢复到单机方案-仅有一个全备

    ### Oracle RAC恢复到单机方案—仅有一个全备 #### 概述 在Oracle Real Application Clusters (RAC)环境中,当面临只有历史全备(热备)且无增量备份和归档备份的情况下,若需要将数据恢复到单机环境,会面临一定...

    oracle rac for vmware

    - 准备第一个RAC节点的虚拟机,包括创建、添加网络接口卡(NIC)、安装操作系统和VMware Tools。 - 克隆后续的虚拟机/ RAC节点,并进行必要的定制,如修改主机名、IP地址、配置集群服务(CS)和投票盘。 - 安装...

    Expert Oracle RAC Performance Diagnostics and Tuning

    这是一套系统化的方法,用于识别、分析并解决Oracle RAC环境中的性能问题。 - **性能诊断流程**:包括定义性能目标、收集性能数据、分析性能瓶颈、实施解决方案及验证结果等关键步骤。 - **工具和技术**:介绍了一...

    ORACLE RAC教程

    3. **资源共享**:所有节点共享同一个数据库,包括数据文件、控制文件和重做日志文件等,这使得系统资源得到充分利用。 4. **可扩展性**:可以通过增加新的节点来轻松扩展系统能力,而无需停机或重新配置现有系统。 ...

    oracle rac 原理

    Oracle RAC(Real Application Clusters)是Oracle数据库的一项高级特性,它允许多个实例同时访问同一个物理数据库,从而实现高可用性和高性能。Oracle RAC通过共享存储和集群软件协调各个节点,确保数据的一致性和...

    原创实战Oracle RAC rman恢复

    Oracle RAC(Real Application Clusters)是Oracle数据库的一个高级特性,它允许多个实例同时访问同一个物理数据库,提供高可用性和负载均衡。RMAN(Recovery Manager)是Oracle数据库提供的一个强大工具,用于...

    Oracle 12C RAC环境安装文档.docx_oracle_oracleRAC_

    这通常包括多台服务器(节点)、共享存储、高速网络连接(如InfiniBand或10Gbps Ethernet)以及支持Oracle RAC的操作系统,如Red Hat Enterprise Linux或Oracle Linux。 二、网络配置 Oracle RAC依赖于复杂的网络...

    PERFORMANCE TUNING ORACLE RAC ON LINUX

    在IT领域,尤其是在数据库管理与优化方面,Oracle Real Application Clusters (RAC) 在Linux操作系统上的性能调优是一项复杂而关键的任务。本文将基于提供的文件信息,深入探讨Oracle RAC在Linux环境下的性能调优...

    Oracle_RAC知识汇总.docx

    Oracle RAC,全称Real Application Clusters,是Oracle数据库的一项高级特性,旨在提供高可用性和可伸缩性。Oracle RAC允许多台服务器共享同一数据库,分担工作负载,提高系统的整体性能和容错能力。 一、Oracle ...

    oracle 装RAC必备软件包

    7. **安装Oracle数据库软件**:在所有RAC节点上安装相同的数据库软件,配置成共享数据库实例。 8. **配置数据库实例和RAC服务**:设置数据库参数,启动并注册实例到Clusterware,定义RAC服务。 9. **测试和验证**...

    Oracle RAC安装图解

    9. **数据库实例创建**:在所有RAC节点上完成数据库实例的创建,包括全局数据库名、SID、OCR(Oracle Cluster Registry)和 Voting Disks的配置。 10. **网络配置**:Oracle RAC需要配置私有网络(Interconnect)...

    在 Linux x86 上安装 Oracle RAC 10g

    3. **共享磁盘**:Oracle RAC 的数据库文件、联机重做日志和控制文件必须存储在所有节点都能访问的共享磁盘上。这可以通过多种方式实现,如直连存储、SAN 或 NAS。 4. **专用网络**:集群节点之间需要一个专用网络...

    Oracle_RAC_最佳实践

    Oracle Real Application Clusters(RAC)是Oracle数据库产品线中的一个关键组件,旨在为大型企业级应用提供高可用性、灵活性以及高性能的解决方案。RAC通过允许多个数据库实例同时访问共享存储上的同一个数据库,...

    OracleRAC汇总.doc

    1. **实例(Instance)**:每个节点都有一个独立的实例,拥有自己的系统全局区(SGA)、后台进程、重做日志和回滚表空间。 2. **全局缓存服务(Global Cache Service)**:所有实例共享数据文件和控制文件,每个实例...

    Oracle rac

    1. **负载均衡**:通过将数据库查询和事务处理分布在多个节点上,Oracle RAC 能够有效地平衡各个节点的工作负载,提高整个系统的处理能力。 2. **高可用性**:通过无缝切换和故障恢复机制,Oracle RAC 可以将硬件...

    oracle RAC题库

    题目4: 您应该将调用脚本放在RAC节点上的哪个目录? - **答案解析**:选项 B “$ORA_CRS_HOME/racg/usrco/”是正确的。 - A选项:“$ORACLE_HOME/opmn/conf/” — 通常用于存放Oracle进程管理的相关配置文件。 -...

    深入理解Oracle_RAC_12c_PDF_带书签目录 完整版.pdf

    4. 集群件:Oracle RAC需要一个可靠的集群件来管理集群中的节点和资源,确保它们的状态同步和故障转移。Oracle Grid Infrastructure为RAC提供集群件支持,包括集群同步服务(CSS)、集群注册服务(CRS)和高可用性...

    Installing Oracle RAC 10g Release 2 on Linux x86(中)

    2. **配置Linux for Oracle**:调整系统设置以满足Oracle RAC的需求,如内核参数、网络配置等。 3. **准备共享磁盘**:配置共享存储,创建OCR和Voting Disk。 4. **安装Oracle RAC软件**:使用OUI在各节点上进行软件...

Global site tag (gtag.js) - Google Analytics