- 浏览: 1087237 次
- 性别:
- 来自: 南京
博客专栏
-
Oracle管理和开发
浏览量:349674
最新评论
-
Simon.Ezer:
请问对于“如果非主键字段值发生改变,则不会同步过去”这种情况, ...
创建增量同步Oracle物化视图问题 -
dahai639:
挺好的,支持一下
Oracle的pipelined函数实现高性能大数据处理 -
zealotpz:
不错,原来是用户oracle 的所属组的问题
以sysdba身份登录oracle报ORA-1031权限不足错误之完美分析 -
mikixiyou:
zhangyuslam 写道如果担心全局索引失效,可以使用如下 ...
Oracle分区表的分区交互技术实现数据快速转移 -
sea0108:
...
Oracle sql loader使用速成
在Oracl RAC 10.2.0.4 两个节点,操作系统为Linux 的环境中,一节点服务器的本地硬盘突然全部损坏,停止运行。剩下的一个节点还能正常工作,继续提供对外数据库服务。
问题很清楚,硬盘损坏的服务器在操作系统重做后,如何添加到RAC 集群中去?
在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 用户,注意uid 和gid 都要完全一致,配置互信机制。
第四步,在幸存的节点上tar -cvf 出所有的oracle 文件,主要是CRS 和RDBMS 文件。将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 配置在存储上正常访问,所以问题本质上也就是配置配置访问链接。
发表评论
-
Oracle分区表的分区交互技术实现数据快速转移
2013-01-22 11:48 14677有一个需求,将某业务表的某个时间点之前的记录转移到它的历史 ... -
等待事件enq TX row lock contention分析
2013-01-17 17:16 33215在Oracle数据库性能报告AWRRPT分析时,发现top ... -
Oracle的UNDO表空间管理总结
2013-01-14 15:06 12890UNDO是Oracle中的一个很 ... -
Oracle在不同windows系统中的迁移
2013-01-09 15:41 3707在Windows操作系统环境下 ... -
Oracle 10.2.0.1在windows 2008上安装失败经历
2013-01-07 10:29 8629这两天遇到这个一个项目上的数据库迁移的问题。原来的环境是数据库 ... -
所有的物化视图刷新脚本
2012-12-28 13:59 0select 'execute dbms_mview.refr ... -
Oracle数据库的SQL性能问题分析
2012-12-27 15:31 5234在Oracle 10.2.0.4数据库中,有一个SQL执行缓慢 ... -
db block gets和consistent gets的分析
2012-12-26 18:09 0在Oracle的文档中有这样一段解释: db block g ... -
创建增量同步Oracle物化视图问题
2012-12-25 14:07 15185我们采用Oracle的物化视图增量刷新机制定时将数据库A上的某 ... -
查归档日志文件每小时生成量
2012-12-18 16:13 10727在O racle数据库中,通过v$archived_lo ... -
如何删掉临时表空间的文件
2012-12-18 15:40 0Unlike Oracle datafiles which m ... -
Oracle sql性能诊断暨event 10046和10053使用
2012-12-17 10:24 0早上em grid control监控显示数据库的负载增加,其 ... -
查LOB字段占用的空间大小
2012-12-13 16:00 4490查询Oracle表中LOB字段的占用空间大小。表中每一个LOB ... -
Oracle Data Guard的重做日志传输和应用状况监控
2012-12-04 14:05 4025这是一个用来监控Oracle Data Guard环境下从主库 ... -
Oracle sql loader使用速成
2012-11-30 14:14 4834Oracle SQL LOADER是Oracle的 ... -
Oracle 11g2的监听器配置
2012-11-29 14:34 4315Oracle的监听器服务注册 ... -
Deleting archivelog on physical standby with RMAN in Oracle 10g
2012-11-28 13:25 0Turns out to be quite easy ... -
to_char将number转成string的小技巧
2012-11-27 14:14 10571很多数据转换处理操作时,会遇到将0.007007040000转 ... -
to_date转成字符串时ORA-01843 not a valid month 问题分析
2012-11-26 16:38 29150(注,本文三度易稿) 在开发Oracle SQL或PL/SQL ... -
Data Guard 10g 的保护级别为RESYNCHRONIZATION问题
2012-11-25 11:01 1878Oracle的data guard创建完成 ...
相关推荐
ORACLE RAC 节点有关的操作 srvctl crs_stop crs_stat crsctl
实测oracle两节点rac11.2.0.1.0升级到11.2.0.4.0,能力有限,欢迎执指正
在多数业务中,Oracle 真正应用集群 (RAC) 配置的主要业务要求是整个系统中数据库层的可伸缩性 — 这样,当用户数增加时,可将额外实例添加到该集群来分发该负载。 在 Oracle RAC 10g 中,这个特定的功能已经变得...
Oracle RAC 删除节点配置手册
4 节点 ORACLE RAC 安装和配置
这个文档详细的记录了重启Oracle rac的每一个步骤,重启的方法很多,这个可能不是最适合你的,但这个是有效的,这个文档是我给外行看的
RAC-1 宕机,RAC-2正常,在RAC-2节点上,删除RAC-1节点步骤。
基于阿里云ECS环境及CentOS-linux 7.6系统环境下,安装部署Oracle 19C RAC双节点集群,每一步都很详细的说明了配置的方法和原因,白话文表述,小白也能轻松按照文档部署完成;
现在的RAC环境是2节点的RAC,节点是RAC1和RAC2,在本文档中,我们要添加一个节点:RAC3。
Oracle12c双节点RAC在Linux7环境下的部署,本文档适用对象为 DBA 或具备一定 Linux/Oracle 基础知识的人员, 对 Oracle ...操作系统下的 Oracle12.2.0.1 双节点 RAC 在 OEL 7.4 环境下的部署及初始化配置调整。
oracle rac (veritas)双机集群,一套机器挂了没发现,等两套都挂了才发现都是主板坏。。。
由重启引起的Oracle RAC节点宕机分析及追根溯源.docx
Linux 常用命令 oracle rac 中文手册 官网翻译 oracle rac
oracleRAC9 单节点安装文档
运维Oracle RAC 如果遇到故障,如何删除节点再添加节点,资源不足如何扩容,本篇文章告诉你。
Oracle RAC 操作系统安装 oracle RAC部署环境
oracle rac 不停机调整时间.txt
Oracle 11GR2 RAC节点crash故障分析
oracle 11G rac 双节点端口修改,在生产库上更改过,可行
基于Oracle RAC数据库集群系统研究与实现.pdf