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”

Too big to fail

There is this saying in the English language that something is “too big to fail”. It can refer to almost anything, a country, an initiative, a company, etc. What it tries to say is that, whatever the subject, is so big by now that there is simply no chance that it will ever go away again. You may have already heard this saying you may have not. However, I come across this phrase quite a bit in the IT world too. A technology is too big to fail or a company is too big to fail. And yet, the reality is that nothing is too big to fail!

Continue reading “Too big to fail”

Big Endian and Little Endian operating systems

Did you ever wonder or need to know which systems use big endian and which ones use little endian? Look no further, you can query it right out of the Oracle database:

SQL> SELECT platform_name, endian_format
FROM V$TRANSPORTABLE_PLATFORM
ORDER BY PLATFORM_NAME;
PLATFORM_NAME ENDIAN_FORMAT
AIX-Based Systems (64-bit) Big
Apple Mac OS Big
Apple Mac OS (x86-64) Little
HP IA Open VMS Little
HP Open VMS Little
HP Tru64 UNIX Little
HP-UX (64-bit) Big
HP-UX IA (64-bit) Big
IBM Power Based Linux Big
IBM zSeries Based Linux Big
Linux IA (32-bit) Little
Linux IA (64-bit) Little
Linux x86 64-bit Little
Microsoft Windows IA (32-bit) Little
Microsoft Windows IA (64-bit) Little
Microsoft Windows x86 64-bit Little
Solaris Operating System (x86) Little
Solaris Operating System (x86-64) Little
Solaris[tm] OE (32-bit) Big
Solaris[tm] OE (64-bit) Big

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_Docker

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”