Manually installing a Maven artifact in your local repository

I find myself once again in the situation that I have to install the Oracle JDBC driver into my local Maven repository. Usually this is easily accomplished via mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> -DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>, see Guide to installing 3rd party JARs for more details on that. However, this time I was thinking to go the extra mile and actually figure out a way of how to do it entirely manually. This comes in handy if you have, for example, Maven integrated in your IDE and the mvn binary not available to yourself in the command line.

Continue reading “Manually installing a Maven artifact in your local repository”

How to create small Docker images

Oracle_DockerWhen it comes to space efficiency Docker still isn’t quite as good as it could be. The layered filesystem used by Docker sometimes occupies more space than is really necessary. Over time, a couple of enhancements have made their way into Docker to allow the build of more space efficient images. The ADD instruction for example is smart enough to detect (unfortunately only) local compressed archives (and unfortunately only identity, gzipbzip2 or xz but not zip archives) and directly adds the uncompressed contents into the image, unlike the COPY instruction that simply copies a file into the image. The downside of the latter is that space is occupied for the zip archive itself and the extracted contents of the archive, whereas the former will not occupy any space for the archive as it is never added into the image.

Continue reading “How to create small Docker images”

Why you should never put objects into the SYSTEM or SYSAUX tablespace

Just because you can doesn’t mean you should

I still see it happening that people put object, i.e. tables, etc. in the SYSTEM or SYSAUX tablespace. Sometimes it’s done deliberately, sometimes it happens automatically by creating a table in the SYS schema. Well, let me tell you, it’s a really bad idea. You should not put any kind of user object into those tablespaces. Even the Oracle Database Documentation warns you of doing so:

Continue reading “Why you should never put objects into the SYSTEM or SYSAUX tablespace”

Creating an Oracle Database Docker image

Run your Oracle database inside a Docker container


Oracle has released Docker build files for the Oracle Database on Github. With those build files one can go ahead and build his or her own Docker image for the Oracle Database. If you don’t know what Docker is you should go and check it out. It’s a cool technology based on the Linux containers technology that allows you to containerize your application, whatever that application may be. Naturally, it didn’t take long for people to start looking at containerizing databases as well which makes a lot of sense, especially for, but not only, development and test environments. Here is a detailed blog post on how to containerize your Oracle Database by using those build files that Oracle has provided.

Continue reading “Creating an Oracle Database Docker image”

Oracle 12c R1 background processes

Here is yet another Oracle 12c post to add to all those out there and this one starts with a question: How many background processes exist in an Oracle DB 12.1 environment to date? Just take a moment and take a guess, if you haven’t already seen the bold number coming up. The answer is: 108! That is with all the available bells and whistles turned on but it gives you an idea of how much engineering has gone into the Oracle Database over all those 30+ years. In Oracle 12c there is a total of 19 new background processes meaning that if you are running in an 11gR2 environment you will only have 92. Wait, 92? 108 – 19 = 89 and not 92. Those numbers don’t add up so what happened? It is one of those questions I get these days when talking about 12c. Although you can’t change it anyway people want to know what has changed between the versions and I guess: Fair enough. So there you have it, the reason for this post: To share my little research and perhaps answer the same question from one or two people out there before it reaches me via other channels. Or worst case, a link that I can copy/paste rather than having to type this all over again. Continue reading “Oracle 12c R1 background processes”