SQL> show parameter asm
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskgroups string ORADISK
asm_diskstring string
asm_power_limit integer 1
SQL> select path from v$asm_disk a, v$asm_diskgroup b where a.group_number=b.group_number and b.name = 'ORADISK';
PATH
--------------------------------------------------------------------------------
/dev/raw/raw8
/dev/raw/raw7
/dev/raw/raw6
[oracle@rac1 ~]$ ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 2
Total space (kbytes) : 524024
Used space (kbytes) : 4580
Available space (kbytes) : 519444
ID : 2087273591
Device/File Name : /dev/raw/raw1
Device/File integrity check succeeded
Device/File Name : /dev/raw/raw9
Device/File integrity check succeeded
Cluster registry integrity check succeeded
[oracle@rac1 ~]$ crsctl query css votedisk
0. 0 /dev/raw/raw3
1. 0 /dev/raw/raw4
2. 0 /dev/raw/raw10
located 3 votedisk(s).
[oracle@rac1 ~]$ more /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
# My Old Oracle RAC
192.168.9.1 rac1
192.168.9.2 rac2
192.168.27.1 rac1-priv
192.168.27.2 rac2-priv
192.168.9.11 rac1-vip
192.168.9.12 rac2-vip
# My New Oracle RAC
#192.168.19.1 racdb1
#192.168.19.2 racdb2
#192.168.127.1 racdb1-priv
#192.168.127.2 racdb2-priv
#192.168.19.11 racdb1-vip
#192.168.19.12 racdb2-vip
[oracle@rac1 ~]$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=none
BROADCAST=192.168.9.255
HWADDR=00:0C:29:DA:1C:48
IPADDR=192.168.9.1
NETMASK=255.255.255.0
NETWORK=192.168.9.0
ONBOOT=yes
GATEWAY=192.168.9.27
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
[oracle@rac1 ~]$ cat /etc/sysconfig/network-scripts/ifcfg-eth1
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth1
BOOTPROTO=none
BROADCAST=192.168.27.255
HWADDR=00:0C:29:DA:1C:52
IPADDR=192.168.27.1
NETMASK=255.255.255.0
NETWORK=192.168.27.0
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
[oracle@rac2 bin]$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
HWADDR=00:0c:29:74:40:28
NETMASK=255.255.255.0
IPADDR=192.168.9.2
GATEWAY=192.168.9.27
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
[oracle@rac2 bin]$ cat /etc/sysconfig/network-scripts/ifcfg-eth1
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
HWADDR=00:0c:29:74:40:32
TYPE=Ethernet
NETMASK=255.255.255.0
IPADDR=192.168.27.2
USERCTL=no
IPV6INIT=no
PEERDNS=yes
[root@rac1 ~]# olsnodes -p
rac1 rac1-priv
rac2 rac2-priv
[root@rac1 ~]# oifcfg getif
eth0 192.168.9.0 global public
eth1 192.168.27.0 global cluster_interconnect
[root@rac1 ~]# srvctl config nodeapps -n rac1 -a
VIP exists.: /rac1-vip/192.168.9.11/255.255.255.0/eth0
[root@rac1 ~]# srvctl config nodeapps -n rac2 -a
VIP exists.: /rac2-vip/192.168.9.12/255.255.255.0/eth0
[root@rac1 ~]# srvctl stop service -d racdb -s srv_taf
[root@rac1 ~]# srvctl remove service -d racdb -s srv_taf
srv_taf PREF: racdb1 racdb2 AVAIL:
Remove service srv_taf from the database racdb? (y/[n]) y
[root@rac1 ~]# su - oracle
[oracle@rac1 ~]$ sqlplus / as sysdba
SQL> begin
dbms_service.DELETE_SERVICE(service_name=>'srv_taf');
end;
/
PL/SQL procedure successfully completed.
SQL> select name, failover_method, failover_type, failover_retries,goal, clb_goal, aq_ha_notifications from dba_services where name='srv_taf';
no rows selected
[root@rac1 ~]# srvctl stop database -d racdb
调用DBCA图形化删除数据库后,CRS_STAT –T查看发现数据库及其实例已经从CRS中删除,但Listener还在CRS的资源中。
先删除diskgroup
在rac2节点上:
[oracle@rac2 ~]$ export ORACLE_SID=+ASM2
[oracle@rac2 ~]$ sqlplus / as sysdba
SQL> alter diskgroup oradisk dismount;
Diskgroup altered.
在rac1节点上:
[oracle@rac1 ~]$ export ORACLE_SID=+ASM1
[oracle@rac1 ~]$ sqlplus / as sysdba
SQL> drop diskgroup oradisk including contents;
Diskgroup dropped.
停止所有ASM实例
[root@rac1 ~]# srvctl stop asm -n rac1
[root@rac1 ~]# srvctl stop asm -n rac2
从CRS资源中删除ASM
[root@rac1 ~]# srvctl remove asm -n rac1
[root@rac1 ~]# srvctl remove asm -n rac2
从/etc/oratab中删除相关ASM信息
vi
/etc/oratab
调用DBCA的图形化方式删除现有的Listener,完成后CRS_STAT查看发现也已从CRS的资源中删除。
1、Stop
the Nodeapps on all nodes:
srvctl
stop nodeapps –n
2、Prevent
CRS from starting when the node boots. To do this issue the
following as root:
Linux:
rm
/etc/oracle/*
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
cp
/etc/inittab.orig /etc/inittab
3、If they are
not already down, kill off EVM, CRS, and CSS processes or reboot the node:
ps
-ef | grep crs
kill
ps
-ef | grep evm
kill
ps
-ef | grep css
kill
Do
not kill any OS processes, for example icssvr_daemon process !
4、If there
is no other Oracle software running (like listeners, DB's, etc...), you can remove the files in /var/tmp/.oracle
or /tmp/.oracle. Example:
rm
-f /var/tmp/.oracle/*
or
rm
-f /tmp/.oracle/*
5、Remove
the ocr.loc Usually the ocr.loc can be found at /etc/oracle
6、De-install the CRS home in the
Oracle Universal Installer
因为前面没有卸载Oracle软件,所以在此处通过runInstaller一并卸载
7、 Remove the CRS install location.
因为前面没有卸载Oracle软件,所以此处一并将相关文件目录删除
在此过程中还是会报一些错,但是先后通过runInstaller卸载Oracle Database软件和Oracle CRS软件后,节点1上Database软件的大部分目录文件被删除(因为runInstaller运行在节点1上),而CRS的全部目录结构被删除,而同时,在节点2上Database和CRS的全部文件目录都还在!!!报错的原因都是与更换两个节点的主机名有关,从而导致ssh失效,而无法在节点2上面进行相关的卸载和删除目录结构操作。于是,我登录到节点2上,同样通过runInstaller来卸载Database和CRS软件,期间报错也和在第一个节点上运行的相似,也是无法完成对节点1的卸载,完成后效果也和在节点1上相同。最后手动把两个节点上/oracle下的所有目录结构删除干净。然后在回头执行上面没有执行的第4步。
8、Clean out the OCR and Voting Files with dd commands.
dd
if=/dev/zero of=/dev/raw/raw1 bs=1024000 count=120
……
dd
if=/dev/zero of=/dev/raw/raw10 bs=1024000 count=120
If you
are removing the RDBMS installation, also clean out any ASM disks if they have
already been used.
The
/tmp/CVU* dir should be cleaned also to avoid the cluvfy misreporting.
删除/var/opt目录下的Oracle信息和ORACLE_BASE目录:
# rm
-rf /data/oracle
# rm
-rf /var/opt/oracle
删除/usr/local/bin目录下的设置:
# rm
/usr/local/bin/dbhome
# rm
/usr/local/bin/oraenv
# rm
/usr/local/bin/coraenv
利用操作系统命令检查一下,系统中是否还残留一些Oracle的设置:
# find / -name oracle
整个Oracle数据库和RAC环境清除工作至此结束,可以重新进行Clusterware和RAC的安装了。这里没有对几个raw设备进行,因为在安装Clusterware的时候,会自动对他们进行格式化。
It is good practice to reboot the node before
starting the next install.
利用runInstaller进行图形化的删除。
runInstaller在$ORACLE_HOME/oui/bin中;
先只卸载Database软件,不卸载CRS软件;
runInstaller运行到最后报了一堆错,都是跟前面修改主机名有关,勉强完成后,查看系统中的文件目录,发现都还存在,万般无奈下以root用户,执行命令rm –rf /oracle强行在两个节点将所有目录结构删除,但不知行不行。
肯定是疲劳冲昏了头脑,直接rm的后果就是把包括crs在内的所有东西都已删除,当然会出不可逆转的错误,所以以后切忌!!!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14338195/viewspace-1051961/ ,如需转载,请注明出处,否则将追究法律责任。