Skip to content

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 <info@robotron.de>
Signed-off-by: Dietmar Uhlig <info@robotron.de>
(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