现有情况是恢复灾备环境的oracle集群备库,灾备端一直和主端做的数据同步,但是之前主端的三块OCR磁盘出现过故障,更换过磁盘,但是灾备端虽然一直做数据同步,但是只同步了DATA和FRA两个磁盘组。
如今需要使用灾备端来做测试,需要恢复灾备端的Oracle数据库集群使用。由于灾备端也更换了新的三块OCR存储,所以我们需要先铲除掉之前安装的集群和数据库软件,重新安装集群和软件之后挂上两个sam磁盘组,之后再在集群添加数据库或实例的配置信息。
强制关闭集群(2 个节点执行)
#(ROOT)
crsctl stop crs -f
ps -ef | grep grid
ps -ef | grep oracle
删除文件(2 个节点执行)
这里删除需要谨慎,我是把数据库集群文件都放在/opt/oracle目录下面,大家删除前要按自己的安装目录为主
#(ROOT)
rm -rf /opt/ora* --这里是我安装数据库集群软件目录
rm -rf /etc/ora*
rm -rf /usr/local/ora*
rm -rf /opt/ORCLfmap
rm -rf /etc/oraInst.loc
rm -rf /opt/ORCLfmap
rm -f /etc/init.d/init.cssd
rm -f /etc/init.d/init.crs
rm -f /etc/init.d/init.crsd
rm -f /etc/init.d/init.evmd
rm -f /etc/rc2.d/K96init.crs
rm -f /etc/rc2.d/S96init.crs
rm -f /etc/rc3.d/K96init.crs
rm -f /etc/rc3.d/S96init.crs
rm -f /etc/rc5.d/K96init.crs
rm -f /etc/rc5.d/S96init.crs
rm -rf /etc/oracle/scls_scr
rm -f /etc/inittab.crs
rm -f /etc/ohasd
rm -f /etc/oraInst.loc
rm -rf /tmp/.oracle
rm -rf /tmp/ora*
rm -rf /var/tmp/.oracle
rm -rf /tmp/CVU*
rm -rf /tmp/Ora*
rm -rf /home/grid/.oracle
rm -rf /usr/app/*
rm -rf /etc/init.d/init.ohasd
rm -rf /usr/local/bin/dbhome
rm -rf /usr/local/bin/oraenv
rm -rf /usr/local/bin/coraenv
rm -rf /etc/oratab
rm -rf /tmp/*oracle*
rm -rf /tmp/OraInst*
rm -rf /etc/systemd/system/oracle*
dd 磁盘(1 节点执行)
#(ROOT)
dd if=/dev/zero of=/dev/asm-ocr1 bs=1024 count=5000
dd if=/dev/zero of=/dev/asm-ocr2 bs=1024 count=5000
dd if=/dev/zero of=/dev/asm-ocr3 bs=1024 count=5000
确认磁盘清空(2 个节点执行)
#(ROOT)
hexdump -n 1024 -C /dev/asm-ocr1
hexdump -n 1024 -C /dev/asm-ocr2
hexdump -n 1024 -C /dev/asm-ocr3
重新创建 oracle 目录(2 个节点执行)
#(ROOT)
mkdir -p /opt/app/19/grid
mkdir -p /opt/app/grid
mkdir -p /opt/app/oracle/product/19/db_1 chown -R grid:oinstall /u01/app
chown -R oracle:oinstall /opt/app/oracle
chmod -R 775 /opt/app
然后从安装集群步骤开始重新搭建
集群安装可以参考一下文章
Centos 7.7下Oracle 11g RAChttps://blog.csdn.net/weixin_45833902/article/details/107176663
集群和数据库软件安装完毕后不需要安装数据库
需要先在两个节点挂载data和far两个asm磁盘组
#(GRID)
sqlplus / as sysasm
SQL > alter diskgroup data mount;
SQL > alter diskgroup fra mount;
添加数据库或实例的配置信息
#(ORACLE)
srvctl add database -d database_name -o oracle_home -p oracle_spfile
srvctl add instance -d tyyd -o /opt/oracle/app/oracle/product/19.0.0/db_1 -p +DATA/TYYD/PARAMETERFILE/SPFILE.268.11
这里-o是指$ORACLE_HOME(用来确定lsnrctl和Oracle等命令路径)
-p是指数据库启动的spfile文件位置
-d是数据库名称
向数据库添加实例
#(ORACLE)
srvctl add instance -d tyyd -i TYYD1 -n dcbjsora1
srvctl add instance -d tyyd -i TYYD2 -n dcbjsora1
这里-i 是数据库实例名字,要注意实例名的大小写
-n 是指两个节点的主机名
显示保存在SRVM配置文件中的配置信息
#(ORACLE)
srvctl config database -d tyyd
启动数据库
#(ORACLE)
srvctl start database -d tyyd