Starting with Oracle 11gR2, Oracle changed their patching strategy.
Previously, a patch set was supposed to be downloaded and installed into an existing ORACLE_HOME.
After 11.2, a "patch set" is really a full release, bundled in a number of zip files.
The default patching method is the "out-out-place", which means that every time customers need to upgrade to a new patch set (say, 11.2.0.4), a new ORACLE_HOME should be created, and the new binaries should be installed here.
So you will potentially end up with a number of ORACLE_HOME on your server, and you can choose to run your database out of either of these, upgrading whenever you please.
See Mike Dietrich's post about the same topic for more details.
Minimalistic Oracle contains a collection of practical examples from my encounters with Oracle technologies. When relevant, I also write about other technologies, like Linux or PostgreSQL. Many of the posts starts with "how to" since they derive directly from my own personal experience. My goal is to provide simple examples, so that they can be easily adapted to other situations.
Wednesday, September 2, 2015
How to fix error thrown by OPatch: java.lang.NullPointerException
Problem:
Opatch throws the following error when you are querying the inventory:
Cause:
In my case, the file /etc/hosts was incorrectly configured.
Solution:
Configure the file /etc/hosts correctly.
Check the /etc/hosts:
Update the incorrect ip address from 192.168.1.55 to 192.168.0.55, and save the file.
Opatch will now display expected output:
Opatch throws the following error when you are querying the inventory:
[oracle@lx01 ~]$ opatch lsinventory Oracle Interim Patch Installer version 11.2.0.3.11 Copyright (c) 2015, Oracle Corporation. All rights reserved. Oracle Home : /u01/oracle/product/11.2.0/dbhome_1 Central Inventory : /u01/oraInventory from : /u01/oracle/product/11.2.0/dbhome_1/oraInst.loc OPatch version : 11.2.0.3.11 OUI version : 11.2.0.1.0 Log file location : /u01/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2015-09-02_08-52-28AM_1.log Lsinventory Output file location : /u01/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/lsinv/lsinventory2015-09-02_08-52-28AM.txt -------------------------------------------------------------------------------- java.lang.NullPointerException at oracle.sysman.oii.oiin.OiinNetOps.addNICInfo(OiinNetOps.java:144) at oracle.sysman.oii.oiin.OiinNetOps.computeNICList(OiinNetOps.java:109) at oracle.sysman.oii.oiin.OiinNetOps.(OiinNetOps.java:76) at oracle.sysman.oii.oiin.OiinNetOps.getNetOps(OiinNetOps.java:90) at oracle.sysman.oii.oiix.OiixNetOps.getFullHostName(OiixNetOps.java:49) at oracle.opatch.LsInventoryPrinter.printLocalMachineInfo(LsInventoryPrinter.java:2336) at oracle.opatch.LsInventorySession.loadAndPrintInventory(LsInventorySession.java:480) at oracle.opatch.LsInventorySession.process(LsInventorySession.java:317) at oracle.opatch.OPatchSession.main(OPatchSession.java:2120) at oracle.opatch.OPatch.main(OPatch.java:626) Local Machine Information:: Hostname: lx01.oric.no ARU platform id: 226 ARU platform description:: Linux x86-64 Installed Top-level Products (1): Oracle Database 11g 11.2.0.1.0 There are 1 products installed in this Oracle Home. There are no Interim patches installed in this Oracle Home. -------------------------------------------------------------------------------- OPatch succeeded.
Cause:
In my case, the file /etc/hosts was incorrectly configured.
Solution:
Configure the file /etc/hosts correctly.
[root@lx01 ~]# ifconfig enp0s3: flags=4163mtu 1500 inet 192.168.0.55 netmask 255.255.255.0 broadcast 192.168.0.255
Check the /etc/hosts:
[root@lx01 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.55 lx01.oric.no lx01 [oracle@lx01 ~]$ vi /etc/hosts
Update the incorrect ip address from 192.168.1.55 to 192.168.0.55, and save the file.
Opatch will now display expected output:
[oracle@lx01 ~]$ opatch lsinventory Oracle Interim Patch Installer version 11.2.0.3.11 Copyright (c) 2015, Oracle Corporation. All rights reserved. Oracle Home : /u01/oracle/product/11.2.0/dbhome_1 Central Inventory : /u01/oraInventory from : /u01/oracle/product/11.2.0/dbhome_1/oraInst.loc OPatch version : 11.2.0.3.11 OUI version : 11.2.0.1.0 Log file location : /u01/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2015-09-02_09-07-43AM_1.log Lsinventory Output file location : /u01/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/lsinv/lsinventory2015-09-02_09-07-43AM.txt -------------------------------------------------------------------------------- Local Machine Information:: Hostname: lx01.oric.no ARU platform id: 226 ARU platform description:: Linux x86-64 Installed Top-level Products (1): Oracle Database 11g 11.2.0.1.0 There are 1 products installed in this Oracle Home. There are no Interim patches installed in this Oracle Home. -------------------------------------------------------------------------------- OPatch succeeded.
Thursday, August 27, 2015
How to solve: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
After a fresh install of an Oracle 32-bit client on a 64-bit Linux server, we received the following errors when we tried to use any of the binaries under the $ORACLE_CLIENT_HOME/bin directory:
It turned out that only the 64-bit version of libaio was installed:
Solution is to simply install the missing package (output abbreviated):
error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
It turned out that only the 64-bit version of libaio was installed:
yum list libaio Loaded plugins: product-id, rhnplugin, security This system is receiving updates from RHN Classic or RHN Satellite. Installed Packages libaio.x86_64 0.3.107-10.el6 @anaconda-RedHatEnterpriseLinux-201301301459.x86_64/6.4 Available Packages libaio.i686 0.3.107-10.el6 prod-rhel-x86_64-server-6
Solution is to simply install the missing package (output abbreviated):
su - yum install libaio.i686 downloading Packages: libaio-0.3.107-10.el6.i686.rpm | 21 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : libaio-0.3.107-10.el6.i686 1/1 Verifying : libaio-0.3.107-10.el6.i686 1/1 Installed: libaio.i686 0:0.3.107-10.el6 Complete!
How to create a symlink in unix
Syntax:
ln -s /path/physical_file symlink
For example
ln -s /path/physical_file symlink
For example
cd $ORACLE_HOME/lib ln -s /u01/oracle/product/oracle_client32/lib/libclntsh.so.11.1 libclntsh.so ls -altr libclntsh.so libclntsh.so -> /u01/oracle/product/oracle_client32/lib/libclntsh.so.11.1
Monday, August 24, 2015
What does the DEFAULT DEGREE on tables actually mean?
The DOP (degree of parallelism) settings on a table has to do with the number of threads per instance for scanning the table (an integer), or DEFAULT.
When a tables DEGREE setting is set to DEFAULT, it means that the DOP) is calculated via the following formula:
For a single instance:
For an Oracle RAC configuration:
The DOP for a table can be viewed in either of the *_TABLES views.
When a tables DEGREE setting is set to DEFAULT, it means that the DOP) is calculated via the following formula:
For a single instance:
DOP = PARALLEL_THREADS_PER_CPU x CPU_COUNT
For an Oracle RAC configuration:
DOP = PARALLEL_THREADS_PER_CPU x CPU_COUNT x INSTANCE_COUNT
The DOP for a table can be viewed in either of the *_TABLES views.
SELECT DEGREE FROM DBA_TABLES WHERE TABLE_NAME = 'EMP' AND OWNER = 'SCOTT'; DEGREE ------------------ 1
Tuesday, August 11, 2015
How to use cpio on AIX
I recently received a patch from Oracle support, and when unpacking with unzip, the resulting file was in the cpio format. Unpacking this file, in turn, is done like this:
mkdir install cd install cpio -idcmv < 9205_aix5l64_release.cpio
Tuesday, July 28, 2015
How to create and how to extract a .tar file
Create a tar file of all the files in the current directory:
tar cvf myfile.tar *or put it in a different directory:
tar cvf $HOME/myfile.tar *To extract myfile.tar to the current directory
tar xvf myfile.tarTo a specific directory:
tar xvf myfile.tar -C mydir
Subscribe to:
Posts (Atom)