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”

Disable SELinux on Oracle Linux 7

Sometimes when I want to test something or write a prototype of some sort SELinux (Security-Enhanced Linux) kicks in and hinders me, given that it is enabled by default on OL 7 UEK 4. STOP! Before I let you continue to read take a mental note of my disclaimer: I am an advocate of having security turned on by default. It helps us provide better and obviously more secure systems which, in turn, helps the world save time and money. Security should never, ever be turned off for production systems!
With this being said, here are a couple of quick steps for how to get around it.

tl;dr

  • setenforce 0
  • vim /etc/sysconfig/selinux
  • SELINUX=permissive

Here is also a short video on this topic:

Continue reading “Disable SELinux on Oracle Linux 7”

Blog update!

Hi everyone!

This blog hasn’t seen any updates since over a year now and I do apologize for that. However, the reason for that is simple. Last year I’ve decided to take on a new project. But before I was going to tell everybody about it I wanted to make sure that I also really got the time to do so. In the meantime I got the confidence that the project will succeed and that I have enough time to take it forward. So, how to say it… it’s almost like breaking up with a girlfriend. Well, here it is: I got a new one! Blog I mean of course. Last year in August I started a new blog: https://blogs.oracle.com/developer/
The intention of that blog is to show how write the right code for using Oracle technologies. Over the years I’ve seen a lot of badly written code that would never ever perform on top of technologies such as the Oracle Database. Unfortunately, I’ve also not seen too many folks that did understand Database performance and were good programmers. There seems to be a gap between the database world and the programming world, well I’m sure that that doesn’t come as a surprise to you. So, with this new blog I want to bridge the gap as good as I can.

Let’s stay friends!

However, this blog is not dead yet! The other blog is for a very specific goal. But there is more in my IT life than just that. And everything that doesn’t fit into the above one will sooner or later end up here. That being said, the above one will definitely get more attention from me going forward so you may want to add that one to your RSS Reader as well!

Last but not least: I’ve also finally managed to go live on Twitter. If you prefer that way of communication you can follow me @GeraldVenzl

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”

Best hidden features in Oracle

I seem to get into a lot of conversations around Oracle Database Options lately. Of course the Database Options are great, no doubt about it. But people sometimes seem to forget what the word “option” means. There is a reason why Oracle doesn’t put everything into one big product but gives you editions and options and the reason is simple: Not everybody will probably need the full feature set of the Oracle RDBMS. There are over 380 features within the Oracle Database which make it to the best relational database out there and I haven’t seen a single occurrence yet where all of those 380+ features are exploited within one installation. Most of the time people aren’t even aware of the feature richness of the Oracle Database.
Well, as you can imagine not all of those features ended up in Database Options but a lot of them are part of the core product and available in Standard Edition One, Standard Edition and Enterprise Edition. You got them as soon as you purchased a license for any of those three editions. A lot of you will probably still not need all the features that come as part of the editions but here is a list of what I consider the “Best hidden features in Oracle”:

  1. XML DB (this is probably the best hidden gem ever! Since 11g XML DB became really powerful and is a lot more than just a XMLTYPE BLOB data type)
  2. Text (full text search functionality)
  3. SQL Developer (check out early adopter version 4)
  4. SQL Pattern Matching (new in 12c)
  5. Temporal Database (new in 12c, no more start and end timestamps in every table)
  6. Recovery Manager (aka RMAN, no more full export, shutdown and data files copy every night)
  7. Application Express (also known as APEX, build sophisticated web-based applications directly on top of the database. Another feature that got really powerful lately!)
  8. Locator (ever come across geospatial requirements like which of my customers live closest to which branch of my store?)
  9. Enterprise Manager Express (although Enterprise Manager Cloud Control is free itself, Oracle Database 12c comes with a bundled Express version for its own instance management. This is great when you have just a single installation sitting somewhere which you either can’t deploy to your EM Cloud Control installation or you don’t have an EM Cloud Control installation)
  10. Fail Safe (High availability for Windows)

Java class finding tool: ClassFinder

I got into more coding again lately and that is a good thing I think. I’m a believer of the German saying “Wer rastet, der rostet” or in English: A rolling stone gathers no moss! Java seems to be my main programming language since quite a while now. But believe it or not I’m still coding some PL/SQL as well now and then. Anyway, sometimes when you get some ClassNotFound exceptions in Java it can be quite handy to have a little tool that can scan .jar and .zip files for the class that you’re missing. Yes, there are tons of those little programs out there on the web but as you might have guessed by the title I’ve decided to write yet another class finding tool. Damn, I really should have called it YACFT! But instead I did go for ClassFinder. Why did I write yet another class finding tool then? Well, although there are some good ones out there, non of them fulfilled all of my requirements – at least none of those that I have found. First I was a big fan of Xigole’s classfinder tool. A really slick, fast and easy to use command-line class finding tool which is really great for Unix systems where you ssh in. However, I soon got fed up with it when I did have a proper graphical interface available, whether it was Windows or X11 or simply my MacBook Pro. So I started searching for other tools and soon found that they were either just GUI based or just GUI based and on Windows only (Why? I don’t get it!) or GUI based on ugly AWT. But all that I wanted was a slick tool like Xigole’s that was clever enough to spawn a GUI when there was X11 available but still provide a nice CLI when there wasn’t. Well, as I said I couldn’t find one, so I wrote my own and here it is, ClassFinder:

ClassFinder Window-mode

It’s really easy to use:

  1. Give it either a file or a folder to search – files currently supported are .jar, .war, .ear, .zip, .rar, .class, .java
  2. Give it the class name that you’re looking for
  3. Shall the class name be case sensitive?
  4. Shall the folder be searched recursively?
  5. Hit Search!

Continue reading “Java class finding tool: ClassFinder”

Oracle 12c R1 enqueue waits

Just as with the new Oracle 12c R1 lock types it’s time to take a quick look at the new enqueue waits in 12c. Oracle 11.2.0.3 had a total of 304 enqueue waits. 12.1 has a total of 418. A lot of work seems also to have happened on ASM in this release. The amount of new enqueues per group looks as follows:

Group Amount
ASM Enqueue 16
Enqueue-Cross SCN 12
Backup/Restore 11
Queue Ptning global enq 8
Being Written Redo Log 8
SGA Log-Bkt Flush 6
AM Container 5
Media Recovery 5
OLS groups 4
Instance Recovery 3
AVM RTA Access 3
AM Contained File Identification 3
Privilege Capture API 2
Queue table enqueue 2
Label Security Profile 2
RFS Logminer FLC 2
Data Guard Broker 2
IOServer File 2
Queue Partitioning local enqueue 2
Column Key 1
Flush Stat 1
Pluggable Database 1
SGA Log Operation 1
AM Group Rebuild/Validate 1
Real-Time ADDM Flood Control 1
AM Contained File Resize 1
PDB DDL Operations 1
non durable sub bmap alloc 1
CBAC Master Lock 1
IOServer Client 1
PDB Instance State 1
Oracle File System Operation 1
KJCI Serialization Enqueue 1
Spillover Audit files 1
Application Continuity 1
File Set / Dictionary Check 1

Continue reading “Oracle 12c R1 enqueue waits”