zip -r myfile.zip myfolder
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.
Tuesday, September 8, 2015
How to recursively zip a folder and its subfolders
Use the -r flag to indicate recursive zipping:
Wednesday, September 2, 2015
How to unzip multiple files on a Unix-based operating systems
When extracting multiple zip files, remember to use single quotes to mask the zip-files:
For example, when unpacking the files needed to install Oracle 11.2.0.4:
Without the quotes, unzip will look for "zip files within zip files".
Thanks to Chris Jean for the tip!
unzip '*.zip'
For example, when unpacking the files needed to install Oracle 11.2.0.4:
[oracle@lx01 Downloads]$ ls -latr total 5586768 -rwxr-x---. 1 root root 1395582860 Sep 2 10:14 p13390677_112040_Linux-x86-64_1of7.zip -rwxr-x---. 1 root root 1151304589 Sep 2 10:14 p13390677_112040_Linux-x86-64_2of7.zip -rwxr-x---. 1 root root 1205251894 Sep 2 10:15 p13390677_112040_Linux-x86-64_3of7.zip -rwxr-x---. 1 root root 656026876 Sep 2 10:16 p13390677_112040_Linux-x86-64_4of7.zip -rwxr-x---. 1 root root 599170344 Sep 2 10:16 p13390677_112040_Linux-x86-64_5of7.zip -rwxr-x---. 1 root root 488372844 Sep 2 10:16 p13390677_112040_Linux-x86-64_6of7.zip -rwxr-x---. 1 root root 119521122 Sep 2 10:16 p13390677_112040_Linux-x86-64_7of7.zip drwx------. 17 oracle oinstall 4096 Sep 2 10:27 .. drwxr-xr-x. 2 oracle oinstall 4096 Sep 2 10:34 . [oracle@lx01 Downloads]$ unzip 'p13390677_112040_Linux-x86-64_*.zip'
Without the quotes, unzip will look for "zip files within zip files".
Thanks to Chris Jean for the tip!
Oracle 11g out-of-place vs. in-place database upgrades
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.
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.
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
Subscribe to:
Posts (Atom)