The Oracle Database software is large, several gigabytes in Oracle Home for the part that is deployed on the operating system, and additional megabytes in SYSTEM tablespace for the part that is deployed as stored procedures (mainly the dbms_% packages). And this is not a problem with the traditional deployment methods where you can have a .zip golden image of the Oracle Home, and a database template to start a new DB. But this monolithic approach is not adapted to the current way people want to deploy software:
- RPM: since 18.3 Oracle provides a .rpm to install. However, it is a single big one, like the zip install. What developers want is a small core .rpm and some additional ones for advanced features and options.
- Docker: Again, Oracle provides a way to pull an image, or build it. But what developers need is a small image with the core, and the additional features as additional layers.
This post is some research I did in order to have only the minimum required files in the Oracle Home in order to create a database and run some basic SQL.
Disclaimer: This is only for research. Nothing is supported here...
I start with an empty directory /u01/xsora/product/18c/dbhomeXS
where I’ll install my extra-small Oracle Home. I have a normal 18.4 Oracle Home in /u01/app/oracle/product/18.0.0/dbhome_1_XL where I’ll take the files from.
sqlplus
I’ll need sqlplus to run my SQL commands. There’s the executable in bin/
# mkdir -p /u01/xsora/product/18c/dbhomeXS/bin # cp /u01/app/oracle/product/18.0.0/dbhome_1_XL/bin/sqlplus /u01/xsora/product/18c/dbhomeXS/bin/sqlplus
That’s small (32k) but requires some dynamic libraries:
# LD_LIBRARY_PATH=/u01/xsora/product/18c/dbhomeXS/lib ORACLE_HOME=/u01/xsora/product/18c/dbhomeXS ORACLE_SID=XS /u01/xsora/product/18c/dbhomeXS/bin/sqlplus /nolog /u01/xsora/product/18c/dbhomeXS/bin/sqlplus: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
I add this one:
# mkdir -p /u01/xsora/product/18c/dbhomeXS/lib # cp /u01/app/oracle/product/18.0.0/dbhome_1_XL/lib/libsqlplus.so /u01/xsora/product/18c/dbhomeXS/lib/libsqlplus.so
And iterate over the missing libraries, adding them one by one:
error while loading shared libraries: libclntsh.so.18.1 error while loading shared libraries: libclntshcore.so.18.1 error while loading shared libraries: libmql1.so error while loading shared libraries: libipc1.so error while loading shared libraries: libnnz18.so error while loading shared libraries: libons.so
I could also have added directly all libraries required by the executable:
# ldd /u01/xsora/product/18c/dbhomeXS/bin/sqlplus | sort /lib64/ld-linux-x86-64.so.2 (0x000055dc644e3000) libaio.so.1 => /lib64/libaio.so.1 (0x00007f32548a7000) libclntshcore.so.18.1 => not found libclntsh.so.18.1 => not found libc.so.6 => /lib64/libc.so.6 (0x00007f32542c0000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f32553eb000) libipc1.so => not found libmql1.so => not found libm.so.6 => /lib64/libm.so.6 (0x00007f32550e8000) libnnz18.so => not found libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f3254cb2000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f3254ecc000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f325468e000) librt.so.1 => /lib64/librt.so.1 (0x00007f3254aa9000) libsqlplus.so => not found linux-vdso.so.1 => (0x00007ffc6edb5000)
but I preferred to wait for error messages, as I like troubleshooting :)
I have now 100MB in /u01/xsora/product/18c/dbhomeXS:
# du -h 32K /u01/xsora/product/18c/dbhomeXS/bin 95M /u01/xsora/product/18c/dbhomeXS/lib 95M /u01/xsora/product/18c/dbhomeXS
But sqlplus requires some other files, such as the SQL*Plus message files
# LD_LIBRARY_PATH=/u01/xsora/product/18c/dbhomeXS/lib ORACLE_HOME=/u01/xsora/product/18c/dbhomeXS ORACLE_SID=XS /u01/xsora/product/18c/dbhomeXS/bin/sqlplus /nolog Error 6 initializing SQL*Plus SP2-0667: Message file sp1<lang>.msb not found SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory # mkdir -p /u01/xsora/product/18c/dbhomeXS/sqlplus/mesg # cp /u01/app/oracle/product/18.0.0/dbhome_1_XL/sqlplus/mesg/sp1us.msb /u01/xsora/product/18c/dbhomeXS/sqlplus/mesg/sp1us.msb
How do I know it was the ‘us’ ones? I can check the environment, but also simply check the failed open() system call:
# LD_LIBRARY_PATH=/u01/xsora/product/18c/dbhomeXS/lib ORACLE_HOME=/u01/xsora/product/18c/dbhomeXS ORACLE_SID=XS strace -o /tmp/tmp.trc -f -y -e trace=file -v -s 100 /u01/xsora/product/18c/dbhomeXS/bin/sqlplus /nolog
and check the last ENOENT
awk -F '"' ' /ENOENT/{ noent[$0]=NR } END{ for (i in noent){ print noent[i],i } }' /tmp/tmp.trc | sort -n | awk '{$1="";print}' | grep /u01/xsora/product/18c/dbhomeXS | tail
Which can show something like
17628 open("/u01/xsora/product/18c/dbhomeXS/sqlplus/mesg/sp2us.msb", O_RDONLY) = -1 ENOENT (No such file or directory)
I’ve added /sqlplus/mesg/sp1us.msb and /sqlplus/mesg/sp2us.msb but need also some ORA messages because now I get:
ERROR: Error while trying to retrieve text for error ORA-01804 SP2-0152: ORACLE may not be functioning properly
strace shows:
17648 open("/u01/xsora/product/18c/dbhomeXS/rdbms/mesg/oraus.msb", O_RDONLY) = -1 ENOENT (No such file or directory)
so I add it:
# mkdir -p /u01/xsora/product/18c/dbhomeXS/rdbms/mesg # cp /u01/app/oracle/product/18.0.0/dbhome_1_XL/rdbms/mesg/oraus.msb /u01/xsora/product/18c/dbhomeXS/rdbms/mesg/oraus.msb
And I now get the error message:
ERROR: ORA-01804: failure to initialize timezone information SP2-0152: ORACLE may not be functioning properly
Timezone information required and strace shows that we need the oracore/zoneinfo directory:
17687 openat(AT_FDCWD, "/u01/xsora/product/18c/dbhomeXS/oracore/zoneinfo", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
I’ve copied the whole /u01/xsora/product/18c/dbhomeXS/oracore/zoneinfo directory (without the big and little subdirectories) and I’m now able to run sqlplus /nolog
# LD_LIBRARY_PATH=/u01/xsora/product/18c/dbhomeXS/lib ORACLE_HOME=/u01/xsora/product/18c/dbhomeXS ORACLE_SID=XS /u01/xsora/product/18c/dbhomeXS/bin/sqlplus /nolog SQL*Plus: Release 18.0.0.0.0 - Production on Sun Dec 9 00:36:53 2018 Version 18.4.0.0.0 Copyright (c) 1982, 2018, Oracle. All rights reserved. 00:36:53 SQL> connect / as sysdba ERROR: ORA-12545: Connect failed because target host or object does not exist
I am in the ‘object does not exist’ here are this is a beqeath connection. And for sure, the oracle executable is not there.
I add it
# cp /u01/app/oracle/product/18.0.0/dbhome_1_XL/bin/oracle /u01/xsora/product/18c/dbhomeXS/bin/oracle
and this brings my tiny 128M Oracle Home to 545M because the oracle executable is 400MB:
# size -A -t bin/oracle | awk '{printf "%8.2f MB %-50s\n",$2/1024/1024,$0}' | sort -n | tail 2.48 MB .data.rel.ro 2597184 382703712 3.29 MB .dynstr 3445780 10175128 4.57 MB .dynsym 4792200 5382928 7.04 MB text.hot 7380336 299793840 26.53 MB .eh_frame 27820912 352785216 41.21 MB .comment 43211331 0 41.64 MB .rodata 43666688 307174208 96.27 MB .text 100951060 14076928 176.21 MB text.unlikely 184765840 115028000 403.67 MB Total 423276007
I can remove the .comment section to bring it to 360MB
# strip --remove-section=.comment bin/oracle
From the strace I can check how the executable is run. Also the occasion to see that we don’t need a lot of environment variables. ORA_NET2_DESC was added by sqlplus, as well as the argument (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
17751 execve("/u01/xsora/product/18c/dbhomeXS/bin/oracle", ["oracleXS", "(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))"], ["ORACLE_HOME=/u01/xsora/product/18c/dbhomeXS", "LD_LIBRARY_PATH=/u01/xsora/product/18c/dbhomeXS/lib", "ORACLE_SID=XS", "ORACLE_BASE=/u01/xsora", "_=/usr/bin/strace", "ORA_NET2_DESC=8,11"]) = 0
As I’ve seen in the trace file an attempt to read some TNS message I also add the file:
# mkdir -p /u01/xsora/product/18c/dbhomeXS/network/mesg # cp /u01/app/oracle/product/18.0.0/dbhome_1_XL/network/mesg/tnsus.msb /u01/xsora/product/18c/dbhomeXS/network/mesg/tnsus.msb
There are then some additional libraries required:
libofs.so: cannot open shared object file libcell18.so: cannot open shared object file libskgxp18.so: cannot open shared object file libskjcx18.so: cannot open shared object file libclsra18.so: cannot open shared object file libdbcfg18.so: cannot open shared object file libhasgen18.so: cannot open shared object file libskgxn2.so: cannot open shared object file libocr18.so: cannot open shared object file libocrb18.so: cannot open shared object file libocrutl18.so: cannot open shared object file
Of course, this can probably been optimized further as we can see some related with Exadata cells…
With all those libraries, the next error is:
SQL*Plus: Release 18.0.0.0.0 - Production on Sun Dec 9 00:36:59 2018 Version 18.4.0.0.0 Copyright (c) 1982, 2018, Oracle. All rights reserved. 00:36:59 SQL> connect / as sysdba ERROR: ORA-12547: TNS:lost contact
I follow strace ENOENT here
18006 stat("/u01/xsora/product/18c/dbhomeXS/rdbms/log", 0x7ffe1bd21e28) = -1 ENOENT (No such file or directory)
A log directory is required:
# mkdir -p /u01/xsora/product/18c/dbhomeXS/rdbms/log
and then same error
18024 chdir("/u01/xsora/product/18c/dbhomeXS/dbs") = -1 ENOENT (No such file or directory) 18024 stat("/u01/xsora/product/18c/dbhomeXS/rdbms/log/xs_ora_18024.trc",0x7ffead6c5a40) = -1 ENOENT (No such file or directory)
for the dbs directory
# mkdir -p /u01/xsora/product/18c/dbhomeXS/rdbms/log
connect / as sysdba
SQL*Plus: Release 18.0.0.0.0 - Production on Sun Dec 9 00:37:00 2018 Version 18.4.0.0.0 Copyright (c) 1982, 2018, Oracle. All rights reserved. 00:37:00 SQL> connect / as sysdba ERROR: ORA-09925: Unable to create audit trail file Linux-x86_64 Error: 2: No such file or directory Additional information: 9925 ORA-09925: Unable to create audit trail file Linux-x86_64 Error: 2: No such file or directory Additional information: 9925
I create the adump directory, as well as the ADR messages as there were an attempt to open them when logging the errors
# mkdir -p /u01/xsora/product/18c/dbhomeXS/rdbms/audit # cp /u01/app/oracle/product/18.0.0/dbhome_1_XL/rdbms/mesg/diaus.msb /u01/xsora/product/18c/dbhomeXS/rdbms/mesg/diaus.msb
I’m going further and can connect as sysdba now. Next step is to start an instance
00:37:23 SQL> connect / as sysdba Connected to an idle instance. 00:37:24 SQL> startup nomount; ORA-01078: failure in processing system parameters LRM-00109: Message 109 not found; No message file for product=ORACORE, facility=LRM Disconnected
startup nomount
I’m probably missing some parameters (as I have no init.ora) but the clear message is missing
# cp /u01/app/oracle/product/18.0.0/dbhome_1_XL/oracore/mesg/lrmus.msb /u01/xsora/product/18c/dbhomeXS/oracore/mesg/lrmus.msb
Here it is
00:37:24 SQL> connect / as sysdba Connected to an idle instance. 00:37:25 SQL> startup nomount; ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/u01/xsora/product/18c/dbhomeXS/dbs/initXS.ora' Disconnected
Only one parameter is mandatory to open an instance: the name of the database that will be managed by this instance. I also add a SGA_TARGET
# echo -e 'db_name=XS\nsga_target=1024M' > /u01/xsora/product/18c/dbhomeXS/dbs/initXS.ora
At this point I also have to define ORACLE_BASE in the environment or I get the following error when starting the instance:
ORA-12777: A non-continuable error encountered. Check the error stack for additional information [ksm_check_ob_paths:1], [ORACLE_BASE], [], []. ORA-08275: Environment variable unset
Now with ORACLE_BASE set to an existing directory, some more libraries are missing:
00:37:25 SQL> connect / as sysdba Connected to an idle instance. 00:37:27 SQL> startup nomount; ORA-40238: invalid linear algebra shared library /u01/xsora/product/18c/dbhomeXS/lib/libmkl_rt.so Disconnected
I add this one:
# cp /u01/app/oracle/product/18.0.0/dbhome_1_XL/lib/libmkl_rt.so /u01/xsora/product/18c/dbhomeXS/lib/libmkl_rt.so
I got the same with:
ORA-15180: could not open dynamic library asmclntsh library, error [open]
which I add as well
# cp /u01/app/oracle/product/18.0.0/dbhome_1_XL/lib/libasmclntsh18.so /u01/xsora/product/18c/dbhomeXS/lib/libasmclntsh18.so
I can now start my instance
00:37:40 SQL> connect / as sysdba Connected to an idle instance. 00:37:41 SQL> startup nomount; ORACLE instance started. Total System Global Area 1073740616 bytes Fixed Size 8665928 bytes Variable Size 281018368 bytes Database Buffers 775946240 bytes Redo Buffers 8110080 bytes
create database
The database creation fails when it tries to run the bootstraping SQL scripts:
00:37:44 SQL> create database; create database * ERROR at line 1: ORA-00603: ORACLE server session terminated by fatal error ORA-01092: ORACLE instance terminated. Disconnection forced ORA-01501: CREATE DATABASE failed ORA-01526: error in opening file '?/rdbms/admin/sql.bsq' ORA-07391: sftopn: fopen error, unable to open text file. Process ID: 18303 Session ID: 2 Serial number: 27194
I create the directory and add sql.bsq and the other .bsq called by it:
# mkdir /u01/xsora/product/18c/dbhomeXS/rdbms/admin
and add those files:
-rw-r--r--. 1 oracle oinstall 29607 rdbms/admin/daw.bsq -rw-r--r--. 1 oracle oinstall 170776 rdbms/admin/dcore.bsq -rw-r--r--. 1 oracle oinstall 7745 rdbms/admin/ddm.bsq -rw-r--r--. 1 oracle oinstall 779 rdbms/admin/ddst.bsq -rw-r--r--. 1 oracle oinstall 21774 rdbms/admin/denv.bsq -rw-r--r--. 1 oracle oinstall 1947 rdbms/admin/dexttab.bsq -rw-r--r--. 1 oracle oinstall 4048 rdbms/admin/dfba.bsq -rw-r--r--. 1 oracle oinstall 4937 rdbms/admin/dfmap.bsq -rw-r--r--. 1 oracle oinstall 31309 rdbms/admin/dhcs.bsq -rw-r--r--. 1 oracle oinstall 728 rdbms/admin/djava.bsq -rw-r--r--. 1 oracle oinstall 43961 rdbms/admin/dlmnr.bsq -rw-r--r--. 1 oracle oinstall 11063 rdbms/admin/dmanage.bsq -rw-r--r--. 1 oracle oinstall 19724 rdbms/admin/dmisc.bsq -rw-r--r--. 1 oracle oinstall 26581 rdbms/admin/dobj.bsq -rw-r--r--. 1 oracle oinstall 43542 rdbms/admin/doptim.bsq -rw-r--r--. 1 oracle oinstall 46805 rdbms/admin/dpart.bsq -rw-r--r--. 1 oracle oinstall 20059 rdbms/admin/dplsql.bsq -rw-r--r--. 1 oracle oinstall 6425 rdbms/admin/dpstdy.bsq -rw-r--r--. 1 oracle oinstall 22075 rdbms/admin/drac.bsq -rw-r--r--. 1 oracle oinstall 142437 rdbms/admin/drep.bsq -rw-r--r--. 1 oracle oinstall 10680 rdbms/admin/drupg.bsq -rw-r--r--. 1 oracle oinstall 107066 rdbms/admin/dsec.bsq -rw-r--r--. 1 oracle oinstall 25728 rdbms/admin/dsqlddl.bsq -rw-r--r--. 1 oracle oinstall 63128 rdbms/admin/dsummgt.bsq -rw-r--r--. 1 oracle oinstall 5774 rdbms/admin/dtlog.bsq -rw-r--r--. 1 oracle oinstall 18933 rdbms/admin/dtools.bsq -rw-r--r--. 1 oracle oinstall 5599 rdbms/admin/dtxnspc.bsq
A few more files to add or we have some internal errors like ORA-7445 [gslumcCalloc()+128] which are a bit more complex to troubleshoot:
00:37:47 SQL> create database; create database * ERROR at line 1: ORA-01012: not logged on Process ID: 0 Session ID: 0 Serial number: 0
I’ve added the following:
# mkdir -p /u01/xsora/product/18c/dbhomeXS/nls # cp ... /u01/xsora/product/18c/dbhomeXS/nls/data # mkdir -p /u01/xsora/product/18c/dbhomeXS/ldap/mesg # cp ... /u01/xsora/product/18c/dbhomeXS/ldap/mesg/ldapus.msb # mkdir -p /u01/xsora/product/18c/dbhomeXS/sqlplus/admin # cp ... /u01/xsora/product/18c/dbhomeXS/sqlplus/admin/pupbld.sql # mkdir -p /u01/xsora/product/18c/dbhomeXS/plsql/mesg # cp ... /u01/xsora/product/18c/dbhomeXS/plsql/mesg/pcmus.msb
The database creation works now, and I can even create a table:
00:37:51 SQL> create database; Database created. 00:38:03 SQL> create table DEMO as select * from V$VERSION; Table created. 00:38:03 SQL> select banner from DEMO; BANNER -------------------------------------------------------------------- Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
This looks good but is clearly insufficient. I’ll not be able to connect with another user if I don’t have the STANDARD package.
catalog.sql
I need to run ?/rdbms/admin/catalog.sql to build the dictionary and standard functions.
Here is what I add in rdbms/admin:
-rw-r--r--. 1 oracle oinstall 61441 Dec 9 00:37 catalog.sql -rw-r--r--. 1 oracle oinstall 3825 Dec 9 00:37 cdstrt.sql -rw-r--r--. 1 oracle oinstall 13607 Dec 9 00:37 dbmsstdx.sql -rw-r--r--. 1 oracle oinstall 128 Dec 9 00:37 standard.sql -rw-r--r--. 1 oracle oinstall 147275 Dec 9 00:37 stdspec.sql -rw-r--r--. 1 oracle oinstall 18879 Dec 9 00:37 stdbody.sql -rw-r--r--. 1 oracle oinstall 16441 Dec 9 00:37 catblock.sql -rw-r--r--. 1 oracle oinstall 12841 Dec 9 00:37 catcdbviews.sql -rw-r--r--. 1 oracle oinstall 18325 Dec 9 00:37 catcr.sql -rw-r--r--. 1 oracle oinstall 407241 Dec 9 00:37 catexp.sql -rw-r--r--. 1 oracle oinstall 32539 Dec 9 00:37 catldr.sql -rw-r--r--. 1 oracle oinstall 1607 Dec 9 00:37 catpses.sql -rw-r--r--. 1 oracle oinstall 5539 Dec 9 00:37 catptt.sql -rw-r--r--. 1 oracle oinstall 185315 Dec 9 00:37 catsum.sql -rw-r--r--. 1 oracle oinstall 1457 Dec 9 00:37 cdadr.sql -rw-r--r--. 1 oracle oinstall 912 Dec 9 00:37 cdaw.sql -rw-r--r--. 1 oracle oinstall 20109 Dec 9 00:37 cdclst.sql -rw-r--r--. 1 oracle oinstall 29928 Dec 9 00:37 cdcore.sql -rw-r--r--. 1 oracle oinstall 61683 Dec 9 00:37 cddm.sql -rw-r--r--. 1 oracle oinstall 13507 Dec 9 00:37 cddst.sql -rw-r--r--. 1 oracle oinstall 1203 Dec 9 00:37 cdend.sql -rw-r--r--. 1 oracle oinstall 19429 Dec 9 00:37 cdenv.sql -rw-r--r--. 1 oracle oinstall 38543 Dec 9 00:37 cdexttab.sql -rw-r--r--. 1 oracle oinstall 329842 Dec 9 00:37 cdfixed.sql -rw-r--r--. 1 oracle oinstall 207536 Dec 9 00:37 cdhcs.sql -rw-r--r--. 1 oracle oinstall 926 Dec 9 00:37 cdjava.sql -rw-r--r--. 1 oracle oinstall 4931 Dec 9 00:37 cdmanage.sql -rw-r--r--. 1 oracle oinstall 132917 Dec 9 00:37 cdobj.sql -rw-r--r--. 1 oracle oinstall 95543 Dec 9 00:37 cdoptim.sql -rw-r--r--. 1 oracle oinstall 304969 Dec 9 00:37 cdpart.sql -rw-r--r--. 1 oracle oinstall 142576 Dec 9 00:37 cdplsql.sql -rw-r--r--. 1 oracle oinstall 6903 Dec 9 00:37 cdrac.sql -rw-r--r--. 1 oracle oinstall 1020 Dec 9 00:37 cdrep.sql -rw-r--r--. 1 oracle oinstall 34328 Dec 9 00:37 cdsec.sql -rw-r--r--. 1 oracle oinstall 41058 Dec 9 00:37 cdsqlddl.sql -rw-r--r--. 1 oracle oinstall 3964 Dec 9 00:37 cdsummgt.sql -rw-r--r--. 1 oracle oinstall 4632 Dec 9 00:37 cdtools.sql -rw-r--r--. 1 oracle oinstall 8165 Dec 9 00:37 cdtxnspc.sql -rw-r--r--. 1 oracle oinstall 1567 Dec 9 00:37 dbmscrs.sql -rw-r--r--. 1 oracle oinstall 871 Dec 9 00:37 prvtcrs.plb -rw-r--r--. 1 oracle oinstall 914 Dec 9 00:37 sqlsessend.sql -rw-r--r--. 1 oracle oinstall 923 Dec 9 00:37 sqlsessstart.sql -rw-r--r--. 1 oracle oinstall 41822 Dec 9 00:37 utlraw.sql
Those are all files run
SQL> ?/rdbms/admin/catalog.sql
Once run, I still have some errors when sqlplus tries to call some DBMS_% packages, as I’ve not run catproc.sql, but I’m able to connect as another user and run some SQL:
00:38:55 SQL> grant connect,resource to demo identified by demo; Grant succeeded. 00:38:55 SQL> alter user demo quota unlimited on SYSTEM; User altered. 00:38:55 SQL> connect demo/demo ERROR: ORA-06550: line 1, column 7: PLS-00201: identifier 'DBMS_APPLICATION_INFO.SET_MODULE' must be declared ORA-06550: line 1, column 7: PL/SQL: Statement ignored Error accessing package DBMS_APPLICATION_INFO Connected. 00:38:55 SQL> create table DEMO as select banner text from V$VERSION; Table created. 00:38:55 SQL> insert into DEMO values(to_char(current_timestamp)); 1 row created. 00:38:55 SQL> select * from DEMO; TEXT -------------------------------------------------------------------------------- Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production 09-DEC-18 12.38.55.426872 AM +01:00
Total: 800 MB
In summary, the size of this is 850MB
du -h /u01/xsora/product/18c/dbhomeXS/ | sort -h 8.0K /u01/xsora/product/18c/dbhomeXS/sqlplus/admin 12K /u01/xsora/product/18c/dbhomeXS/oracore/mesg 12K /u01/xsora/product/18c/dbhomeXS/srvm/mesg 16K /u01/xsora/product/18c/dbhomeXS/srvm 48K /u01/xsora/product/18c/dbhomeXS/plsql/mesg 52K /u01/xsora/product/18c/dbhomeXS/plsql 56K /u01/xsora/product/18c/dbhomeXS/network/mesg 60K /u01/xsora/product/18c/dbhomeXS/network 60K /u01/xsora/product/18c/dbhomeXS/sqlplus/mesg 64K /u01/xsora/product/18c/dbhomeXS/rdbms/log 72K /u01/xsora/product/18c/dbhomeXS/sqlplus 140K /u01/xsora/product/18c/dbhomeXS/ldap/mesg 144K /u01/xsora/product/18c/dbhomeXS/ldap 1.6M /u01/xsora/product/18c/dbhomeXS/rdbms/mesg 3.5M /u01/xsora/product/18c/dbhomeXS/rdbms/admin 5.6M /u01/xsora/product/18c/dbhomeXS/rdbms/audit 11M /u01/xsora/product/18c/dbhomeXS/rdbms 32M /u01/xsora/product/18c/dbhomeXS/oracore 32M /u01/xsora/product/18c/dbhomeXS/oracore/zoneinfo 47M /u01/xsora/product/18c/dbhomeXS/nls 47M /u01/xsora/product/18c/dbhomeXS/nls/data 130M /u01/xsora/product/18c/dbhomeXS/lib 265M /u01/xsora/product/18c/dbhomeXS/dbs 362M /u01/xsora/product/18c/dbhomeXS/bin 846M /u01/xsora/product/18c/dbhomeXS/
This includes the database (in dbs), the binary software (mainly oracle binary and libs) and some static data stored in files mainly related to Globalization (NLS information, Timezone).
I've posted an attempt to build this in docker in: https://medium.com/@FranckPachot/minimal-oracle-installation-and-docker-image-ed47447e62a0
The comments are closed on this post, but do not hesitate to give feedback, comment or questions on Twitter (@FranckPachot)