Oracle Fusion Middleware & Application Server

Tuesday, June 11, 2019

Oracle Database 19c for Windows and Linux on System z available

Since this weekend the latest Oracle Database 19c (19.3) are also available for Windows (64-bit) and Linux on System z.

The Installation sources can be found under https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html



The Windows (64-bit) version can be found under the following link under Oracle Technology Network https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle19c-windows-5539283.html


The zLinux version can be found under the following link under Oracle Technology Network https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle19c-linux-zseries64-193000-5539116.html


Happy download :-)

Wednesday, May 29, 2019

Oracle 19c for AIX and HP-UX available

After Oracle released the Oracle Database 19c (19.3) for Linux and Solaris, now you can download as well the Oracle Database 19c (19.3) for IBM AIX and HP-UX ia64.

The software can be found under https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html



Happy download :-)


Tuesday, May 14, 2019

Flexible Patching Concept for Optimized WebLogic Image on Docker

In the last days I was publishing my Optimized WebLogic Image on Docker Solution, see following links:

The previous version of my Optimized WebLogic Image was based on fixed patch numbers, so not really flexible.

My latest update contains now the possibility to apply during the Image build multiple WebLogic Patches, just the OPatch Patch 28186730 is mandatory.

The latest sources you can find under my GitHub Repository https://github.com/DirkNachbar/Docker/tree/master/OracleWebLogic

The flexible patching concept is mainly based on Gerald Venzl's Patch Apply Solution for Oracle Database Docker Images https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance/samples/applypatch, I took his solution as base and modified it for the usage for WebLogic 12.2.1.3.0 and aligned as well my Dockerfile.

Now you just have to download your desired patches and place them into the folder dockerfiles/12.2.1.3/patches/00n

For example you want to apply directly at the Image build the Oracle CPU April 2019 (29016089) and the WebLogic Patch 29637821, just download the 2 patches plus the mandatory OPatch Patch 28186730. Place the OPatch Patch 28186730 into the directory dockerfiles/12.2.1.3/patches. The Oracle CPU April 2019 (29016089) you place into dockerfiles/12.2.1.3/patches/001 and the WebLogic Patch 29637821 you place into dockerfiles/12.2.1.3/patches/002

#
cd dockerfiles/12.2.1.3/patches
tree
├── 001
│   └── p29016089_122130_Generic.zip
├── 002
│   └── p29637821_122130_Generic.zip
├── applyPatches.sh
└── p28186730_139400_Generic.zip

In case you want to add a 3rd patch, simply create the folder dockerfiles/12.2.1.3/patches/003 and place your patch zip file there.
The applyPatches.sh script, which is executed while the Image build will take care of anything ;-)

Finally follow the instructions on how to build the image and how to start your Container from my GitHub Repository https://github.com/DirkNachbar/Docker/tree/master/OracleWebLogic

After you have started your WebLogic Server Container, you can verify the patch apply with following steps:

#
$ docker exec -it <Your Container Name> /bin/bash
[root@b08c600a5766 oracle]$ su - oracle
[oracle@b08c600a5766 ~]$ cd /u01/oracle/
[oracle@b08c600a5766 ~]$ export ORACLE_HOME=`pwd`
[oracle@b08c600a5766 ~]$ $ORACLE_HOME/OPatch/opatch lsinv
Oracle Interim Patch Installer version 13.9.4.2.0
Copyright (c) 2019, Oracle Corporation.  All rights reserved.
. . .
. . .
Interim patches (6) :

Patch  29637821     : applied on Tue May 14 12:53:46 UTC 2019
Unique Patch ID:  22888395
Patch description:  "One-off"
   Created on 24 Apr 2019, 22:39:34 hrs PST8PDT
   Bugs fixed:
     29637821

Patch  29016089     : applied on Tue May 14 12:53:14 UTC 2019
Unique Patch ID:  22640288
Patch description:  "WLS PATCH SET UPDATE 12.2.1.3.190416"
   Created on 31 Jan 2019, 00:50:49 hrs PST8PDT
   Bugs fixed:
     23076695, 23103220, 25387569, 25488428, 25580220, 25665727, 25750303
     25800186, 25987400, 25993295, 26026959, 26080417, 26098043, 26144830
     26145911, 26248394, 26267487, 26268190, 26353793, 26439373, 26473149
     26499391, 26502060, 26547016, 26589850, 26608537, 26624375, 26626528
     26731253, 26791760, 26806438, 26828499, 26835012, 26929163, 26936500
     26943614, 26985581, 27033250, 27055227, 27086845, 27111664, 27117282
     27118731, 27131483, 27187631, 27213775, 27234961, 27272911, 27284496
     27397287, 27411153, 27417245, 27445260, 27469756, 27486993, 27516977
     27561226, 27603087, 27617877, 27693510, 27803728, 27819370, 27912485
     27927071, 27928833, 27934864, 27947832, 27948303, 27988175, 28071913
     28103938, 28110087, 28138954, 28140800, 28142116, 28149607, 28166483
     28171852, 28172380, 28311332, 28313163, 28319690, 28360225, 28375173
     28375702, 28409586, 28503638, 28550962, 28559579, 28594324, 28626991
     28632521, 28651365, 28748179, 28774974, 28874066, 28891448, 28895280
     28958819, 28984617, 29140508, 29140516, 29140540, 29140549, 29140551
     29140555
. . .
. . .
--------------------------------------------------------------------------------

OPatch succeeded.



Thursday, May 9, 2019

Updated Version of Optimized WebLogic Image on Docker

Yesterday I published my solution for an optimized WebLogic Image on Docker (https://dirknachbar.blogspot.com/2019/05/optimized-weblogic-image-on-docker.html). The yesterdays version was limited to the usage of Oracle Server JRE 8u152, due to an Oracle Bug 27117282.

So I updated my Optimized Solution, that you can integrate the necessary patches (Patch for OPatch Util and the latest CPU April 2019 for WebLogic 12.2.1.3.0), in order that you are able to use an actual Oracle Server JRE, e.g. Oracle Server JRE 8u202. But this requires that you have a My Oracle Support Login in order to download the 2 required patches.

The new Sources can be found under my GitHub Repo https://github.com/DirkNachbar/Docker/tree/master/OracleWebLogic

You just have to download the following 2 patches from My Oracle Support:

Place the 2 zip files in the subdirectory dockerfiles/12.2.1.3

After that you can start to build your Oracle Server JRE Image as described in my yesterdays blogpost or in the README.md on my GitHub Repo, followed by the Docker Image build for the Oracle WebLogic Server 12.2.1.3.0 including the Patches.
This time you have to use instead of the option "-o" (stands for optimized) the option "-p" (stands for patch). This will update your OPatch Utility with the OPatch Patch 28186730 and apply afterwards the latest CPU April 2019 on your WebLogic Server 12.2.1.3.0 Software Home, so that you can use an actual Oracle Server JRE (e.g. 8u202) to create your WebLogic Domain without errors.


Wednesday, May 8, 2019

Optimized WebLogic Image on Docker

As I am currently busy with optimizing Docker Images for Oracle stuff, I want to share with you my latest optimization for Oracle WebLogic Server 12.2.1.3.0 as Docker Image.

Under the Oracle GitHub Repository https://github.com/oracle/docker-images/tree/master/OracleWebLogic you can find all necessary files to build a Docker Image for Oracle WebLogic 12.2.1.x, which are quite useful, but the disadvantage of this image is the size. The Docker Image will be 2.93 GB !
So I spent some time and optimized the Docker build and my optimized Docker image is only 1.4 GB, so more than 50% space savings ;-)

 # Docker Images
