How to update OPatch

When applying patches, such as PSUs or one-offs, you may need to update OPatch to meet the minimum OPatch version.  It is also recommended to update OPatch when applying any patch.

To see your current OPatch version:

[oracle@v1ex1dbadm01 ~]$ export ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1
[oracle@v1ex1dbadm01 ~]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.1.0.1.3

OPatch succeeded.
[oracle@v1ex1dbadm01 ~]$

Backup existing OPatch:

[oracle@v1ex1dbadm01 ~]$ cd $ORACLE_HOME
[oracle@v1ex1dbadm01 dbhome_1]$ tar -cvf OPatch_backup.tar OPatch/*
OPatch/datapatch
OPatch/datapatch.bat
OPatch/docs/
...
OPatch/oplan/README.txt
OPatch/oplan/README.html
OPatch/oplan/oplan
[oracle@v1ex1dbadm01 dbhome_1]$

Check the backup of OPatch:

[oracle@v1ex1dbadm01 dbhome_1]$ ls -lh | grep OPatch_backup.tar
-rw-rw-r--. 1 oracle oracle 6.7M Aug 29 11:51 OPatch_backup.tar
[oracle@v1ex1dbadm01 dbhome_1]$

Remove the existing OPatch:

[oracle@v1ex1dbadm01 dbhome_1]$ rm -rf OPatch

Unzip the latest OPatch:

[oracle@v1ex1dbadm01 dbhome_1]$ unzip -d $ORACLE_HOME ~/sw/p6880880_122010_Linux-x86-64.zip
Archive: /home/oracle/sw/p6880880_122010_Linux-x86-64.zip
creating: /u01/app/oracle/product/12.1.0/dbhome_1/OPatch/
inflating: /u01/app/oracle/product/12.1.0/dbhome_1/OPatch/datapatch
...
inflating: /u01/app/oracle/product/12.1.0/dbhome_1/OPatch/docs/cversion.txt
inflating: /u01/app/oracle/product/12.1.0/dbhome_1/OPatch/docs/FAQ
inflating: /u01/app/oracle/product/12.1.0/dbhome_1/OPatch/opatch.bat
[oracle@v1ex1dbadm01 dbhome_1]$

Which can be found here:
OPatch – Where Can I Find the Latest Version of OPatch(6880880)? [Video] (Doc ID 224346.1)
OPATCH PLACEHOLDER Patch 6880880

To see your newOPatch version:

[oracle@v1ex1dbadm01 dbhome_1]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.2.0.1.9

OPatch succeeded.
[oracle@v1ex1dbadm01 dbhome_1]$

 

If you found this blog post useful, please like as well as follow me through my various Social Media avenues available on the sidebar and/or subscribe to this oracle blog via WordPress/e-mail.

Thanks

Zed DBA (Zahid Anwar)

DBCA and DBUA no longer function after applying Windows DB Bundle Patch 24922870 – 11.2.0.4.161118

It’s been discovered that after applying 11.2.0.4.161118 Windows DB Bundle Patch 24922870, both DBCA and DBUA no longer function and give the following error:

dbca_error_after_patching

Oracle Support have only filed a bug on Wednesday this week (11th January 2017):

Bug 25369562 : DBCA & DBUA NO LONGER FUNCTION AFTER APPLYING PATCH 24922870

So if you’re planning to use either DBCA or DBUA after applying the patch, you might want to hold off until the bug is fixed 🙂

It’s also discovered NETCA no longer function after applying this patch, it will start but does nothing when you click on ‘Configure Listener’.

Credit to my colleague for sharing this info.

If you found this blog post useful, please like as well as follow me through my various Social Media avenues available on the sidebar and/or subscribe to this oracle blog via WordPress/e-mail.

Thanks

Zed DBA (Zahid Anwar)

Using Linux Screen to protect against network breaks

When I carried out my first Exadata patching, I came across ‘Linux Screen‘ in the documentation, which Oracle recommended to use when patching:

“It’s recommended to run the dbnodeupdate.sh session using the Linux ‘screen’ or ‘vnc’ utility such that when a network problem breaks the connection to the server the patching session continues.”

Basically ‘Linux Screen‘ allows you to:

  1. Have a shell that can be reconnected to if you lose your connection due to network break, accidental close of terminal, the machine running the terminal crashes, etc. We’ve all been there, but now you can have the ability to protect yourself from these issues 🙂
  2. Disconnect from your screen session and reconnect to the same session at a later point in time, i.e. disconnect at the office, go home, reconnect when back home or kick off a long batch, disconnect, reconnect later to see if it’s completed.
  3. Open multiple windows within the one screen session.

Install Linux Screen

Linux screen is available from Oracle and can be downloaded via Oracle Public-yum:

[root@v1ex1dbadm01 ~]# yum install screen
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package screen.x86_64 0:4.0.3-19.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================================================================================================================
 Package Arch Version Repository Size
==============================================================================================================================================================================================================================================
Installing:
 screen x86_64 4.0.3-19.el6 ol6_latest 494 k

Transaction Summary
==============================================================================================================================================================================================================================================
Install 1 Package(s)

Total download size: 494 k
Installed size: 795 k
Is this ok [y/N]: y
Downloading Packages:
screen-4.0.3-19.el6.x86_64.rpm | 494 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
 Installing : screen-4.0.3-19.el6.x86_64 1/1
 Verifying : screen-4.0.3-19.el6.x86_64 1/1

Installed:
 screen.x86_64 0:4.0.3-19.el6

Complete!
[root@v1ex1dbadm01 ~]#

To manually install:

[root@v1ex1dbadm01 patches]# rpm -i screen-4.0.3-19.el6.x86_64.rpm
[root@v1ex1dbadm01 patches]# rpm -qa | grep screen
screen-4.0.3-19.el6.x86_64
[root@v1ex1dbadm01 patches]# which screen
/usr/bin/screen
[root@v1ex1dbadm01 patches]#

RPMs are available via Oracle Public-yum:

http://public-yum.oracle.com/oracle-linux-5.html

http://public-yum.oracle.com/oracle-linux-6.html

http://public-yum.oracle.com/oracle-linux-7.html

Examples:

Oracle Linux 5, Update 11:

http://public-yum.oracle.com/repo/OracleLinux/OL5/11/base/x86_64/getPackage/screen-4.0.3-4.el5.x86_64.rpm

Oracle Linux 6, Update 8:

http://public-yum.oracle.com/repo/OracleLinux/OL6/8/base/x86_64/getPackage/screen-4.0.3-19.el6.x86_64.rpm

Starting Linux Screen

To start Linux Screen:

[root@v1ex1dbadm01 ~]# screen

Linux Screen Commands

Linux Screen commands are used by first pressing “CTRL” then “a“, followed by command key:

Example: “CTRL” then “a” then “?” get you the following help screen:

Screen key bindings, page 1 of 1.

Command key: ^A Literal ^A: a

break ^B b displays * help ? lockscreen ^X x number N quit \ screen ^C c title A writebuf >
clear C dumptermcap . history { } log H only Q readbuf < select ' vbell ^G xoff ^S s
colon : fit F info i login L other ^A redisplay ^L l silence _ version v xon ^Q q
copy ^[ [ flow ^F f kill K k meta a pow_break B remove X split S width W
detach ^D d focus ^I lastmsg ^M m monitor M pow_detach D removebuf = suspend ^Z z windows ^W w
digraph ^V hardcopy h license , next ^@ ^N sp n prev ^H ^P p ^? reset Z time ^T t wrap ^R r

^] paste .
" windowlist -b
- select -
0 select 0
1 select 1
2 select 2
3 select 3
4 select 4
5 select 5
6 select 6
7 select 7
8 select 8
9 select 9
I login on
O login off
] paste .


 [Press Space or Return to end.]

Detaching from Linux Screen

To detach from Linux Screen:

CTRL” then “a” then “d

[root@v1ex1dbadm01 ~]# echo "Detaching from Linux Screen, leaving my mark :)"
Detaching from Linux Screen, leaving my mark :)
[detached]

You are at this point returned to your normal shell.

Please Note: network break, accidental close of terminal, the machine running the terminal crashes, etc, automatically detach after detection 🙂

Reattaching to Linux Screen

To reattach to Linux Screen:

[root@v1ex1dbadm01 ~]# screen -r

You’ll now be reattached to you last session:

[root@v1ex1dbadm01 ~]# echo "Detaching from Linux Screen, leaving my mark :)"
Detaching from Linux Screen, leaving my mark :)
[root@v1ex1dbadm01 ~]#

To reattach to Linux Screen, when multiple sessions are detached, use screen -r :

[root@v1ex1dbadm01 ~]# screen -r
There are several suitable screens on:
 15090.pts-0.v1ex1dbadm01 (Detached)
 346219.pts-0.v1ex1dbadm01 (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
[root@v1ex1dbadm01 ~]# screen -r 346219.pts-0.v1ex1dbadm01

If you get the error message “There is no screen to be resumed.“, this is because the disconnect hasn’t been detected yet.  To reconnect add the “-d” switch:

[root@v1ex1dbadm01 ~]# screen -r
There is a screen on:
 374671.pts-0.v1ex1dbadm01 (Attached)
There is no screen to be resumed.
[root@v1ex1dbadm01 ~]# screen -r -d 374671.pts-0.v1ex1dbadm01

Terminating Linux Screen

Once you’re finished, just type ‘exit‘ and you’ll exit back to your normal shell:

[screen is terminating]
[root@v1ex1dbadm01 ~]# screen -r
There is no screen to be resumed.
[root@v1ex1dbadm01 ~]#

You can also use:

CTRL” then “a” then “k“:

Really kill this window [y/n]y
[screen is terminating]

Advance Uses

Creating multiple screen in one session

You can add screen to your current session by:

CTRL” then “a” then “c

You’ll notice your putty session will say something like:

[screen 1:bash]root@v1ex1dbadm01:~

Screen ID starts with 0 and increases by 1 for every new screen created.

Switching between multiple screens in one session

You can switch between multiple screens, by going next and previous:

Next: “CTRL” then “a” then “n

Previous: “CTRL” then “a” then “p

You’ll notice the screen ID change as well as the screen.

Closing is the same as terminating Linux Screen, either type ‘exit‘ or “CTRL” then “a” then “k“.  You’ll need to do this for every screen until all are closed and then you will get:

[screen is terminating]

Known Issues

Cannot open your terminal

If you get the following error message:

[oracle@v1ex1dbadm01 ~]$ screen
Cannot open your terminal '/dev/pts/0' - please check.

Simple run Linux Screen as the user ‘root’ and then su to the desired user:

[root@v1ex1dbadm01 ~]# screen
[root@v1ex1dbadm01 ~]# su - oracle
[oracle@v1ex1dbadm01 ~]$

Scrollbar doesn’t work

You can enter copy mode (not sure why it’s call that, but it lets you navigate):

CTRL” then “a” then “esc” then “up“/”down

Or even better add the follow line to the root ~/.screenrc file:

termcapinfo xterm ti@:te@

If the file doesn’t exist, create it and add the line.

Now you can use scrollbar as normal 🙂

There are many more features, which I haven’t yet explored, but now you’ve got the idea, you’ll be able to use ‘Linux Screen’ to your benefit 🙂

Updates

6th September 2017: Added the Oracle Public-yum for Oracle Linux 7.
12th October 2017: Added the -d option to the “Reattaching to Linux Screen” section.

If you found this blog post useful, please like as well as follow me through my various Social Media avenues available on the sidebar and/or subscribe to this oracle blog via WordPress/e-mail.

Thanks

Zed DBA (Zahid Anwar)