Say Hello To Oracle Linux 7.0….

Seems like it’s going to be a week of new releases only. Last night only, I downloaded and installed Oracle database 12c patchset(12102) and today, Oracle Linux’s latest release OL7 is released. The download is available from E-Delivery portal and mine is going on. I don’t think it would take long before 12c would be certified for Oracle Linux 7 but I would do the installation of both, database and Linux, as soon as my download is going to finish. Fun times :=) .

Oracle 12c(12.1.0.2) Has Arrived….

Just checked Tim’s latest post and guess what, Oracle database 12c’s latest release, 12.1.0.2 is available now for download. It is available as an OTN download as well as from E-Delivery. Seems like that there is no documentation update available yet as the New Features guide still doesn’t have 12.1.0.2 included in it. But I am sure that it’s coming soon!

So grab your copy now and happy downloads :=).

Update: The documentation is updated and if you are looking for the new features introduced in 12102, check the following link.

http://docs.oracle.com/database/121/NEWFT/chapter12102.htm#NEWFT003

Packt Shares Its Full Range of eBook/Video For Just $10….

Yes, that’s correct! Packt Publications is celebrating 10 years of effective learning and information services to IT professionals. To make us part of this celebration, the good guys  are offering all eBooks and Videos at just $10 each until July 5th. So this would be a really good chance to get any e-book or Video of your choice in such a good price. Sounds good? Well follow this link then,http://goo.gl/Dnn5RP.

And since every book is just for 10$, why not use this opportunity to purchase my book as well :=)? If you need the link , here it is, http://www.packtpub.com/oracle-database-12c-backup-recovery-survival-guide/book.

Happy shopping and best wishes to Packt Publications!

Oracle University Learning Streams, Learning Would Never Stop….

Oracle technologies is like an ocean and with the introduction to more and more features, it’s becoming hard for almost all to match the pace. Surely one can attend a course (or several courses) to learn about a new technology or to furnish his skills on an existing one but at times, even that is not enough. For example, it’s tough to keep a control on the quality of the training as one would only come to know about the instructor i.e. how good(or not-so-good) he/she is, how well suited is a particular course for someone’s requirements etc. etc. Also it happens that at times, a course that one wants to attend, it may not be happening at his location or at a nearby location. Oracle University has taken several initiatives to solve these issues. Besides the standard ILT(Instructor Lead Training), now there is also an LVC(Live Virtual Class) that one can attend or can purchase Self-Study CD-Roms. But even that is not some times appreciated much depending on person’s liking. Some people prefer to see someone actually talking, delivering the session , making diagrams on the whiteboard and showing them how to perform the lab sessions along with the assurance that he/she is a really very knowledgeable instructor. Also, at times, doing a course for just N days is not enough and one wants to keep on listening the instructor sessions again and again, at one’s own pace to understand things. Fortunately, this is also now possible with the introduction of TOD(Training On Demand) learning mode where one can subscribe to a course’s pre-recorded sessions and keep on watching them without limits till 3 months. What’s more that you also get a 6 day’s lab time, e-kits of the course and a course attendance certificate which is also valid for the certification. Cool isn’t it! But hang on, this is something that I have already blogged about here. So what’s new?

Well, the newest thing is Oracle University | Oracle Learning Streams.

Think about it, you do know what is Exadata, how to manage it, administer it and you have also attended the course which teaches you all the aspects about Exadata Administration as well. But what you are interested to know more about the best practices in performing the Backup and Recovery over Exadata or how the Parallelism in Oracle database works or the best practices in upgrading and patching of database etc.-topics which are more specific and are targeted towards many many different areas for a particular technology and  you want to learn them at your own pace! That’s what the newest edition in learning from Oracle University is-Oracle Learning Streams. For an annual subscription for your desired technology(currently available for Database and Middleware) , you would get access to hundreds of pre-recorded videos covering a huge list of topics. If you ask me, I am really excited and I shall be definitely subscribing to my area of interest-Database. What about you?

Oracle Enterprise Manager(12c Cloud Control) Release 4 Is Available Now….

Just a quick shout-out , in case you haven’t heard about the news before, Enterprise Manager is now available with its 4th release now. You can download it from OTN along with the documentation. Additionally, you can watch and learn about the latest features from the EM’s YouTube Channel and also from OLL’s YouTube Channel. Tim Hall’s installation articles for the same are just too good to be missed. Last but certainly not the least, you can read these following books about the same,

Expert Oracle Enterprise Manager 12c

http://www.amazon.in/Expert-Oracle-Enterprise-Manager-Apress/dp/1430249382

Oracle Enterprise Manager Cloud Control 12c Deep Dive

http://www.amazon.in/Oracle-Enterprise-Manager-Cloud-Control/dp/9339203984/

Oracle Enterprise Manager Cloud Control 12c: Managing Data Center Chaos

http://www.amazon.in/Oracle-Enterprise-Manager-Cloud-Control/dp/1849684782/

 

Have fun!

Dynamic Registration In 12c Using LREG….

There is a lot of change that release 12.1 or 12c has brought up. And it’s not in the more advanced new features that I am talking about but even in some areas about which, we have memorized a particular concept by heart from last many years. Once such change is what I am going to mention in this post-introduction of the LREG(Listener Registration) process.

