情况介绍:拆分rac节点2,在执行$GRID_HOME/deinstall ./deinstall -local时候(提示在节点2上执行1个命令,彻底铲除节点2信息)的时候把命令在节点1上执行了

命令是这个:


/tmp/deinstall2023-06-30_01-04-42AM/perl/bin/perl -I/tmp/deinstall2023-06-30_01-04-42AM/perl/lib -I/tmp/deinstall2023-06-30_01-04-42AM/crs/install /tmp/deinstall2023-06-30_01-04-42AM/crs/install/rootcrs.pl -force  -deconfig -paramfile "/tmp/deinstall2023-06-30_01-04-42AM/response/deinstall_Ora11g_gridinfrahome1.rsp"


执行完成后节点1开始停集群,并且报:successfully deconfigured oracle clusterware stack on this onde


节点1集群已停。



为了恢复节点1,作如下操作



1.删除节点1 /app/下所有的文件


cd /app  

rm -rf *


2.把节点2的grid软件推流到节点1



先执行忽略先前检查:

export IGNORE_PREADDNODE_CHECKS=Y

节点2执行:用grid用户,ORACLE_HOME/oui/bin路径下,运行如下命令: ./addNode.sh -silent "CLUSTER_NEW_NODES={ <NewNode > } CLUSTER_NEW_PRIVATE_NODE_NAMES={ <Interconnect >} CLUSTER_NEW_VIRTUAL_HOSTNAMES={ <VirtualHost Name >}"


./addNode.sh -silent "CLUSTER_NEW_NODES={XXXX} CLUSTER_NEW_PRIVATE_NODE_NAMES={XXXX2-priv} CLUSTER_NEW_VIRTUAL_HOSTNAMES={XXXX-vip}"

括号内分别是/etc/hosts里节点1的主机名和vip名字。注:在新建环境的时候主机名不允许有下划线,会导致新建环境,或者以后恢复节点过不了检查


3.根据提示在root下执行root.sh脚本,做完后执行更新集群信息./runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES={XXXX2}"


注:如果在推的时候报错有几个文件无法传输,ls看一下文件权限一般是属主不对,解决办法:

1.删除这几个文件。2.给grid.oinstall权限


crsctl stat res -t可以看到状态了



4.新建/app/oracle  /app/oracle/product/11.2.4/db目录授予属主,恢复oracle软件到节点1(同2)

./addNode.sh -silent "CLUSTER_NEW_NODES={hostname1}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={1-vip}"


我在这里恢复的时候报错,因为主机名有下划线,所以导致无法添加。所以用scp把/app/oracle/product/db/* 拷贝到了节点1

,做完后执行更新集群信息

./runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES={XXXX2}"


如果发生上面这个问题,

可以在节点2 exprot ORACLE_SID=sid1 然后去$ORACLE_HOME/dbs下cp init-sid2.ora init-sid1.ora  

然后sqlplus进去

startup  pfile=init-sid1.ora;

就可以在节点2上启动实例1,


然后

create /tmp/1.txt from pfile;

pfile传到节点1上

scp /tmp/1.txt oracle@10.XXX.XXX.XXX:/tmp/

节点1上 创建审计目录

adump/

startup nomount pfile =1.txt  

create spfile from memory;

shutdown immediate; startup

到此节点1集群和db都恢复了


目前节点2 db还没恢复可以用:

dbca -silent -addInstance -nodeList host02 -gdbName orcl -instanceName orcl2 -sysDBAUserName sys -sysDBAPassword oracle

把实例添加回去


dbca -silent -deleteInstance -nodeList host02 -gdbName PROD1 -instanceName PROD12 -sysDBAUserName sys -sysDBAPassword oracle

这个是删除的命令