$ docker images
REPOSITORY           TAG                  IMAGE ID            CREATED             SIZE
oracle/weblogic      12.2.1.3-optimized   854be1c2bbb9        7 minutes ago       1.4GB
oracle/weblogic      12.2.1.3-generic     ba0d1c2dc430        25 minutes ago      2.93GB

The complete showcase you can find under my GitHub Repository https://github.com/DirkNachbar/Docker/tree/master/OracleWebLogic, just clone the Repo and perform following steps.

Download at first following software from Oracle Technology Network:

After the download of the required installation files, build at first the Oracle Server JRE Image

#
$ cd dockerfiles/12.2.1.3/serverjre
$ ./buildDockerImage.sh
$ docker images | grep serverjre
REPOSITORY           TAG                  IMAGE ID            CREATED             SIZE
oracle/serverjre     8                    63b4768f6557        About an hour ago   387MB

As next you can build the Oracle WebLogic Server 12.2.1.3.0 Image

#
cd dockerfiles
$ ./buildDockerImage.sh -v 12.2.1.3 -o

Checking if required packages are present and valid...
fmw_12.2.1.3.0_wls_Disk1_1of1.zip: OK
=====================
Building image 'oracle/weblogic:12.2.1.3-optimized' ...
Sending build context to Docker daemon    839MB
Step 1/17 : FROM oracle/serverjre:8 as base
 ---> 63b4768f6557
Step 2/17 : LABEL maintainer="dirk.nachbar@trivadis.com"
 ---> Running in 9bfcf5aaa1d4
Removing intermediate container 9bfcf5aaa1d4
 ---> 6cff4f8712d8
. . .
. . .
Step 13/17 : FROM base
 ---> 718f0506dfb8
Step 14/17 : COPY --chown=oracle:oracle --from=builder $ORACLE_HOME $ORACLE_HOME
 ---> 46ee0e3fd822
Step 15/17 : COPY --chown=oracle:oracle --from=builder $JAVA_HOME $JAVA_HOME
 ---> bddc30cf710e
Step 16/17 : WORKDIR ${ORACLE_HOME}
 ---> Running in b7a122dc521b
Removing intermediate container b7a122dc521b
 ---> 1b2aa03acef6
Step 17/17 : CMD ["/u01/oracle/createAndStartEmptyDomain.sh"]
 ---> Running in 296506a7fc03
Removing intermediate container 296506a7fc03
 ---> 854be1c2bbb9
Successfully built 854be1c2bbb9
Successfully tagged oracle/weblogic:12.2.1.3-optimized

  WebLogic Docker Image for 'optimized' version 12.2.1.3 is ready to be extended:

    --> oracle/weblogic:12.2.1.3-optimized

  Build completed in 258 seconds.

$ docker images
REPOSITORY           TAG                  IMAGE ID            CREATED             SIZE
oracle/weblogic      12.2.1.3-optimized   854be1c2bbb9        24 minutes ago      1.4GB

Now create and run your Oracle WebLogic Server 12.2.1.3.0 Container:

#
$ docker run -d --name <ContainerName> \
             -p 7001:7001 -p 9002:9002 \
             -v <Host Path to subdirectory properties>:/u01/oracle/properties \
             -e ADMINISTRATION_PORT_ENABLED=true -e DOMAIN_NAME=<DomainName> \
             oracle/weblogic:12.2.1.3-optimized

$ docker logs -f <ContainerName>

# For Example:

$ docker run -d --name wls12213optimized \
             -p 7001:7001 -p 9002:9002 \
             -v /work/OracleWebLogic/dockerfiles/12.2.1.3/properties:/u01/oracle/properties \
             -e ADMINISTRATION_PORT_ENABLED=true -e DOMAIN_NAME=OptimizedDomain \
             oracle/weblogic:12.2.1.3-optimized

$ docker logs -f wls12213optimized
. . .
. . .
<May 8, 2019 8:56:16,862 AM UTC> <Notice> <WebLogicServer> <BEA-000329> <Started the WebLogic Server Administration Server "AdminServer" for domain "OptimizedDomain" running in production mode.> 
<May 8, 2019 8:56:16,864 AM UTC> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure[1]" is now listening on 127.0.0.1:7002 for protocols iiops, t3s, ldaps, https.> 
<May 8, 2019 8:56:16,865 AM UTC> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure" is now listening on 172.17.0.2:7002 for protocols iiops, t3s, ldaps, https.> 
<May 8, 2019 8:56:16,865 AM UTC> <Notice> <Server> <BEA-002613> <Channel "Default" is now listening on 172.17.0.2:7001 for protocols iiop, t3, ldap, snmp, http.> 
<May 8, 2019 8:56:16,866 AM UTC> <Notice> <Server> <BEA-002613> <Channel "Default[1]" is now listening on 127.0.0.1:7001 for protocols iiop, t3, ldap, snmp, http.> 
<May 8, 2019 8:56:16,866 AM UTC> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure[1]" is now listening on 127.0.0.1:7002 for protocols iiops, t3s, ldaps, https.> 
<May 8, 2019 8:56:16,866 AM UTC> <Notice> <Server> <BEA-002613> <Channel "DefaultSecure" is now listening on 172.17.0.2:7002 for protocols iiops, t3s, ldaps, https.> 
<May 8, 2019 8:56:16,867 AM UTC> <Notice> <Server> <BEA-002613> <Channel "Default" is now listening on 172.17.0.2:7001 for protocols iiop, t3, ldap, snmp, http.> 
<May 8, 2019 8:56:16,867 AM UTC> <Notice> <Server> <BEA-002613> <Channel "Default[1]" is now listening on 127.0.0.1:7001 for protocols iiop, t3, ldap, snmp, http.> 
<May 8, 2019 8:56:16,881 AM UTC> <Notice> <WebLogicServer> <BEA-000360> <The server started in RUNNING mode.> 
<May 8, 2019 8:56:16,911 AM UTC> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING.> 

With a little bit work of adding multi stage build in the Dockerfile, you are able to save more than 50% of the space in your Docker Image ;-)


No Metrics visible for Standalone Oracle HTTP Server in Cloud Control 13c

Currently I had the problem within Oracle Cloud Control 13c (13.3), that when I added an Oracle HTTP Server Standalone 12.2.1.x, Cloud Control 13c was not able to display any kinds of metrics from the Oracle HTTP Server.


