I have been working as an Oracle DBA for about 9 years.
I had no insecurities or concerns about my job until a couple of years ago.
I used to feel like I had a thriving career.
Then something happened.
People started talking about some new technologies and careers like Hadoop, NoSQL (MongoDB, Cassandra, CouchBase), Data Science etc.
I heard people saying things like
- Oracle’s future is doomed. It might last another decade. Did you hear Oracle’s sales went down last quarter?
- I want to learn Hadoop, MongoDB, Cassandra etc.
- I want to learn Data Science. After all, Data Scientist is the sexiest job of the century.
- I don’t know which direction to go. I am at crossroads now.
- Everything is being automated. Will my job be relevant in the future?
Today, these technologies are not just a nice-to-know thing in the job requirements.
It is mandatory that you know at least one NoSQL database.
I got to work MongoDB a little bit at my current job. But it was not to the extent where I could be an expert at it.
So I sort of went into a shock. Even worse, I didn’t know what to do next.
I was paralyzed by the speed at which technology was evolving.
Thankfully, a book helped me get through this situation.
I’d always turn to philosophy whenever I need direction in my life.
I was reading a book called “Tools of Titans”
I happened to read about this guy called Derek Sivers.
Derek provides a really amazing advice when it comes to choosing something,
Don’t Be a Donkey.
He refers to a story, in which a donkey stands between a pile of hay and a bucket of water. The donkey couldn’t decide which one to choose. So finally it ends up dying of hunger.
Actually, the donkey could have had hay first and then the water. The point is the donkey had time to have both of those things.
I realized that I am playing this donkey in my own life.
I don’t want to be this donkey and die.
Well, you know what dying means in our DBA world. It means more than one thing.
It could mean:
- If I need to attend an interview tomorrow, I am not ready to face any questions in the topics mentioned above.
- I cannot bring any new ideas into my current job. No innovation means no visibility. No visibility means no promotion. Hence Proved.
- I am 60 years old. Not literally. When you’re talking to old people, you see how they struggle with today’s technology. That’s how I will be when I am in a situation, where I need to work with NoSQL, Hadoop, or Data Science, I will be like a 60-year old. Ignorant. Slow. Aww, so sad.
So I did the smartest thing in the world. I PICKED something.
What did I pick?
For people who are fine with learning more about Oracle 12c, I am going to talk about the following in the rest of the article.
- What does an expert think about the future of Oracle DBA career?
- Why is it not a bad idea to spend a few months learning Oracle 12c?
- Benefits of Oracle 12c Multitenant Architecture
- What is Oracle Multitenant Architecture?
What does Tom Kyte say about the future of Oracle DBA career?
It is true that there is a lot of competition for Oracle now. Hadoop Ecosystem and NoSQL have made their way into big enterprises.
It’s very common to hear someone say – Oracle’s not going to be around for very long. May be another decade or two.
This might sound scary to Oracle DBAs / Developers like you. But let’s see the cup half-full.
It’s going to be around for a DECADE or TWO. That’s a LONG time brother.
Even Experts feel this way too.
If you’re curious what Tom Kytes had to say about this topic, check out this post here.
I remember seeing Tanel Poder expressing similar opinions in some of his comments.
I think Tanel’s exact words were “Oracle isn’t going anywhere. But BigData will take over the world.”
If you ever run into him, you can check with him.
Why is it not a bad idea to spend some time learning Oracle 12c?
Do you know Oracle had already deprecated NON-CDB architecture. Here’s an official Oracle blog post that explains about it.
Basically, If you’re an Oracle DBA, you have no choice but to learn about Oracle 12c, unless you are moving to a BigData position.
If it’s going to be around for a decade, it won’t hurt spending a few months on learning Oracle 12cR2.
If you’ve come this far into my article, I’d assume that you have DECIDED to learn Oracle 12c.
One of my biggest inspirations is Tony Robbins.
Tony suggests whenever you make a huge decision (like the one we made here about Oracle 12c), you need to do something immediately that will commit you to follow through.
In my case, I spent hours reading about Oracle 12c Multitenant Architecture.
It is indeed a major change that has been introduced with Oracle 12c.
I try to imagine what Satya Nadella would have said when he saw Larry Ellison introduced Oracle Multitenant Architecture.
Another thing I found was Oracle Multitenant Architecture seems very complicated at first. Because that’s how it is explained in most of the documents/articles out there.
So I would like to break it down in layman terms for you.
Let’s start with this.
What are the benefits of Multitenant Architecture in Oracle 12c?
Suppose company X has 50 databases running on 50 different servers. One database per host.
Remember this company hasn’t upgraded their databases to Oracle 12c yet.
The company has a dedicated DBA for all these databases. Let’s call him Srini. You know, every company has a DBA called Srini.
Every Day, Srini shows up at work. He would pull up his spreadsheet, where he documents which servers are at what patch level.
He would then create change tickets to patch these databases one or a few at a time over many weeks.
Srini gets frustrated of doing the same job over months or years. So he decides to tell his manager.
His manager talks to his boss and other teams regarding this problem. They collectively come to an agreement.
Because these databases are non-prod databases, they decide to consolidate all these databases onto a single database server. So all 50 databases will be on the same host.
Then Srini works hard over the next two months and achieves this goal. Srini feels better now.
But now he starts seeing a new set of challenges. He has to allocate memory (SGA + PGA) for each of those database instances.
Each instance also spawns all its mandatory background processes. For simplicity, let’s say each database spawns about 100 background processes.
Now you have 5000 background processes running on that server. You are also going to receive connections from applications / users etc. This is going to add up to the process count.
Srini finds himself running into hanging server issues often. He would find that one database is under utilizing the memory and another database is running out of memory.
You get the point. It can get very complicated.
Srini is still as busy as he was before the change. Again, he goes back to his manager.
This time, his manager recommends him to turn 50 databases into a single database.
Srini says “That sounds like a great idea and gets back to work.”
Like a good, seasoned DBA, he turns to Datapump. Guess what? Look at the following issues Srini might face now. See if you could related to any.
- There is many Large Object Type Columns (BLOB, CLOB) in my database. My expdp is running for a long time.
- My database is huge like 5TB. It’s really difficult to use Datapump.
- My import is taking very long. It’s generating a lot of REDO. I can’t disable archive log mode.
- I have multiple public synonyms in multiple databases, how can I bring them into one database ?
- There is a lot of sensitive or PII data in one database, I am not sure whether to put that data in the same database where DBAs of other teams have access.
Yeah. A DBA’s life isn’t a cake walk. SIGH.
Oracle Multitenant Architecture is created especially to solve this problem Srini faces.
Oracle is also very aggressive in bringing more clients into their cloud. I’d guess this type of architecture will be a huge benefit to Oracle itself.
Let’s get into the details of Multitenant Architecture.
What is Oracle Multitenant Architecture?
Let me ask you a few questions to help you understand Multitenant Architecture.
For the next few minutes, let’s forget about Oracle 12c Multitenant Architecture.
Imagine you have two Oracle 11g databases running on the same server. One database is OLTP and the other is Data Warehouse Database. The specifics of the databases are unimportant.
I am categorizing those two databases in that way to emphasize their purposes are entirely different. They have different users, schemas, tables and so on.
Now I would like you to answer a few questions.
- Given that those two databases are entirely different in their nature, what’s still common between the two?
If you have read the above section about why we need Multitenant Architecture, you can easily answer this question.
Here are a few common factors.
- Both of the databases have background processes
- Both have SGA and PGA
- Both have data dictionary views (DBA_OBJECTS, DBA_USERS, DBA_TABLES etc.) and their underlying base tables
What if our databases shared these common components? The result is Oracle 12c Multitenant Architecture.
This shared set of processes and memory areas is called CDB (Container Database) Instance in Oracle 12c.
The shared set of data dictionary views and their base tables go into CDB$ROOT database.
CDB$ROOT database mainly consists of SYSTEM, SYSAUX, UNDO, USERS and TEMP tablespaces.
Since this database is meant for having common data dictionary views and objects, it’s highly recommended to not create any user-defined objects in this database. All I am saying is creating objects is definitely possible in CDB$ROOT database.
- If you have a separated out the common components from our actual database, what are we left with?
The remaining database will have application schema owners, application users/roles, individual users, and of course business data.
This is what is called as Pluggable Databases (PDB) in Oracle 12c.
- What if we have a third database on the same server? Can we apply the same concepts to this database?
Yes. Absolutely. Not just three. We can have 253 pluggable databases for one CDB Instance. All these databases can have their own users, schemas, objects etc.
- What if I told you security is my foremost priority followed by resource management?
You won’t let users of one PDB to access the data of other PDBs directly. That’s exactly what is done in Oracle 12c.
On the other hand, Oracle even lets you create users in CDB$ROOT database which are common to all the databases.
- What if I do want you to give access for users of one PDB to select data from a different PDB?
In Oracle 11g world, you would ask me to create a database link between two databases. Right?
The same principle applies in Oracle 12c too. That is, you will need to create DB Links between two PDBs to provide access accordingly.
- How does consolidating really help?
When you’re patching or upgrading databases, it will help big time.
If I have 50 Oracle 11g databases on the same server, I would have to run upgrade on each of the databases individually. Uff. Talk about Wasting Time on Shallow Work.
If I have one CDB Instance / CDB$ROOT database and 50 pluggable databases, then I would have upgrade only CDB$ROOT database. Then rest of my databases are automatically upgraded.
- Can you guess what NON-CDB architecture is?
It is basically the architecture you’ve been used to. Oracle has officially deprecated this type of architecture. This means two things. Non-CDB architecture will NOT be supported sooner or later. You have no choice but to learn Multitenant Architecture as long as you work with Oracle.
- Install Oracle 12cR2 Software on Oracle Linux 6.8 on Oracle Virtual Box.
- Create an Oracle 12cR2 database. The most important thing is to create a container database.
- Explore and Understand Multitenant Architecture.
Please click the below image to download a Free, step-by-step guide to learn to Install Oracle 12c on your laptop (Hint: More than 90 screenshots).
What would you like to learn more about in Oracle 12c? Please leave a comment.