-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow brute-cleanup to work with RAC #67
Conversation
Remount /dev/shm if necessary
brute-cleanup was originally designed for single-node, Oracle Restart installs; on RAC clusters I ran into a few issues and making a few fixes: - Making existing service shutdown and CRS deconfigure run only on non-RAC clusters (detected by the presence or ansence of a cluster_name in the inventory file) - Adding a somewhat hacky RAC hard shutdown using the OHASD shutdown handler, plus rootcrs.sh. Why not use Oracle's deinstall? I'd prefer not to depend on a response file taht may or may not reflect current reality, but rather do as generic a deconfigure/shutdown as possible - Adding tfa (trace file anaalyzer) to the kill list, as well as removing the initscript itself - I ran into a case where umount failed on /u01 but lsof showed nothing in use. a lazy (umount -l) seems to resolve by simply detaching the mount, and seems to fit the context of a "brute cleanup", especially since we're going to zero out the device later anyway. Ansible's mount handler doens't support the option, so we're reverting to shell here, with the unfortuantely side effect that nonexistant mounts will generated ignored error messages.
A few more objects that can be left behind if CRS deconfig scripts fail for some reason: shared memory segments, semaphors, and kernel modules (ACFS, ASMFD, etc). In the spirit of a brute cleanup, let's yank stragglers the hard way.
Forcibly unloading oracleasm will impact the ability to identify ASM devices, so delay kernel module removal until disks and asmlib are already removed.
Using pkill instead of a pipeline to avoid error messages when these processes don't exist. And thus avoid the need for complicated return code processing.
Tested the The run is documented in this gpaste (internal): This LGTM from a non-rac standpoint. |
Able to test run this multiple times successfully for a single-node RAC cleanup. |
brute-cleanup was originally designed for single-node, Oracle Restart installs; on RAC clusters I ran into a few issues and making a few fixes: