{"id":10753,"date":"2018-01-09T17:57:05","date_gmt":"2018-01-09T16:57:05","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/running-the-oracle-client-on-a-raspberry-pi\/"},"modified":"2018-01-09T17:57:05","modified_gmt":"2018-01-09T16:57:05","slug":"running-the-oracle-client-on-a-raspberry-pi","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/running-the-oracle-client-on-a-raspberry-pi\/","title":{"rendered":"Running the Oracle Client on a Raspberry Pi"},"content":{"rendered":"<p>What are the possibilities to use a Raspberry Pi computer as an Oracle client?<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IMG_1653-e1515518184155-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-20509\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IMG_1653-e1515518184155-scaled.jpg\" alt=\"IMG_1653\" width=\"225\" height=\"300\" \/><\/a><\/p>\n<p>Besides other things I&#8217;ll show a possibility in this Blog to run the fat\/thick Oracle Client on a Raspberry Pi!<\/p>\n<p>REMARK: All examples below were made with an Rasperry Pi 3 and the OS Raspbian, which can be downloaded from<br \/>\nhttps:\/\/www.raspberrypi.org\/downloads<\/p>\n<p>First of all what&#8217;s possible with Java and Thin Clients?<br \/>\nRunning the Java-Programs sqldeveloper or its counterpart in command line mode sqlcl is of course possible on a Raspberry Pi:<\/p>\n<p>1.) sqldeveloper<\/p>\n<p>The prerequisite for running sqldveloper 17.4. (current version as of writing this Blog) is an installed JDK 1.8. As I had that installed by default, I could run sqldeveloper as documented. I.e.<\/p>\n<p><code><br \/>\npi@raspberrypi:~ $ sudo apt list --installed | grep jdk<br \/>\noracle-java8-jdk\/stable,now 8u65 armhf [installed]<br \/>\npi@raspberrypi:~ $ cd Oracle<br \/>\npi@raspberrypi:~\/Oracle $ unzip sqldeveloper-17.4.0.355.2349-no-jre.zip<br \/>\n...<br \/>\npi@raspberrypi:~\/Oracle $ cd sqldeveloper\/<br \/>\npi@raspberrypi:~\/Oracle\/sqldeveloper $ .\/sqldeveloper.sh<br \/>\n&nbsp;<br \/>\nOracle SQL Developer<br \/>\nCopyright (c) 1997, 2017, Oracle and\/or its affiliates. All rights reserved.<br \/>\n<\/code><\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/sqldeveloper.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/sqldeveloper.png\" alt=\"sqldeveloper\" width=\"300\" height=\"251\" class=\"alignnone size-medium wp-image-20518\" \/><\/a><\/p>\n<p>2.) sqlcl<\/p>\n<p>Installing sqlcl is as easy as installing sqldeveloper:<\/p>\n<p><code><br \/>\npi@raspberrypi:~\/Oracle $ unzip sqlcl-17.4.0.354.2224-no-jre.zip<br \/>\n...<br \/>\npi@raspberrypi:~\/Oracle $ alias sqlcl='\/home\/pi\/Oracle\/sqlcl\/bin\/sql'<br \/>\npi@raspberrypi:~\/Oracle $ sqlcl cbleile\/cbleile@192.168.178.65:1521\/prem122.localdomain<br \/>\n&nbsp;<br \/>\nSQLcl: Release 17.4.0 Production on Tue Jan 09 14:28:56 2018<br \/>\n&nbsp;<br \/>\nCopyright (c) 1982, 2018, Oracle. All rights reserved.<br \/>\n&nbsp;<br \/>\nLast Successful login time: Thu Jan 04 2018 22:15:36 +01:00<br \/>\n&nbsp;<br \/>\nConnected to:<br \/>\nOracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production<br \/>\n&nbsp;<br \/>\nSQL&gt; set sqlformat ansiconsole<br \/>\nSQL&gt; select table_name, tablespace_name from tabs;<br \/>\nTABLE_NAME TABLESPACE_NAME<br \/>\nT1 USERS<br \/>\n&nbsp;<br \/>\nSQL&gt;<br \/>\n<\/code><\/p>\n<p>3.) Running Java-Code using the JDBC Thin driver<\/p>\n<p>Running Java-Code with access to Oracle is easy as well. Just download the JDBC Thin Driver ojdbc8.jar and put it somewhere on the Pi. In the example below I actually do use the ojdbc8.jar from sqlcl:<\/p>\n<p><code><br \/>\npi@raspberrypi:~\/Oracle\/Java $ more Conn.java<br \/>\nimport java.sql.*;<br \/>\nclass Conn {<br \/>\npublic static void main (String[] args) throws Exception<br \/>\n{<br \/>\nClass.forName (\"oracle.jdbc.OracleDriver\");<br \/>\n&nbsp;<br \/>\nConnection conn = DriverManager.getConnection (\"jdbc:oracle:thin:@\/\/192.168.178.65:1521\/prem122.localdomain\", \"cbleile\", \"cbleile\");<br \/>\n\/\/ @\/\/machineName:port\/SID, userid, password<br \/>\ntry {<br \/>\nStatement stmt = conn.createStatement();<br \/>\ntry {<br \/>\nResultSet rset = stmt.executeQuery(\"select BANNER from SYS.V_$VERSION where BANNER like '%Enterprise Edition%'\");<br \/>\ntry {<br \/>\nwhile (rset.next())<br \/>\nSystem.out.println (\"Connected to \"+rset.getString(1));<br \/>\n}<br \/>\nfinally {<br \/>\ntry { rset.close(); } catch (Exception ignore) {}<br \/>\n}<br \/>\n}<br \/>\nfinally {<br \/>\ntry { stmt.close(); } catch (Exception ignore) {}<br \/>\n}<br \/>\n}<br \/>\nfinally {<br \/>\ntry { conn.close(); } catch (Exception ignore) {}<br \/>\n}<br \/>\n}<br \/>\n}<br \/>\npi@raspberrypi:~\/Oracle\/Java $ javac Conn.java<br \/>\npi@raspberrypi:~\/Oracle\/Java $ java -cp ..\/sqlcl\/lib\/ojdbc8.jar:. Conn<br \/>\nConnected to Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production<br \/>\n<\/code><\/p>\n<p>4.) Running a fat Client on the Raspberry Pi<\/p>\n<p>Is it actually possible to run the normal Oracle thick\/fat Client on the Pi? As the Oracle Client Binaries are not available for the ARM processor it seems not possible, but emulating the x86-platform you actually can do it.<\/p>\n<p>The easiest way to run x86-Code on a Raspberry Pi is to actually buy the product ExaGear Desktop from Eltechs ( https:\/\/eltechs.com ) for aound 20 Euros (they usually sell it for 16 Euros).<br \/>\nREMARK: You can actually also install the QEMU image from https:\/\/github.com\/AlbrechtL\/RPi-QEMU-x86-wine , but that&#8217;s far more effortful.<\/p>\n<p>What is ExaGear? ExaGear is an emulator (i.e. a virtual machine) which emulates a x86 Debian Linux on your Raspberry Pi. After downloading ExaGear and unzipping it it&#8217;s installed easily on the Pi with just<\/p>\n<p><code><br \/>\n$ sudo .\/install-exagear.sh<br \/>\n<\/code><\/p>\n<p>Afterwards you can start it with the command exagear:<\/p>\n<p><code><br \/>\npi@raspberrypi:~ $ uname -a<br \/>\nLinux raspberrypi 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l GNU\/Linux<br \/>\npi@raspberrypi:~ $ exagear<br \/>\nStarting \/bin\/bash in the guest image \/opt\/exagear\/images\/debian-8<br \/>\npi@raspberrypi:~ $ uname -a<br \/>\nLinux raspberrypi 4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 i686 GNU\/Linux<br \/>\npi@raspberrypi:~ $ arch<br \/>\ni686<br \/>\n<\/code><\/p>\n<p>I am now inside the x86 world. I.e. I can use this guest shell as if it were running on an x86 machine.<br \/>\nFirst I do update the repositories:<\/p>\n<p><code><br \/>\npi@raspberrypi:~ $ sudo apt-get update<br \/>\n...<br \/>\n<\/code><\/p>\n<p>The next step is to download the Oracle 32-Bit 12.2.-Client-Software to the raspberry pi. To be able to install the Oracle software a couple of libraries and programs need to be installed. I.e. inside exagear:<\/p>\n<p><code><br \/>\npi@raspberrypi:~\/Oracle\/Downloads\/client32 $ sudo apt-get install libxrender1 libxtst6 libxi6 libaio1 make gcc gawk<br \/>\n<\/code><\/p>\n<p>To avoid some errors I also had to create 3 symbolic links:<\/p>\n<p><code><br \/>\npi@raspberrypi:~\/Oracle\/Downloads\/client32 $ sudo ln -s \/usr\/lib\/i386-linux-gnu\/libpthread_nonshared.a \/usr\/lib\/libpthread_nonshared.a<br \/>\npi@raspberrypi:~\/Oracle\/Downloads\/client32 $ sudo ln -s \/usr\/lib\/i386-linux-gnu\/libc_nonshared.a \/usr\/lib\/libc_nonshared.a<br \/>\npi@raspberrypi:~\/Oracle\/Downloads\/client32 $ sudo ln -s \/usr\/bin\/awk \/bin\/awk<br \/>\n<\/code><\/p>\n<p>At that point I could install the Oracle Client software as usual:<\/p>\n<p><code><br \/>\npi@raspberrypi:~\/Oracle\/Downloads\/client32 $ .\/runInstaller<br \/>\nStarting Oracle Universal Installer...<br \/>\n&nbsp;<br \/>\nChecking Temp space: must be greater than 415 MB. Actual 1522 MB Passed<br \/>\nChecking swap space: must be greater than 150 MB. Actual 828 MB Passed<br \/>\nChecking monitor: must be configured to display at least 256 colors<br \/>\n&gt;&gt;&gt; Could not execute \/usr\/bin\/xdpyinfo Failed &lt;&lt;&lt;&lt;<br \/>\n&nbsp;<br \/>\nSome requirement checks failed. You must fulfill these requirements before<br \/>\n&nbsp;<br \/>\ncontinuing with the installation,<br \/>\n&nbsp;<br \/>\nContinue? (y\/n) [n] y<br \/>\n<\/code><\/p>\n<p>xdpyinfo can be installed by installing the x11-utils on Debian, but it&#8217;s actually not necessary, so just continue by answering &#8220;y&#8221; at the prompt.<\/p>\n<p>The rest is a normal Oracle-Client installation. Here some screen shots:<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/runInstaller1_1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/runInstaller1_1.png\" alt=\"runInstaller1_1\" width=\"300\" height=\"225\" class=\"alignnone size-medium wp-image-20510\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/runInstaller2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/runInstaller2.png\" alt=\"runInstaller2\" width=\"300\" height=\"209\" class=\"alignnone size-medium wp-image-20526\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/runInstaller6.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/runInstaller6.png\" alt=\"runInstaller6\" width=\"300\" height=\"224\" class=\"alignnone size-medium wp-image-20511\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/runInstaller8.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/runInstaller8.png\" alt=\"runInstaller8\" width=\"300\" height=\"224\" class=\"alignnone size-medium wp-image-20512\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/runInstaller10.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/runInstaller10.png\" alt=\"runInstaller10\" width=\"300\" height=\"193\" class=\"alignnone size-medium wp-image-20513\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/runInstaller12.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/runInstaller12.png\" alt=\"runInstaller12\" width=\"300\" height=\"225\" class=\"alignnone size-medium wp-image-20514\" \/><\/a><\/p>\n<p>I created my small script to set the environment and was then able to run the client-software:<\/p>\n<p><code><br \/>\npi@raspberrypi:~ $ more oraclient.sh<br \/>\n#!\/bin\/bash<br \/>\n&nbsp;<br \/>\nexport ORACLE_HOME=\/home\/pi\/Oracle\/app\/pi\/product\/12.2.0\/client_1<br \/>\nexport PATH=$ORACLE_HOME\/bin:$PATH<br \/>\npi@raspberrypi:~ $ . .\/oraclient.sh<br \/>\npi@raspberrypi:~ $ sqlplus cbleile\/cbleile@192.168.178.65:1521\/prem122.localdomain<br \/>\n&nbsp;<br \/>\nSQL*Plus: Release 12.2.0.1.0 Production on Tue Jan 9 16:04:36 2018<br \/>\n&nbsp;<br \/>\nCopyright (c) 1982, 2016, Oracle. All rights reserved.<br \/>\n&nbsp;<br \/>\nLast Successful login time: Thu Jan 04 2018 22:33:09 +01:00<br \/>\n&nbsp;<br \/>\nConnected to:<br \/>\nOracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production<br \/>\n&nbsp;<br \/>\nSQL&gt; select count(*) from all_objects;<br \/>\n&nbsp;<br \/>\nCOUNT(*)<br \/>\n----------<br \/>\n19640<br \/>\n&nbsp;<br \/>\nSQL&gt;<br \/>\n<\/code><\/p>\n<p>Everything worked as expected. I actually haven&#8217;t found any issue with the available Oracle programs:<\/p>\n<p><code><br \/>\npi@raspberrypi:~ $ ls $ORACLE_HOME\/bin<br \/>\nadapters expdp lcsscan orapki.bat statusnc<br \/>\nadrci expdpO linkshlib oraxml symfind<br \/>\nadrciO extjob lmsgen oraxsl sysresv<br \/>\naqxmlctl extjobo loadjava orion tkprof<br \/>\naqxmlctl.pl extproc loadpsp osdbagrp tkprofO<br \/>\nbndlchk extprocO loadpspO osh tnsping<br \/>\ncoraenv genagtsh lxchknlb ott tnsping0<br \/>\ndbfs_client genclntsh lxegen owm trcasst<br \/>\ndbgeu_run_action.pl genclntst lxinst platform_common trcroute<br \/>\ndbhome genezi mkstore plshprof trcroute0<br \/>\ndbshut geneziO mkstore.bat plshprofO uidrvci<br \/>\ndbstart gennfgt ncomp proc uidrvciO<br \/>\ndeploync gennttab netmgr rconfig umu<br \/>\ndg4pwd genoccish oerr relink unzip<br \/>\ndg4pwdO genorasdksh oerr.pl rman wrap<br \/>\ndgmgrl gensyslib ojvmjava rmanO wrc<br \/>\ndiagsetup imp ojvmtc roohctl wrcO<br \/>\ndiskmon.bin impO orabase schema xml<br \/>\ndropjava impdp orabaseconfig skgxpinfo xmlwf<br \/>\nechodo impdpO orabasehome sqlldr zip<br \/>\neusm kgmgr oraenv sqlldrO<br \/>\nexp kgmgrO orajaxb sqlplus<br \/>\nexpO lbuilder orapki srvctl<br \/>\npi@raspberrypi:~ $<br \/>\n<\/code><\/p>\n<p>Just for fun I started a Data Guard Observer on my Rasperry Pi and let it perform a fast-start failover followed by reinstating the previous Primary DB:<\/p>\n<p><code><br \/>\npi@raspberrypi:~ $ dgmgrl<br \/>\nDGMGRL for Linux: Release 12.2.0.1.0 - Production on Tue Jan 9 17:08:31 2018<br \/>\n&nbsp;<br \/>\nCopyright (c) 1982, 2017, Oracle and\/or its affiliates. All rights reserved.<br \/>\n&nbsp;<br \/>\nWelcome to DGMGRL, type \"help\" for information.<br \/>\nDGMGRL&gt; connect sys\/manager@tismeds1<br \/>\nConnected to \"TISMEDS1\"<br \/>\nConnected as SYSDBA.<br \/>\nDGMGRL&gt; show configuration;<br \/>\n&nbsp;<br \/>\nConfiguration - TISMED<br \/>\n&nbsp;<br \/>\nProtection Mode: MaxAvailability<br \/>\nMembers:<br \/>\nTISMEDS1 - Primary database<br \/>\nTISMEDS2 - Physical standby database<br \/>\n&nbsp;<br \/>\nFast-Start Failover: DISABLED<br \/>\n&nbsp;<br \/>\nConfiguration Status:<br \/>\nSUCCESS (status updated 49 seconds ago)<br \/>\n&nbsp;<br \/>\nDGMGRL&gt; ENABLE FAST_START FAILOVER ;<br \/>\nEnabled.<br \/>\nDGMGRL&gt; start observer;<br \/>\n[W000 01\/09 17:09:16.20] FSFO target standby is TISMEDS2<br \/>\n[W000 01\/09 17:09:20.18] Observer trace level is set to USER<br \/>\n[W000 01\/09 17:09:20.19] Try to connect to the primary.<br \/>\n[W000 01\/09 17:09:20.20] Try to connect to the primary TISMEDS1.<br \/>\n[W000 01\/09 17:09:20.28] The standby TISMEDS2 is ready to be a FSFO target<br \/>\n[W000 01\/09 17:09:22.29] Connection to the primary restored!<br \/>\n[W000 01\/09 17:09:24.35] Disconnecting from database TISMEDS1.<br \/>\n[W000 01\/09 17:10:32.84] Primary database cannot be reached.<br \/>\n[W000 01\/09 17:10:49.29] Primary database cannot be reached.<br \/>\n[W000 01\/09 17:10:49.30] Fast-Start Failover threshold has expired.<br \/>\n[W000 01\/09 17:10:49.31] Try to connect to the standby.<br \/>\n[W000 01\/09 17:10:49.32] Making a last connection attempt to primary database before proceeding with Fast-Start Failover.<br \/>\n[W000 01\/09 17:10:49.33] Check if the standby is ready for failover.<br \/>\n[S002 01\/09 17:10:50.03] Fast-Start Failover started...<br \/>\n&nbsp;<br \/>\n17:10:50.04 Tuesday, January 09, 2018<br \/>\nInitiating Fast-Start Failover to database \"TISMEDS2\"...<br \/>\n[S002 01\/09 17:10:50.05] Initiating Fast-start Failover.<br \/>\nPerforming failover NOW, please wait...<br \/>\nUnable to connect to database using TISMEDS1<br \/>\nORA-12543: TNS:destination host unreachable<br \/>\n&nbsp;<br \/>\nFailover succeeded, new primary is \"TISMEDS2\"<br \/>\n17:10:52.79 Tuesday, January 09, 2018<br \/>\n[S002 01\/09 17:10:52.80] Fast-Start Failover finished...<br \/>\n[W000 01\/09 17:10:52.81] Failover succeeded. Restart pinging.<br \/>\n[W000 01\/09 17:10:52.88] Primary database has changed to TISMEDS2.<br \/>\n[W000 01\/09 17:10:52.91] Try to connect to the primary.<br \/>\n[W000 01\/09 17:10:52.92] Try to connect to the primary TISMEDS2.<br \/>\n[W000 01\/09 17:10:54.33] The standby TISMEDS1 needs to be reinstated<br \/>\n[W000 01\/09 17:10:54.34] Try to connect to the new standby TISMEDS1.<br \/>\n[W000 01\/09 17:10:54.35] Connection to the primary restored!<br \/>\nUnable to connect to database using TISMEDS1<br \/>\nORA-12543: TNS:destination host unreachable<br \/>\n&nbsp;<br \/>\n[W000 01\/09 17:10:56.36] Disconnecting from database TISMEDS2.<br \/>\n[W000 01\/09 17:11:24.84] Try to connect to the new standby TISMEDS1.<br \/>\nUnable to connect to database using TISMEDS1<br \/>\nORA-12543: TNS:destination host unreachable<br \/>\n&nbsp;<br \/>\n[W000 01\/09 17:11:54.85] Try to connect to the new standby TISMEDS1.<br \/>\nUnable to connect to database using TISMEDS1<br \/>\nORA-12541: TNS:no listener<br \/>\n&nbsp;<br \/>\n[W000 01\/09 17:12:24.17] Try to connect to the new standby TISMEDS1.<br \/>\nUnable to connect to database using TISMEDS1<br \/>\nORA-12541: TNS:no listener<br \/>\n&nbsp;<br \/>\n[W000 01\/09 17:12:54.54] Try to connect to the new standby TISMEDS1.<br \/>\n[W000 01\/09 17:12:57.58] Connection to the new standby restored!<br \/>\n[W000 01\/09 17:12:57.63] Failed to ping the new standby.<br \/>\n[W000 01\/09 17:12:58.64] Try to connect to the new standby TISMEDS1.<br \/>\n[W000 01\/09 17:13:00.65] Connection to the new standby restored!<br \/>\n[W000 01\/09 17:13:32.32] Try to connect to the primary TISMEDS2.<br \/>\n[W000 01\/09 17:13:34.36] Connection to the primary restored!<br \/>\n[W000 01\/09 17:13:35.37] Wait for new primary to be ready to reinstate.<br \/>\n[W000 01\/09 17:13:36.38] New primary is now ready to reinstate.<br \/>\n[W000 01\/09 17:13:36.38] Issuing REINSTATE command.<br \/>\n&nbsp;<br \/>\n17:13:36.39 Tuesday, January 09, 2018<br \/>\nInitiating reinstatement for database \"TISMEDS1\"...<br \/>\nReinstating database \"TISMEDS1\", please wait...<br \/>\n[W000 01\/09 17:13:54.64] The standby TISMEDS1 is ready to be a FSFO target<br \/>\nReinstatement of database \"TISMEDS1\" succeeded<br \/>\n17:13:56.24 Tuesday, January 09, 2018<br \/>\n[W000 01\/09 17:13:56.65] Successfully reinstated database TISMEDS1.<br \/>\n[W000 01\/09 17:13:57.70] The reinstatement of standby TISMEDS1 was just done<br \/>\n<\/code><\/p>\n<p>Summary: Is it possible to run an Oracle client on the Rasberry Pi? Yes, it is! Running native Java-applications using JDBC Thin Connections is not a problem at all. Running a fat Oracle Client is possible as well using x86 emulation software. Is this supported by Oracle? I do assume that like with any other non-Oracle-VM-solution you would have to prove possible issues by reproducing the problem on a bare metal x86 platform to be able to open a Service Request.<\/p>\n<p>Anyway, if you plan to run an Oracle 18c XE DB at home (see e.g. here<br \/>\nhttps:\/\/ora-00001.blogspot.de\/2017\/10\/oracle-xe-12c-becomes-oracle-xe-18c.html )<br \/>\nthen you might consider running your client on a Raspberry Pi \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What are the possibilities to use a Raspberry Pi computer as an Oracle client? Besides other things I&#8217;ll show a possibility in this Blog to run the fat\/thick Oracle Client on a Raspberry Pi! REMARK: All examples below were made with an Rasperry Pi 3 and the OS Raspbian, which can be downloaded from https:\/\/www.raspberrypi.org\/downloads [&hellip;]<\/p>\n","protected":false},"author":35,"featured_media":10754,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229,198,368,59],"tags":[1257,1258,96,1259,1260,1261],"type_dbi":[],"class_list":["post-10753","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring","category-database-management","category-development-performance","category-oracle","tag-client","tag-exagear","tag-oracle","tag-pi","tag-raspberry","tag-rasperry-pi"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Running the Oracle Client on a Raspberry Pi - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/running-the-oracle-client-on-a-raspberry-pi\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Running the Oracle Client on a Raspberry Pi\" \/>\n<meta property=\"og:description\" content=\"What are the possibilities to use a Raspberry Pi computer as an Oracle client? Besides other things I&#8217;ll show a possibility in this Blog to run the fat\/thick Oracle Client on a Raspberry Pi! REMARK: All examples below were made with an Rasperry Pi 3 and the OS Raspbian, which can be downloaded from https:\/\/www.raspberrypi.org\/downloads [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/running-the-oracle-client-on-a-raspberry-pi\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-01-09T16:57:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IMG_1653-e1515518184155-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1920\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Clemens Bleile\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ifgtxD2SrQ8r!YuXj\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Clemens Bleile\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/running-the-oracle-client-on-a-raspberry-pi\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/running-the-oracle-client-on-a-raspberry-pi\\\/\"},\"author\":{\"name\":\"Clemens Bleile\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/0ac04011f60f2e93c115358d0789c2da\"},\"headline\":\"Running the Oracle Client on a Raspberry Pi\",\"datePublished\":\"2018-01-09T16:57:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/running-the-oracle-client-on-a-raspberry-pi\\\/\"},\"wordCount\":639,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/running-the-oracle-client-on-a-raspberry-pi\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/IMG_1653-e1515518184155-scaled.jpg\",\"keywords\":[\"Client\",\"exagear\",\"Oracle\",\"pi\",\"raspberry\",\"Rasperry Pi\"],\"articleSection\":[\"Database Administration &amp; Monitoring\",\"Database management\",\"Development &amp; Performance\",\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/running-the-oracle-client-on-a-raspberry-pi\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/running-the-oracle-client-on-a-raspberry-pi\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/running-the-oracle-client-on-a-raspberry-pi\\\/\",\"name\":\"Running the Oracle Client on a Raspberry Pi - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/running-the-oracle-client-on-a-raspberry-pi\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/running-the-oracle-client-on-a-raspberry-pi\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/IMG_1653-e1515518184155-scaled.jpg\",\"datePublished\":\"2018-01-09T16:57:05+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/0ac04011f60f2e93c115358d0789c2da\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/running-the-oracle-client-on-a-raspberry-pi\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/running-the-oracle-client-on-a-raspberry-pi\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/running-the-oracle-client-on-a-raspberry-pi\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/IMG_1653-e1515518184155-scaled.jpg\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/IMG_1653-e1515518184155-scaled.jpg\",\"width\":2560,\"height\":1920},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/running-the-oracle-client-on-a-raspberry-pi\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Running the Oracle Client on a Raspberry Pi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/0ac04011f60f2e93c115358d0789c2da\",\"name\":\"Clemens Bleile\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1f596609fc67cb28ed714e7bccc81ed4cd73b8582a8148a490c77daeb2fde21a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1f596609fc67cb28ed714e7bccc81ed4cd73b8582a8148a490c77daeb2fde21a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1f596609fc67cb28ed714e7bccc81ed4cd73b8582a8148a490c77daeb2fde21a?s=96&d=mm&r=g\",\"caption\":\"Clemens Bleile\"},\"description\":\"Clemens Bleile has more than 30 years of IT experience, thirteen in Oracle Support and fifteen in Oracle Consulting. He is specialized in Oracle Database Performance Tuning (SQL Tuning, DB Tuning) and developing an Oracle DB IT architecture (highly available, low-maintenance, cost efficient storage of data). He is an expert in problem analysis and resolution. Prior to joining dbi services, Clemens Bleile was Manager of the EMEA Database Performance team at the Oracle Global Customer Support Services. Clemens Bleile is Oracle Certified Professional 11g, 12c and Oracle Certified Expert for Performance Management and Tuning and holds a Master Degree, Business Information Systems from the Fachhochschule Furtwangen, Germany.\",\"sameAs\":[\"https:\\\/\\\/www.dbi-services.com\",\"https:\\\/\\\/x.com\\\/ifgtxD2SrQ8r!YuXj\"],\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/clemens-bleile\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Running the Oracle Client on a Raspberry Pi - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/running-the-oracle-client-on-a-raspberry-pi\/","og_locale":"en_US","og_type":"article","og_title":"Running the Oracle Client on a Raspberry Pi","og_description":"What are the possibilities to use a Raspberry Pi computer as an Oracle client? Besides other things I&#8217;ll show a possibility in this Blog to run the fat\/thick Oracle Client on a Raspberry Pi! REMARK: All examples below were made with an Rasperry Pi 3 and the OS Raspbian, which can be downloaded from https:\/\/www.raspberrypi.org\/downloads [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/running-the-oracle-client-on-a-raspberry-pi\/","og_site_name":"dbi Blog","article_published_time":"2018-01-09T16:57:05+00:00","og_image":[{"width":2560,"height":1920,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IMG_1653-e1515518184155-scaled.jpg","type":"image\/jpeg"}],"author":"Clemens Bleile","twitter_card":"summary_large_image","twitter_creator":"@ifgtxD2SrQ8r!YuXj","twitter_misc":{"Written by":"Clemens Bleile","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/running-the-oracle-client-on-a-raspberry-pi\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/running-the-oracle-client-on-a-raspberry-pi\/"},"author":{"name":"Clemens Bleile","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0ac04011f60f2e93c115358d0789c2da"},"headline":"Running the Oracle Client on a Raspberry Pi","datePublished":"2018-01-09T16:57:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/running-the-oracle-client-on-a-raspberry-pi\/"},"wordCount":639,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/running-the-oracle-client-on-a-raspberry-pi\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IMG_1653-e1515518184155-scaled.jpg","keywords":["Client","exagear","Oracle","pi","raspberry","Rasperry Pi"],"articleSection":["Database Administration &amp; Monitoring","Database management","Development &amp; Performance","Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/running-the-oracle-client-on-a-raspberry-pi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/running-the-oracle-client-on-a-raspberry-pi\/","url":"https:\/\/www.dbi-services.com\/blog\/running-the-oracle-client-on-a-raspberry-pi\/","name":"Running the Oracle Client on a Raspberry Pi - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/running-the-oracle-client-on-a-raspberry-pi\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/running-the-oracle-client-on-a-raspberry-pi\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IMG_1653-e1515518184155-scaled.jpg","datePublished":"2018-01-09T16:57:05+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0ac04011f60f2e93c115358d0789c2da"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/running-the-oracle-client-on-a-raspberry-pi\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/running-the-oracle-client-on-a-raspberry-pi\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/running-the-oracle-client-on-a-raspberry-pi\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IMG_1653-e1515518184155-scaled.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/IMG_1653-e1515518184155-scaled.jpg","width":2560,"height":1920},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/running-the-oracle-client-on-a-raspberry-pi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Running the Oracle Client on a Raspberry Pi"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/0ac04011f60f2e93c115358d0789c2da","name":"Clemens Bleile","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/1f596609fc67cb28ed714e7bccc81ed4cd73b8582a8148a490c77daeb2fde21a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1f596609fc67cb28ed714e7bccc81ed4cd73b8582a8148a490c77daeb2fde21a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1f596609fc67cb28ed714e7bccc81ed4cd73b8582a8148a490c77daeb2fde21a?s=96&d=mm&r=g","caption":"Clemens Bleile"},"description":"Clemens Bleile has more than 30 years of IT experience, thirteen in Oracle Support and fifteen in Oracle Consulting. He is specialized in Oracle Database Performance Tuning (SQL Tuning, DB Tuning) and developing an Oracle DB IT architecture (highly available, low-maintenance, cost efficient storage of data). He is an expert in problem analysis and resolution. Prior to joining dbi services, Clemens Bleile was Manager of the EMEA Database Performance team at the Oracle Global Customer Support Services. Clemens Bleile is Oracle Certified Professional 11g, 12c and Oracle Certified Expert for Performance Management and Tuning and holds a Master Degree, Business Information Systems from the Fachhochschule Furtwangen, Germany.","sameAs":["https:\/\/www.dbi-services.com","https:\/\/x.com\/ifgtxD2SrQ8r!YuXj"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/clemens-bleile\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/10753","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=10753"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/10753\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/10754"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=10753"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=10753"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=10753"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=10753"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}