Basics of Dynamic Registration
In the earlier releases,to register an instance with the listener, dba’s were required to manage the lsitener configuration file-Listener.ora. One would need to mention in this file the specifications of database whose instance we would want listener to listen for incoming connection requests. Not that it was very hard to do but it was still one of those tasks which if could be made automatic, it would make life a little simpler. And that’s what happened when from 9i onwards. The requirement to use a listener.ora file to  register an instance with the listener was removed from this release and this task was delegated to the PMON(Process Monitor) process. At the time of the instance startup, PMON process would register the instance with the listener. If the listener is not up, it would keep on looking for the listener and once it’s up, the registration would happen with a delay of about 60 seconds. And this continued till 11.2.

Now, from 12.1, the same is handled by a process dedicated for this work, LREG(Listener Registration)process.

If I had stopped here, it would be a very simple post and probably, a not-so-interesting one either. So I thought to explain a little more. If you are interested to understand how does the whole thing works, keep on reading it.

How does Dynamic Registration works?

There is a lot that goes on behind the scene when the database and its related processes are functional. And all of it goes back to how OS works. In the dynamic registration, two important concepts-File Descriptors and Sockets come into the play.

When the listener process starts, it creates two socket files under the location /var/tmp/.oracle. I haven’t started my listener right now. So let’s see what’s the output from the folder,

 

There is no Listener process running but there is a [netns] process owned by Root. It stands for Network Namespace process of Linux and is spawned by the [ktthreadd] (Kernel Thread Daemon), used to spawn other kernel threads. There is nothing required to be done about [netns] by a DBA.

If the listener process is started(the output is from a previous session when I started the listener), you can see the socket files created by the listener process in my 12.1.0.1 version running on OEL 6.5 below,

 

 

As I said, there are several file descriptors that are created and all of them are present under the /proc file system. Below are the file descriptors that I had got in my system,

 

Since we know that our listener’s PID was 3022, let’s check that out by going into the folder with the same PID.

 

 

You can see two folders, FD and FDINFO. Let’s see what we have inside the folder  FD.

 

And we can see that there are several file descriptors that are there.

Thus it is established that there are file descriptors and sockets that get created for the process and in our case, we have checked the same for our listener process.

So how does these two get fit into the dynamic registration done by LREG process (and in the previous release, PMON)? Well, it’s simple. The processes use system calls to see that whether the listener is up or not(listener doesn’t need to be there for the database to be started). If there is no listener process found, the wait continues and after a certain time(3000 milliseconds) , a retry is done. This keeps on going till the listener is started and when that happens, the file descriptor opened by the listener is “binded” by the process to estabilish the connection between each other.

To find what the LREG process is doing, I used STRACE os utility to trace it’s working. The output for the PMON process in 11203 wasn’t entirely the same but I guess, that’s expected as it wasn’t a process dedicated for just getting the instance registered with the listener. On the other hand, LREG’s sole purpose is the dynamic registratior so that might explain the little difference between the system calls used between the two processes.

To see what happens when the listener is not present, I just started the database and used strace over it. Below is the excerpt of the output of STRACE,

 

We can see few system calls here , starting with epoll_wait that is used to represent the time waiting for events over file descriptors.The last argument is showing the time in milliseconds-3000 milliseconds(which means 3 seconds) . Skipping the next two lines for the resource usage consumption, the times function returning the time in seconds and if you notice, it’s having a difference of 3 between the above posted two snippets of the output.

Next snippet is going to be a little bigger and that’s where the entire action is happening.

Picking up the relevant thing from the output, the first interesting piece is the starting itself,

 

What is happening is that a socket function is used to work with file descriptor 17. I guess this is a fixed sort of file descriptor that’s used in establishing the connection with the listener process. The socket used here is NETLINK which is used to create a connection between the kernel and the network layers.

Moving on, the next line is

 

Here a bind attempt with the file descriptor 17, returned from the previous statement is initiated. In the next few lines, this file descriptor would be used to initiate the connection with the PID 2581, which is the the PIF of LREG process.

 

Now, the details of the host IP address is gathered using the file  /etc/hosts.

 

An attempt to estabilish the connect with IP address is in progress.

 

Since there is no listener process started yet and also, there is no file descriptor 17 associated with the process LREG yet, the connection is refused. There is no established connection on the as well and we can confirm it using the LSOF command.

 

Also, there is no such file-descriptor in the /proc for PID 2581 as well.

 

Now, let’s start the listener. I had kept the tracing going on when the listener was started. The very first thing to notice is that in the /proc file-system, the file-descriptor 17 is now available.

 

In the strace, there isn’t any change in the output and the same system calls that we have seen in the previous output are used except that now,there won’t be any connection refused message.

We can now see that the connection is estabilished using the same LSOF command,

 

We can see that file descriptor 17u(u stands for the mode, read and write) is used by the LREG process to estabilish a TCP connection. Also the socket files are created under the /var/tmp/.oracle folder for the listener process 7902.

 

In case you are wondering what is this ncube-lm thingy shown in the output, that’s
NCube-License Manager. If you check out the website, http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?&page=26, it seems that this port is assigned to Maxine Yuen. So seems like the port 1521 is not really owned but just used or shared by Oracle Corp for the listener process. Interesting isn’t it?

Before ending the post, if you are not willing to use Strace, you can opt for listener tracing as well. I haven’t posted the output of that here though.

Hope it helps, in some way!

WordPress 3.8.2

Just the usual upgrade of WordPress to the latest version 3.8.2. If you are able to read this, it went fine :=).Download it from here if you haven’t done it already.