As you can see from the above screenshot, Cloud Control was able to show me the correct status (UP), but Cloud Control could not see any metrics or even no configured Virtual Hosts.

The problem is within the Oracle HTTP Server 12.2.1.x, as the Oracle HTTP Server doesn't contain all required dms jar files.

To solve this problem, simply apply the patch 22860384, which is available for following Oracle HTTP Server Releases:
  • 12.2.1.0.0
  • 12.2.1.1.0
  • 12.2.1.2.0


Download the patch for your Oracle HTTP Server Release, copy the patch to the server on which your Oracle HTTP Server is running and apply the patch:

# Stop your Oracle HTTP Server
$ cd $DOMAIN_HOME/bin
$ ./stopComponent <OHS Component Name>

# extract the zip file and go into the subdirectory 22860384
$ cd 22860384
$ $ORACLE_HOME/OPatch/opatch apply

Oracle Interim Patch Installer version 13.9.1.0.0
Copyright (c) 2019, Oracle Corporation.  All rights reserved.


Oracle Home       : /appl/oracle/product/fmw-webtier-12.2.1.2.0
Central Inventory : /appl/oracle/oraInventory
   from           : /appl/oracle/product/fmw-webtier-12.2.1.2.0/oraInst.loc
OPatch version    : 13.9.1.0.0
OUI version       : 13.9.1.0.0
Log file location : /appl/oracle/product/fmw-webtier-12.2.1.2.0/cfgtoollogs/opatch/opatch2019-05-08_13-21-31PM_1.log


OPatch detects the Middleware Home as "/appl/oracle/product/fmw-webtier-12.2.1.2.0"

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   22860384

Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/appl/oracle/product/fmw-webtier-12.2.1.2.0')


Is the local system ready for patching? [y|n]
y
User Responded with: Y
Backing up files...
Applying interim patch '22860384' to OH '/appl/oracle/product/fmw-webtier-12.2.1.2.0'
ApplySession: Optional component(s) [ oracle.jmx, 12.2.1.0.0, higher version 12.2.1.2.0 found. ]  not present in the Oracle Home or a higher version is found.

Patching component oracle.jrf.thirdparty.jee, 12.2.1.2.0...

Patching component oracle.jrf.thirdparty.jee, 12.2.1.2.0...
Patch 22860384 successfully applied.
Log file location: /appl/oracle/product/fmw-webtier-12.2.1.2.0/cfgtoollogs/opatch/opatch2019-05-08_13-21-31PM_1.log

OPatch succeeded.

# Startup your Oracle HTTP Server
$ cd $DOMAIN_HOME/bin
$ ./startComponent <OHS Component Name>

Now wait some minutes or if you are not really patient, perform on the Oracle Cloud Control Agent 13 multiple times "emctl upload agent"

After some time you should be able now to see in your configured Oracle HTTP Server Target in the Oracle Cloud Control 13c all metrics and even configured Virtual Hosts.



Friday, May 3, 2019

WildFly 16 Docker Image with Oracle JDBC Driver

Today some a bit off-topic blogpost from my usual classic Oracle blogpost, but with a bit of Oracle :-)

As more and more of my customers are moving away from Oracle WebLogic Server to JBoss/WildFly, I have create a small Docker Image with WildFly 16 including the Oracle JDBC Driver and a DataSource based on the Oracle JDBC Driver (18.3).

The full showcase you can find in my GitHub Repository https://github.com/DirkNachbar/Docker/tree/master/WildFly

Simply clone the repository to your machine hosting your Docker.

At first you will need to align the oracle-driver.cli script to reflect your required DataSource settings to connect to your Oracle Database

# Snippet from oracle-driver.cli
data-source add --name=<DataSourceName> --driver-name="oracle" --jndi-name="java:<JNDI Lookup Name>" --statistics-enabled="true" --user-name="<Oracle Username>" --password="<Oracle User Password>" --initial-pool-size="<Initial Pool Size>" --max-pool-size="<Max Pool Size>" --min-pool-size="<Minimal Pool Size>" --connection-url="jdbc:oracle:thin:@<Oracle Database Servername>:<Listener Port>/<Database ServiceName>" --check-valid-connection-sql="select 1 from dual"

# For example:
data-source add --name=testDS --driver-name="oracle" --jndi-name="java:/jdbc/testDS" --statistics-enabled="true" --user-name="soe" --password="soe" --initial-pool-size="25" --max-pool-size="50" --min-pool-size="20" --connection-url="jdbc:oracle:thin:@oraxe18c:1521/XEPDB1" --check-valid-connection-sql="select 1 from dual"
#

Now you can build the WildFly 16 Image:

In case you dont provide the --build-arg WILDFLY_ADMIN_PWD, the admin user of your WildFly will get the default password admin.

$ docker build [--build-arg WILDFLY_ADMIN_PWD=<your admin password>] -t wildfly .
# For Example:
$ docker build --build-arg WILDFLY_ADMIN_PWD=Oracle18c -t wildfly .

After the build is completed you can start your WildFly 16 Container with following command:

$ docker run -d --name wildfly \
      [--network=<Your bridged network>] \
      -p <Your Host Port>:8080 -p <Your Host Port>:9990 \
      -e TZ=<Your Timezone> \
      wildfly

Now you can access the HAL Management Console of your WildFly 16 with your forwarded port of the Docker Container Port 9990, login with admin and your provided password in the --build-arg WILDFLY_ADMIN_PWD or if you didnt used the --build-arg you the password "admin"



After the Login, click on the option "Configuration"



On the Configuration screen navigate to "Subsystems / Datasources & Drivers / JDBC Drivers / oracle" to check your deployed JDBC Driver



On the Configuration screen navigate to "Subsystems / Datasources & Drivers / Datasources / testDS" to check your created DataSource





Optimizing the Optimized Docker Image for Oracle XE 18c (18.4.0) including Archivelog

