Skip to content
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

oracle_opatch: optionally stop processes when remove a patch #110

Open
wants to merge 19 commits into
base: master
Choose a base branch
from

Conversation

duhlig
Copy link
Contributor

@duhlig duhlig commented Jun 28, 2019

Yesterday I needed to stop the DB processes in order to remove patch 18633374 from a 12.1.0.2 DB. For this I changed oracle_opatch.

This pull request makes issue #109 redundant.

Kind Regards,
Dietmar

duhlig referenced this pull request in duhlig/ansible-oracle Jul 1, 2019
Conflicting one-off patches have to be removed before applying opatchauto.
duhlig and others added 18 commits July 4, 2019 10:19
…ut content, dependencies, and UPI (unique patch ID) differ. These patches have to be rolled back in advance of applying the PSU/RU and must afterwards be installed with the correct version (=UPI). They should however not be rolled back if they are already there with the desired UPI. This helps to write more idempotent playbooks.

So there is a new parameter exclude_upi that is evaluated only if state=absent.

To keep changes in working code at a minimum the check for UPI could be acquired only by another "opatch lspatches" that costs some seconds.
Oracle_opatch searches the running listener with:

```ps -elf | grep "[0-9] $ORACLE_HOME/bin/tnslsnr"```

...then splits the line by spaces and takes the last but one field.
This does not work for a "ps -ef" result like this:

```0 S oracle   16921     1  0  80   0 - 43851 ep_pol 21:58 ?        00:00:00 /u01/app/oracle/product/12.1.0.2/ee/bin/tnslsnr LISTENER /dev/null -inherit```

In this case "linelist[-2]" deliveres "/dev/null" instead of the LISTENER
name. My fix is to search the ps line for the listener executable and use
the next field.
Signed-off-by: Dietmar Uhlig <[email protected]>
(I should have tested more thoroughly after the last refactoring.)
Merging Mikael Sandström's current version into my patched version.
…ut content, dependencies, and UPI (unique patch ID) differ. These patches have to be rolled back in advance of applying the PSU/RU and must afterwards be installed with the correct version (=UPI). They should however not be rolled back if they are already there with the desired UPI. This helps to write more idempotent playbooks.

So there is a new parameter exclude_upi that is evaluated only if state=absent.

To keep changes in working code at a minimum the check for UPI could be acquired only by another "opatch lspatches" that costs some seconds.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants