情况介绍:拆分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
这个是删除的命令