On 1st May 2019 I was publishing a solution on how to optimize the Docker image for Oracle XE 18c from 8.7 GB down to 5.41 GB (https://dirknachbar.blogspot.com/2019/05/optimized-docker-image-for-oracle-xe.html).

In the last 2 days I was playing a bit more with my optimized Docker image for Oracle XE 18c and I was able to downsize the Docker image once again to a current size of 4.02 GB. So its more than 50% of savings from the original Docker image size.

$ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
oracle/database      18.4.0-xe           2018ad58d2f3        16 hours ago        4.02GB
$

I mainly removed unnecessary directories from the $ORACLE_HOME and several binaries, which are not required in my opinion and I strip some of the big binaries to remove the comments from them.

You can find the optimized optimized Docker Image for Oracle XE 18c (18.4) in my GitHub Repository https://github.com/DirkNachbar/Docker/tree/master/OracleXE

Here is the list of directories and binaries which I removed from the image in order to come down to 4.02 GB:

# Snippet from Dockerfile.xe
RUN cd $INSTALL_DIR && \
    yum -y install $INSTALL_FILE_1 && \
    rm -rf /var/cache/yum && \
    rm -f $INSTALL_FILE_1 && \
    rm -rf $ORACLE_HOME/demo && \
    rm -rf $ORACLE_HOME/dmu && \
    rm -rf $ORACLE_HOME/javavm && \
    rm -rf $ORACLE_HOME/md && \
    rm -rf $ORACLE_HOME/nls/demo && \
    rm -rf $ORACLE_HOME/odbc && \
    rm -rf $ORACLE_HOME/rdbms/demo && \
    rm -rf $ORACLE_HOME/R && \
    rm -rf $ORACLE_HOME/instantclient && \
    rm -rf $ORACLE_HOME/inventory && \
    rm -rf $ORACLE_HOME/deinstall && \
    rm -r  $ORACLE_HOME/lib/ra_aix_ppc64.zip && \
    rm -r  $ORACLE_HOME/lib/ra_hpux_ia64.zip && \
    rm -r  $ORACLE_HOME/lib/ra_solaris*.zip && \
    rm -f  $ORACLE_HOME/lib/ra_windows64.zip && \
    rm -f  $ORACLE_HOME/lib/ra_zlinux64.zip && \
    rm -rf $ORACLE_HOME/crs && \
    rm -f  $ORACLE_HOME/bin/asmcmd && \
    rm -f  $ORACLE_HOME/bin/asmcmdcore && \
    rm -f  $ORACLE_HOME/bin/bdschecksw && \
    rm -f  £ORACLE_HOME/bin/dbv && \
    rm -f  $ORACLE_HOME/bin/ldap* && \
    rm -f  $ORACLE_HOME/bin/dbfs_client && \
    rm -f  $ORACLE_HOME/bin/afdboot && \
    rm -f  $ORACLE_HOME/bin/exp && \
    rm -f  $ORACLE_HOME/bin/imp && \
    rm -f  $ORACLE_HOME/bin/*.exe && \
    rm -f  $ORACLE_HOME/bin/lcsscan && \
    rm -f  $ORACLE_HOME/bin/dgmgrl && \
    rm -f  $ORACLE_HOME/bin/nid && \
    rm -f  $ORACLE_HOME/bin/orion && \
    rm -f  $ORACLE_HOME/bin/procob && \
    rm -f  $ORACLE_HOME/bin/setasmgid && \
    rm -f  $ORACLE_HOME/bin/wrap && \
    rm -f  $ORACLE_HOME/bin/*0 && \
    rm -f  $ORACLE_HOME/bin/tnsping && \
    rm -f  $ORACLE_HOME/bin/tkprof && \
    rm -f  $ORACLE_HOME/bin/srvctl && \
    rm -f  $ORCALE_HOME/bin/wrc && \
    rm -rf $ORACLE_HOME/sdk && \
    strip --remove-section=.comment $ORACLE_HOME/bin/oracle && \
    strip --remove-section=.comment $ORACLE_HOME/bin/rman && \
    strip --remove-section=.comment $ORACLE_HOME/bin/tnslsnr

I will continue to try to downsize the Docker image for Oracle XE 18c a bit more within the next days and will post updates on these topic.


Thursday, May 2, 2019

Oracle 19c for Solaris available

After the availability of the latest Oracle 19c Database for Linux platforms, Oracle has released now the Oracle 19c (19.3) Database for Solaris.

The software can be found under Oracle Technology Network: https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle19c-solarisx86-5466166.html



Currently there is only the SPARC (64-bit) version available.


Wednesday, May 1, 2019

Optimized Docker Image for Oracle XE 18c (18.4.0) including Archivelog

In my current project I am mainly working with Oracle XE 18c (18.4.0) under Docker.

One pain point is size of the Docker Image for Oracle XE 18c, in case you will use the Scripts from https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance for the build of Oracle XE 18c you will have an image size of 8.7 GB, which is not quite handy :-)

So I invested some time and have done some modifications on the Dockerfile.xe from the Oracle GitHub Repository, which is mainly to adopt multi stage and to remove some unnecessary directories from the $ORACLE_HOME, so that I finally come to an image size of 5.41 GB instead of 8.7 GB.

On top I have added some volumes to the Dockerfile.xe for fast recovery area and some tools (which are containing RMAN backup scripts) and a post setup script which will turn on the archivelog mode and flashback.

The full showcase you can find in my GitHub Repository https://github.com/DirkNachbar/Docker/tree/master/OracleXE

Just clone my above mentioned GitHub Repo, download the Oracle XE 18c rpm file from Oracle Technology Network https://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html and place it in the subdirectory 18.4.0.

On top you will need to create 4 directories on your Docker host, which will be the target directories for the following volume mapping:

  • /opt/oracle/oradata
  • /opt/oracle/diag
  • /opt/oracle/fast_recovery_area
  • /opt/oracle/tools

$ groupadd -g 54321 oinstall
$ useradd -d /home/oracle -m -g oinstall [-G docker] -u 54321 oracle
# Depending on your disk layout you will need to create 4 directories
# e.g. you have one mount point called u01, create the following 4 directories below and switch the ownership to the oracle user
$ mkdir -p /u01/diag
$ mkdir -p /u01/oradata
$ mkdir -p /u01/fast_recovery_area
$ mkdir -p /u01/tools
$ chown -R oracle:oinstall /u01/diag
$ chown -R oracle:oinstall /u01/oradata
$ chown -R oracle:oinstall /u01/fast_recovery_area
$ chown -R oracle:oinstall /u01/tools

Now you can execute the build of your Docker Image for Oracle XE 18c

$ ./buildDockerImage.sh -v 18.4.0 -x
. . .
Successfully built ac71812fa9d3
Successfully tagged oracle/database:18.4.0-xe


  Oracle Database Docker Image for 'xe' version 18.4.0 is ready to be extended: 
    
    --> oracle/database:18.4.0-xe

  Build completed in 697 seconds.

$ docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
oracle/database      18.4.0-xe           ac71812fa9d3        About an hour ago   5.41GB

Finally create your Docker Container:

docker run -d --name oraxe18c \
              -p 1521:1521
              -e ORACLE_PWD=[your password] \
              -e ORACLE_CHARACTERSET=[your characterset] \
              -e TZ=[your timezone] \
              -v [host directory for oradata]:/opt/oracle/oradata \
              -v [host directory for diag]:/opt/oracle/diag \
              -v [host directory for fast_recovery_area]:/opt/oracle/fast_recovery_area \
              -v [host directory for tools]:/opt/oracle/tools \
              [--network [your bridged network] \
              oracle/database:18.4.0-xe

# For Example
docker run -d --name oraxe18c \
              -p 1521:1521
              -e ORACLE_PWD=Oracle18c \
              -e ORACLE_CHARACTERSET=AL32UTF8 \
              -e TZ=Europe/Zurich \
              -v /u01/oradata:/opt/oracle/oradata \
              -v /u01/diag:/opt/oracle/diag \
              -v /u01/fast_recovery_area:/opt/oracle/fast_recovery_area \
              -v /u01/tools:/opt/oracle/tools \
              --network mynet \
              oracle/database:18.4.0-xe

Now you have a running Oracle XE 18c Container, your oradata, diag, fast_recovery_area and tools directories are mounted on your Docker Host and you can perform standard backups with RMAN against your Oracle XE 18c.

vi /u01/tools/full_bkp.rman

connect target sys/[your password]
run {
    backup database plus archivelog;
}

# For Example
connect target sys/Oracle18c
run {
    backup database plus archivelog;
}

# Now perform your RMAN Backup
docker exec -it oraxe18c rman @/opt/oracle/tools/full_bkp.rman


Friday, April 26, 2019

Oracle 19c for Linux x86-64 available

Since last night the lastest Oracle Database Release 19c (19.3) is for On-Prem  available.


Currently only the Linux x86-64 version is for download available in Oracle Technology Network, the other platforms should follow in the coming days.


For the download checkout following link: https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle19c-linux-5462157.html




The documentation can be found under following link: https://docs.oracle.com/en/database/oracle/oracle-database/index.html


On top Gerald Venzl also updated in the Oracle GitHub Repository the Docker Images for Oracle 19c already :-) https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance/dockerfiles




Happy download and happy testing :-)

Thursday, April 4, 2019

Enterprise Manager 13c - Database Usage Tracking Report Bug with FTP destination

Within Oracle Enterprise Manager 13c you have a nice Feature under the BI Publisher Reports to generate Database Usage Tracking Reports and to deliver them to a FTP Server, called BurstToFTP.


Unfortunatelly if you follow the very good official step-by-step documentation on how to setup and to configure the Database Usage Tracking Report you will not be able to get your Database Usage Tracking Reports under your FTP Server :-(


After you are done with the above setup and configuration steps and you perform an execution of the Database Usage Tracking Report, you will receive following error:

[INSTANCE_ID=.1515472353767] [DELIVERY_ID=1075]Error deliver document to FTP::Exception happened when calling deliver API::Error deliver document to FTP::FILE=[::Exception happened when calling deliver API::oracle.xdo.delivery.DeliveryException: oracle.xdo.delivery.DeliveryException: SFTP Client cannot be openedoracle.xdo.service.delivery.DeliveryException: oracle.xdo.delivery.DeliveryException: oracle.xdo.delivery.DeliveryException: SFTP Client cannot be op 

If you are checking the corresponding bipublisher.log under gc_inst/user_projects/domains/GCDomain/servers/BIP/logs/bipublisher you will find following error messages:

[2019-02-01T09:24:22.148+01:00] [BIP] [WARNING] [] [oracle.xdo] [tid: 168606] [userId: BISystemUser] [ecid: cdc36ce1-e46c-486e-93a8-cee32db72219-00000004,0:1070] [APP: bipublisher#11.1.1]  !!!!!!! GenericDeliveryListener.onMessage :: DeliveryProcessor.processDelivery exception::[INSTANCE_JOB_ID=1529]::[JOB_ID=1583]::[OUTPUT_ID=1402]::[DELIVERY_ID=1391]::[STATUS=FAILED_DELIVERY]::Error deliver document to FTP::Exception happened when calling deliver API::Error deliver document to FTP::FILE=[::Exception happened when calling deliver API::oracle.xdo.delivery.DeliveryException: oracle.xdo.delivery.DeliveryException: SFTP Client cannot be openedoracle.xdo.service.delivery.DeliveryException: oracle.xdo.delivery.DeliveryException: oracle.xdo.delivery.DeliveryException: SFTP Client cannot be opened[[
        at oracle.xdo.service.delivery.impl.DeliveryServiceImpl.deliverToSFTP(DeliveryServiceImpl.java:810)
        at oracle.xdo.enterpriseScheduler.delivery.FTPProcessor.deliver(FTPProcessor.java:255)
        at oracle.xdo.enterpriseScheduler.delivery.FTPProcessor.processDelivery(FTPProcessor.java:123)
        at oracle.xdo.enterpriseScheduler.util.GenericDeliveryListener.onMessage(GenericDeliveryListener.java:120)
        at oracle.xdo.enterpriseScheduler.util.CheckpointEnabledListener.onMessage(CheckpointEnabledListener.java:25)
        at oracle.xdo.enterpriseScheduler.jmswrapper.client.JMSMessageConsumer.processMessage(JMSMessageConsumer.java:231)
        at oracle.xdo.enterpriseScheduler.jmswrapper.client.ThreadedMessageDispatcher$DispatchWorker.run(ThreadedMessageDispatcher.java:157)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
Caused by: oracle.xdo.delivery.DeliveryException: oracle.xdo.delivery.DeliveryException: SFTP Client cannot be opened
        at oracle.xdo.delivery.ssh2.SFTPDeliveryRequestHandler.submitRequest(SFTPDeliveryRequestHandler.java:528)
        at oracle.xdo.delivery.AbstractDeliveryRequest.submit(AbstractDeliveryRequest.java:1513)
        at oracle.xdo.service.delivery.impl.DeliveryServiceImpl.deliverToSFTP(DeliveryServiceImpl.java:804)
        ... 9 more

The Problem occurs under Oracle Enterprise Linux and Redhat Enterprise Linux.

This is a know bug and luckily there has been a Patch released for this issue.

You will need to download the Patch 23233792: FTP DELIVERY FAILS WITH ORACLE.XDO.DELIVERY.SSH2.SSHEXCEPTION for 12.1.3.0




After you applied the Patch to your Oracle Cloud Control 13c, the BurstToFTP Feature will work without problems.
 



Monday, March 18, 2019

Enterprise Manager 13c - Resolve Pending Status of Systems Infrastructure Server Components

From time to time you can observe, that some Systems Infrastructure Server Components are turning into a "Pending Status". Mostly the reason for this status change is not clear, a restart of the underlying Oracle Agents also doesn't resolve this pending state.


 The simplest solution to get rid of the pending state is to remove the Systems Infrastructure Server Component and to re-add it.

For this just connect with the oracle user to your server on which your Oracle Cloud Control 13c is running and perform following emcli commands:

# At first login with sysman to your emcli
oracle@server> emcli login -username=sysman
Enter password :

Login successful

# Perform a sync
oracle@server> emcli sync
Synchronized successfully

# Remove the Systems Infrastructure Server Component which is in pending state
oracle@server> emcli delete_target \
                  -name="<yourserver>.<domainname>/server" \
                  -type=oracle_si_server_map

# For example:
oracle@server> emcli delete_target \
                  -name="dbserver1.mydomain.com/server" \
                  -type=oracle_si_server_map

Target "dbserver1.mydomain.com/server:oracle_si_server_map" deleted successfully

# Add the above remove Systems Infrastructure Server Component once again
oracle@server> emcli add_target -name='<yourserver>.<domainname>/server' \
                  -type='oracle_si_server_map' \
                  -host='<yourserver>.<domainname>' \
                  -access_point_name='<yourserver>.<domainname>/server_os' \
                  -access_point_type=oracle_si_server_os \
                  -properties='dispatch.url!local://localhost' \
                  -subseparator=properties='!'

# For example:
oracle@server> emcli add_target -name='dbserver1.mydomain.com/server' \
                  -type='oracle_si_server_map' \
                  -host='dbserver1.mydomain.com' \
                  -access_point_name='dbserver1.mydomain.com/server_os' \
                  -access_point_type=oracle_si_server_os \
                  -properties='dispatch.url!local://localhost' \
                  -subseparator=properties='!'

Target "dbserver1.mydomain.com/server_os:oracle_si_server_os" added successfully

After that wait some moments and check once again the status of your Systems Infrastructure Server Component in Enterprise Manager 13c and you will see that the status turned to be ok.



Thursday, February 21, 2019

Oracle XE 18.4.0.0.0 (18c) for Windows

The Oracle Database Express Edition (XE) 18.4.0.0.0 (18c) is since yesterday available for Windows x64 on Oracle Technology Networks:


For the download of the latest Oracle XE 18c for Windows x64 checkout following link: https://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html




Happy Download ...

Tuesday, January 8, 2019

Enterprise Manager 13.3 - Customize Login Page

Since Oracle Enterprise Manager 13.3 you have the option to customize the Login Page with your own logo image (size of the image is fixed with width of 200px and height of 70px) and a free text field.

In order to customize your login page you have to perform following steps.

At first you will need to activate the http port for your WebLogic Admin Server of your Enterprise Manager 13.3 environment.

Connect with a browser to your WebLogic Server Console, normally https://<yourserver>:7102/console and login with the weblogic user.

Select your EMGC_ADMINSERVER under the Domain Structure "GCDomain/Environment/Servers"


Go to the "Configuration/General" and activate under the Change Center the Lock & Edit button


Set the checkbox in front of "Listen Port Enabled", leave the defined http port to the pre-filled value of 7001 and click the "Save" button to save your changes.


Finally click in the Change Center the "Active Changes" button, there is no restart required, the http port 7001 will be immediately available.


As next you will have to create on the server hosting your Enterprise Manager 13.3 a directory for your image file (possible formats are: jpeg, jpg, png and gif) and a simple web.xml file.

# Create the required directory for your image file
mkdir -p /u00/app/oracle/admin/oms/logo/WEB-INF

# Place your image file into the folder /u00/app/oracle/admin/oms/logo
# Create under /u00/app/oracle/admin/oms/logo/WEB-INF a web.xml
# with following content

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
</web-app>

Get back to your WebLogic Console and navigate in the Domain Structure to "GCDomain/Environment/Deployments" and click in the Change Center the "Lock & Edit" button.


Click the "Install" button in order to install the above create folder structure as application


Place under Path your above created directory, which contains the image file and the subdirectory WEB-INF with the web.xml, in my case /u00/app/oracle/admin/oms/logo and click the "Next" button


In the next deployment screen leave the defaults and click the "Next" button.


In the following deployment screen choose the EMGC_ADMINSERVER as deployment target and proceed with the "Next" button.


In the following deployment screen leave the defaults and finish the deployment with the "Finish" button.
Hint: the context of your deployment will the same as your created directory name, in my case "logo"


To activate the deployment click under the Change Center the "Activate Changes" button.


Now you have to validate if your deployment is already active or still in prepared state, under the list of deployments scroll down to your deployment, in my case it's named logo (derived from the directory name you have created.

Normally the state will be "prepared", so click on the deployed application


Navigate to the "Control" tab, set the checkbox in front of logo and start the application

After a successful start of your application you should see the state as Active.


Now you can test if you can access with a browser the image file under your deployed application.

http://<yourserver>:7001/logo/<your_image_file>

Next step is to set with the emctl utility the property oracle.sysman.core.uifwk.loginPageLogo, login to your server hosting the Enterprise Manager 13.3 and execute following command:

emctl set property -name oracle.sysman.core.uifwk.loginPageLogo –value 'http://<yourserver>:7001/<context>/<image_file>' -sysman_pwd <sysman_password>

# For example
emctl set property -name oracle.sysman.core.uifwk.loginPageLogo –value 'http://oraem13c.domain.com:7001/logo/logo.png' -sysman_pwd Oracle13c

After the above command is no restart of your OMS required.

In case you want to set the free text for your login page you will need to execute following command on your server hosting the Enterprise Manager 13.3 to set the property oracle.sysman.core.uifwk.loginPageInformationText

emctl set property -name oracle.sysman.core.uifwk.loginPageInformationText -value 'You are connected to the Demo Cloud Control 13c (13.3)'

When you access your Enterprise Manager 13.3 Login Page now, you will see on the top left your logo image and beside the Login Button your defined free text field.



Wednesday, November 21, 2018

ALTER TABLE ADD column with DEFAULT value and Virtual Private Database

I recently came over a real strange behaviour with ALTER TABLE ADD column with DEFAULT value on one of my customers.

They are using a Software Product based on WebLogic and Oracle Database, from time to time we receive some new version of this Software Product which includes Database related changes, e.g. add new tables, add columns to an existing table and so on.

Within the latest Software Update, we could observe that the overall update process for the Database related part was increasing to around 12 hours !!!! Before it was quite shorter.

Mainly the time was taken for ALTER TABLE ADD column with DEFAULT values. After some investigations, I could see, that a simple ALTER TABLE ADD column with DEFAULT values was resulting into single updates with the provided DEFAULT value instead of updating the metadata for the given DEFAULT value. According to the Oracle Documentation in such a case the provided DEFAULT value should only be metadata and not updated for each row.

It took me some while to identify the reason (thanks to SQLHC, see My Oracle Support Note 1366133.1 https://support.oracle.com/epmos/faces/DocContentDisplay?id=1366133.1 ), I could see that on my target table for the ALTER TABLE ADD column with DEFAULT value was a Virtual Private Database policy attached with statement_types = insert, update, delete. But this policy was not enabled!
So in my opinion when I got a policy on a table which is not enabled, it should affect my ALTER TABLE ADD column command?

So, I simple dropped the complete policy and rerun my ALTER TABLE ADD column with DEFAULT value, and รจ voila my ALTER TABLE ADD column runs in milliseconds instead of serveral minutes.

Here a simple testcase to reproduce the problem:

sqlplus / as sysdba
# Create a Testuser
SQl> create user hr identified by "Oracle12c"
        default tablespace users quota unlimited on users;
SQL> grant connect, resource, create table, 
        create view, create procedure, alter session to hr;

# Connect with the above create testuser
# and create a test table with 10000000 rows
sqlplus hr/Oracle12c

# Set workarea_size_policy temporary to manual
# to avoid memory problems while creating huge test table
SQL> alter session set workarea_size_policy=manual;

Session altered.

SQL> alter session set sort_area_size=1000000000;

Session altered.

SQL> create table t1 as
     select rownum as id,
     'Just some text' as textcol,
     mod(rownum,5) as numcol1,
     mod(rownum,1000) as numcol2,
     5000 as numcol3,
     to_date ('01.'|| lpad(to_char(mod(rownum,12)+1),2,'0') || '.2018', 'dd.mm.yyyy') as time_id
     from dual connect by level<=1e7;

Table created.

SQL> select count(*) from t1;

  COUNT(*)
----------
  10000000

# Connect as sysdba
# create a demo function for VPD policy use
# and create the VPD policy including the statement_type update
# and set enable=FALSE for the policy
sqlplus / as sysdba

SQL> create or replace function no_toad_access
       (schema in varchar2, object in varchar2)
  return varchar2
  as
begin
  return 'upper(substr(sys_context(''userenv'',''module''),1,4))<>''TOAD''';
end;
/

# Create VPD policy including statement_type update
SQL> begin
  dbms_rls.add_policy (object_schema => 'HR',
  object_name => 'T1',
  policy_name => 'BAN_TOAD',
  function_schema => 'SYS',
  policy_function => 'NO_TOAD_ACCESS',
  statement_types => 'select,delete,update',
  enable => TRUE);
end;
/

# Set the VPD policy to false
SQL> begin 
   dbms_rls.enable_policy(object_schema => 'HR',
                                 object_name => 'T1',
                                 policy_name => 'BAN_TOAD',
                                 enable => FALSE);
end;
/

# Connect as testuser
# enable 10046 trace event to see that
# the ALTER TABLE ADD column with DEFAULT value
# turns to row updates
sqlplus hr/Oracle12
SQL> set timing on
SQL> alter session set tracefile_identifier='VPD_Problem_1';
SQL> alter session set events '10046 trace name context forever, level 16';
SQL> alter table t1 add (col_with_disabled_fgac varchar2(50) default 'test_1' not null);
Table altered.

Elapsed: 00:06:15.78

# Connect as sysdba
# drop the VPD policy
sqlplus / as sysdba
SQL> begin
  dbms_rls.drop_policy(object_schema => 'HR',
                       object_name => 'T1',
                       policy_name => 'BAN_TOAD');
end;
/

# Connect as testuser
# execute an ALTER TABLE ADD column with DEFAULT values again
sqlplus hr/Oracle12c
SQL> set timing on
SQL> alter session set tracefile_identifier='VPD_Problem_2';
SQL> alter session set events '10046 trace name context forever, level 16';
SQL> alter table t1 add (col_with_dropped_fgac varchar2(50) default 'test_1' not null);
Table altered.

Elapsed: 00:00:00.04

As you can see, even a disable VPD policy with statement type = update can affect your ALTER TABLE ADD column statement.

I have currently a Support Request with My Oracle Support open, to clarify if this is an expected behaviour or not, as nowhere in the Documentation I could find anything for this behaviour.


Wednesday, October 31, 2018

Oracle 18c Certification for Fusion Middleware 12c Release 2

Since a few days the Certification Matrix for Oracle Fusion Middleware 12c Release 2 (12.2.1.x) was updated within Oracle Technology Network, now Oracle 18c (18.1 on Exadata and 18.3 on On-Premise) is certified and supported as Target Database for RCU (Repository Creation Utility and as Application Datasource.

Certification Matrix for Fusion Middleware 12.2.1.2.0: https://www.oracle.com/technetwork/middleware/fusion-middleware/documentation/fmw-122120-certmatrix-3254735.xlsx



Certification Matrix for Fusion Middleware 12.2.1.3.0: https://www.oracle.com/technetwork/middleware/fmw-122130-certmatrix-3867828.xlsx


In My Oracle Support under the Certification Tab, the new Certification for Oracle Database 18c (18.1 on Exadata and 18.3 on On-Premise) is not yet updated.

See for example the Certification for SOA Suite 12.2.1.2.0


See for example the Certification for SOA Suite 12.2.1.3.0


I have created a Support Request with My Oracle Support for that and according to My Oracle Support, the Certification Matrix on Oracle Technology Network is correct and therefore Oracle 18c (18.1 on Exadata and 18.3 on On-Premise) is fully supported and certified with Oracle Fusion Middleware 12c Release 2


Friday, October 19, 2018

Installation of Oracle 18c (18.3) RPM manually

Since last night the RPM version of Oracle 18c (18.3) is available, see my blog post http://dirknachbar.blogspot.com/2018/10/oracle-18c-rpm-for-linux-available.html

I was directly testing the manually way in installing the Oracle 18c (18.3) RPM version, not Unbreakable Linux Network (ULN).

As pre requirement you will need an up and running Linux Server, in my case an Oracle Enterprise Linux 7.4, and the Oracle 18c RPM and as well the Oracle 18c Preinstallation RPM.


Transfer the 2 above mentioned files to your target server as root user in any temporary directory, navigate in a shell to the temporary directory and execute as root following commands:

1. Install the Oracle 18c Preinstallation RPM

yum localinstall oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm 
Loaded plugins: langpacks, ulninfo
Examining oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm: oracle-database-preinstall-18c-1.0-1.el7.x86_64
Marking oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package oracle-database-preinstall-18c.x86_64 0:1.0-1.el7 will be installed
--> Processing Dependency: glibc-devel for package: oracle-database-preinstall-18c-1.0-1.el7.x86_64
--> Processing Dependency: ksh for package: oracle-database-preinstall-18c-1.0-1.el7.x86_64
--> Processing Dependency: libaio-devel for package: oracle-database-preinstall-18c-1.0-1.el7.x86_64
--> Processing Dependency: libstdc++-devel for package: oracle-database-preinstall-18c-1.0-1.el7.x86_64
--> Running transaction check
---> Package glibc-devel.x86_64 0:2.17-196.el7 will be installed
--> Processing Dependency: glibc-headers = 2.17-196.el7 for package: glibc-devel-2.17-196.el7.x86_64
--> Processing Dependency: glibc-headers for package: glibc-devel-2.17-196.el7.x86_64
---> Package ksh.x86_64 0:20120801-34.el7 will be installed
---> Package libaio-devel.x86_64 0:0.3.109-13.el7 will be installed
---> Package libstdc++-devel.x86_64 0:4.8.5-16.el7 will be installed
--> Running transaction check
---> Package glibc-headers.x86_64 0:2.17-196.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================
 Package                                     Arch                Version                        Repository                                                     Size
====================================================================================================================================================================
Installing:
 oracle-database-preinstall-18c              x86_64              1.0-1.el7                      /oracle-database-preinstall-18c-1.0-1.el7.x86_64               55 k
Installing for dependencies:
 glibc-devel                                 x86_64              2.17-196.el7                   OL74                                                          1.1 M
 glibc-headers                               x86_64              2.17-196.el7                   OL74                                                          675 k
 ksh                                         x86_64              20120801-34.el7                OL74                                                          883 k
 libaio-devel                                x86_64              0.3.109-13.el7                 OL74                                                           12 k
 libstdc++-devel                             x86_64              4.8.5-16.el7                   OL74                                                          1.5 M

Transaction Summary
====================================================================================================================================================================
Install  1 Package (+5 Dependent packages)

Total size: 4.1 M
Total download size: 4.1 M
Installed size: 14 M
Is this ok [y/d/N]: y
Downloading packages:
warning: /var/OSimage/OL7.4_x86_64/Packages/glibc-devel-2.17-196.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Public key for glibc-devel-2.17-196.el7.x86_64.rpm is not installed
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                52 MB/s | 4.1 MB  00:00:00     
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY
Importing GPG key 0xEC551F03:
 Userid     : "Oracle OSS group (Open Source Software group) <build@oss.oracle.com>"
 Fingerprint: 4214 4123 fecf c55b 9086 313d 72f9 7b74 ec55 1f03
 Package    : 7:oraclelinux-release-7.4-1.0.4.el7.x86_64 (@anaconda/7.4)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : ksh-20120801-34.el7.x86_64                                                                                                                       1/6 
  Installing : glibc-headers-2.17-196.el7.x86_64                                                                                                                2/6 
  Installing : glibc-devel-2.17-196.el7.x86_64                                                                                                                  3/6 
  Installing : libaio-devel-0.3.109-13.el7.x86_64                                                                                                               4/6 
  Installing : libstdc++-devel-4.8.5-16.el7.x86_64                                                                                                              5/6 
  Installing : oracle-database-preinstall-18c-1.0-1.el7.x86_64                                                                                                  6/6 
  Verifying  : oracle-database-preinstall-18c-1.0-1.el7.x86_64                                                                                                  1/6 
  Verifying  : libstdc++-devel-4.8.5-16.el7.x86_64                                                                                                              2/6 
  Verifying  : libaio-devel-0.3.109-13.el7.x86_64                                                                                                               3/6 
  Verifying  : glibc-headers-2.17-196.el7.x86_64                                                                                                                4/6 
  Verifying  : glibc-devel-2.17-196.el7.x86_64                                                                                                                  5/6 
  Verifying  : ksh-20120801-34.el7.x86_64                                                                                                                       6/6 

Installed:
  oracle-database-preinstall-18c.x86_64 0:1.0-1.el7                                                                                                                 

Dependency Installed:
  glibc-devel.x86_64 0:2.17-196.el7          glibc-headers.x86_64 0:2.17-196.el7      ksh.x86_64 0:20120801-34.el7      libaio-devel.x86_64 0:0.3.109-13.el7     
  libstdc++-devel.x86_64 0:4.8.5-16.el7     

Complete!

2. Install the Oracle 18c (18.3) RPM

yum localinstall oracle-database-ee-18c-1.0-1.x86_64.rpm 
Loaded plugins: langpacks, ulninfo
Examining oracle-database-ee-18c-1.0-1.x86_64.rpm: oracle-database-ee-18c-1.0-1.x86_64
Marking oracle-database-ee-18c-1.0-1.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package oracle-database-ee-18c.x86_64 0:1.0-1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================================================
 Package                                     Arch                        Version                    Repository                                                 Size
====================================================================================================================================================================
Installing:
 oracle-database-ee-18c                      x86_64                      1.0-1                      /oracle-database-ee-18c-1.0-1.x86_64                      7.8 G

Transaction Summary
====================================================================================================================================================================
Install  1 Package

Total size: 7.8 G
Installed size: 7.8 G
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : oracle-database-ee-18c-1.0-1.x86_64                                                                                                              1/1 
[INFO] Executing post installation scripts...
[INFO] Oracle home installed successfully and ready to be configured.
To configure a sample Oracle Database you can execute the following service configuration script as root: /etc/init.d/oracledb_ORCLCDB-18c configure
  Verifying  : oracle-database-ee-18c-1.0-1.x86_64                                                                                                              1/1 

Installed:
  oracle-database-ee-18c.x86_64 0:1.0-1                                                                                                                             

Complete!

As next we need to configure the Oracle 18c Database by executing the /etc/init.d/oracledb_ORCLDB-18c script as root user

In case you will receive following error message while executing the /etc/init.d/oracledb_ORCLDB-18c script, simply check your /etc/hosts file and add the IP, Fully Qualified Hostname and the Shortname of your server, re-execute the /etc/init.d/oracledb_ORCLCDB-18c script
/etc/init.d/oracledb_ORCLCDB-18c configure
Configuring Oracle Database ORCLCDB.
[FATAL] [DBT-06103] The port (1,521) is already in use.
   ACTION: Specify a free port.

/etc/init.d/oracledb_ORCLCDB-18c configure
Configuring Oracle Database ORCLCDB.
Prepare for db operation
8% complete
Copying database files
31% complete
Creating and starting Oracle instance
32% complete
36% complete
40% complete
43% complete
46% complete
Completing Database Creation
51% complete
54% complete
Creating Pluggable Databases
58% complete
77% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
 /opt/oracle/cfgtoollogs/dbca/ORCLCDB.
Database Information:
Global Database Name:ORCLCDB
System Identifier(SID):ORCLCDB
Look at the log file "/opt/oracle/cfgtoollogs/dbca/ORCLCDB/ORCLCDB.log" for further details.

Database configuration completed successfully. The passwords were auto generated, you must change them by connecting to the database using 'sqlplus / as sysdba' as the oracle user.

And we are nearly done :-)

Switch in your shell to the oracle user:

su - oracle
cd /opt/oracle
export ORACLE_BASE=`pwd`
cd product/18c/dbhome_1
export ORACLE_HOME=`pwd`
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=ORCLCDB
sqlplus / as sysdba
SQL*Plus: Release 18.0.0.0.0 - Production on Fri Oct 19 13:54:58 2018
Version 18.3.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.


Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0

SQL> col name format a30
SQL> select con_id, name, open_mode from v$pdbs;

    CON_ID NAME      OPEN_MODE
---------- ------------------------------ ----------
  2 PDB$SEED     READ ONLY
  3 ORCLPDB1     READ WRITE


You only need to change now the passwords of the Database Users, e.g. SYS, SYSTEM and so on.

It's really a quick and fast way to install and configure an Oracle 18c (18.3) release on your server, what I personally don't like, is the used OFA (Optimal/Oracle Flexible Architecture) layout provided within the RPM, everything goes under /opt ... :-(


Oracle 18c RPM for Linux available

Since last night, the RPM for Oracle Database 18c (18.3) for Linux x86-64 is available for download in Oracle Technology Network



The RPM can be downloaded under following link: https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle18c-linux-180000-5022980.html

The corresponding documentation can be found under: https://docs.oracle.com/en/database/oracle/oracle-database/18/ladbi/automatically-configuring-oracle-linux-with-oracle-preinstallation-rpm.html#GUID-22846194-58EF-4552-AAC3-6F6D0A1DF794


Wednesday, September 26, 2018

Java 11 General Availability

Right on time as scheduled Java 11 has become General Availability. This is the first Java Release under the new license with the so called Long Term Support (LTS).

The latest Java SE 11 (LTS) can be found under https://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html


But before using this release in productive environments, just make sure that you really meet the new license or consult your Oracle Sales ;-)