What is Oracle Grid Infrastructure – A Free Tutorial

What is Grid Infrastructure? (Hint: It is not Grid Control.)

It is still possible to run an Oracle database without Oracle Grid Infrastructure. But is it sensible?  And, if you want to use ASM – which we strongly recommend – you need GI!

In this tutorial you will learn how Grid Infrastructure can replace (or complement) third party products for RAID, network management, and high availability. At the same time, using these facilities can improve performance dramatically. Grid Infrastructure is the way Oracle is moving, and we want to show you that it is not necessarily complicated and can indeed make your life simpler. It can also save you money.

Content: live demonstrations of configuring and using Grid Infrastructure services with release 11g.

Audience: DBAs looking for entry level knowledge of what Grid Infrastruture can do.

Presenter: John Watson, Oracle Certified Master DBA

This free training is segmented into several separate lessons:

  1. Introduction (1:35)
  2. Why All Administrators Need to Know Grid Infrastructure (3:27)
  3. Intro to Network Administration with Grid Infrastructure (3:18)
  4. Demonstration – Network Administration with Grid Infrastructure (5:46)
  5. Network Administration with Grid Infrastructure Q & A (3:28)
  6. Grid Infrastructure Licensing Tips (1:21)
  7. Grid Infrastructure Storage Management, ACFS, the Cloud File System (5:00)
  8. Demonstration: ACFS, Cloud File System, Storage Management (4:02)
  9. High Availability with Oracle Grid Infrastructure (10:50) (click on video below)
  10. SQL Net Listening Architecture and SCAN (4:26)
  11. Conclusion: Planning for Oracle 11g / 12c Grid Infrastructure (1:16)

Date: Feb 21, 2013


NOTE: Some corporate firewalls will not allow videos hosted by YouTube.


Transcript

High Availability with Oracle Grid Infrastructure

>> John:  The next topic I wanted to cover is to do with high availability. This is where we move on to the Clusterware capabilities, how we can have services failover from one machine to another.

 

[pause]

 

Now, in the database itself, we’ve had service failover between instances for some time. It first appeared back with version 9 but with version 9a, it was all manual. It became much better of course with version 10g, the automation came in. and with 11g, even more automation still.

 

[pause]

 

Grid infrastructure with 11.2 introduces the possibility of database or instance failover between nodes. We can actually have a database failover from one computer to another. That’s the sort of capability that’s previously one would probably would have to use HP Serviceguard or perhaps IBM HACMP to get some sort of equivalent functionality.

 

Grid infrastructure can failover a database from one machine to another. Even slight problems with this cluster – I just have to hope that this will actually function. You’ll never know. We shall see.

 

Now, what I do want to do is demonstrate the database failing over if I can. The technique is to create what we call the server pool. That’s how we pool.

 

[pause]

 

So the detail of this, we can start these subsequently. Create a server pool and then when you need to assign your database to the pool – so I connect to my database home. I pre-created a database by the way. I created a database in advance and then registered the database with Grid Infrastructure.

 

[pause]

 

So I’m adding the database to the Grid Infrastructure and registering it, and I’m assigning it to this pool – Rdb pool – that I created earlier. So, a pool of servers.

 

How big is your pool going to be? If own a site with 50 computers and you clustered all off, you probably wouldn’t put all 50 into one pool. You might have one pool for your production servers, one pool for your development servers, one pool for your test servers, and so on. But I only have only two nodes here. So I’ve created a small pool (Rdb pool) and I put both my nodes into it. Then I assign my database to the pool.

 

[pause]

 

Add the database to the pool, but the pool has a couple of extra switches here. The pool has a name, Rdb pool minus L1 minus U1. That’s an instruction to the infrastructure, L at least, telling Grid Infrastructure to activate at least one server in this pool and activate up to one server in this pool, which is a long winding way of telling Grid Infrastructure, “I want one active machine in this pool.”

 

[pause]

 

Which will that machine be? One of those two.

 

[pause]

 

Now I’ll start up the database.

 

[pause]

 

SRVCTL start database.

 

[pause]

 

Start the database called Rdb as I corrected earlier.

 

I have no idea on which machine that database is going to start. I really do not know. Grid Infrastructure would follow its own load-balancing algorithms and start up the database on one of the machines that is in that pool. Only one because of the way I configure that.

 

[pause]

 

Now where has it in fact started – I could control it of course but I’m relying purely on trusting Uncle Oracle at this point.

 

[pause]

 

Status database minus DRBB and it has in fact started on the node IN1. I didn’t know that, but that’s where Oracle has chosen. Your Grid Infrastructure has chosen to start it.

 

[pause]

 

There it is. Well, how do we failover to another machine? What’s the most brutal way to failover you can think of? I shall cause a problem. The problem I shall cause. I’ll just reboot the box. I need to do it anyway since this is the one way.

 

[pause]

 

My kernel module is running. So I’ll shut down.

 

[pause]

 

I kill that machine. Just reboot it. Gone. Right.

 

[pause]

 

That will of course have terminated the instance. But Grid Infrastructure should pick that up pretty quickly and within a few seconds, minutes at most, it thinks it’s still running but of course it’s not running in this machine IN1 because machine IN1 no longer exists. It was rebooted at no on certain terms.

 

[pause]

 

Pretty soon, Grid Infrastructure will pick that up and restart it. This is the sort of thing you could do with third party products – HP Serviceguard, IBM HACMP, Veritas Clusterware – any sort of system that will monitor what’s going on. Identify the fact that it’s not running on node 1. It’s not running on node IN2 either. But it will be soon. If we see, if it started up already RAC Rdb…

 

[pause]

 

It’s come up already. It’s already come up.

 

I didn’t time it but that’s probably less than a minute. So in less than a minute, the entire database failed over to another machine, which is pretty fantastic. Given the Grid Infrastructure cluster storage as well, the way we’re building dependencies, the disc groups contain the data of that database instance needs would also be remounted on the data machine it failed over to. Very nice indeed.

 

[pause]

 

>>Dave:  Very cool, John. Very cool. A couple of questions in the queue – is this a good time?

 

>>John:  Yes, sure.

 

>>Dave:  One question is if the database is active during that failover, what about the current transactions? Are they lost?

 

[pause]

 

>>John:  That takes us onto the next aspect. A very timely question. That takes us on really to the next part of what I was going to talk about which is the fault tolerance from the client side. I’ve used as viewed by the client.

 

[pause]

 

I might as well show you now actually. If we look at what we call services, srv ctl, if I want to add a service, when we define a database service, we can define session failover. This is actually my 12c environment.

 

When we can configure session failover to none and, in that case, all sessions against the failed instance or failed node would die. I won’t have to reestablish manually. We can have the session failover but only work in progress would go or we can have select statement failover, meaning that a session is logged onto the instance. The machine or the instance fails, the session fails over.

 

If it is in the middle of a select statement, the session will appear to continue. You can continue to fetch with your cursor. That’s as far as we can go with version 10 and version 11.

 

If you’re in a transaction as the question was, with version 12c, we can have the transaction failover as well. But I’m afraid up [08:03 inaudible] version 11, the best we can do for you is have a session failover and select failover. Transactions will be rolled back with the current release but that will change when we get the opportunity to take you on to the next release.

 

[pause]

 

>>Dave:  Very, very cool, John.

 

[pause]

 

I think the last one for this, what if an application needs a virtual IP and a file system? Can you link them?

 

>>John:  Yes, we can. We can build independencies all the way. Let me show you that.

 

[pause]

 

I may be able to build up an example. What I have here for example, the way the dependencies work, yes, I’ll go through a listener and [08:51 inaudible] talking about scan single client access name. If I look at how my listener is configured

 

[pause]

 

Minus P to get the complete page of details, there’s a device, a service called ora.LISTENER_SCAN1.lsnr. What is it? It’s a scan listener. It’s a database listener. It has a particular purpose. It’s a database listener that services the single client access name.

 

[pause]

 

There’s the [09:24 inaudible], I mentioned earlier. But down here, we see [09:29 inaudible] properties. Here’s some of the fault tolerance stuff by the way. It auto starts. How many do we want and so on? How often do we check that it’s actually working? What to do with failovers? We don’t delay at all. We failover immediately.

 

[pause]

 

But down here we see the dependencies. So we can build in dependencies between registered resources and we have here that my database scan listener has a hard dependency on that. That’s a VIP. Hard, meaning if that virtual IP address is not running, we cannot start the listener. That’s fair enough. The listener needs an address on which to listen.

 

[pause]

 

Then we see a clever part here, a pullup. A pullup dependency means we try to start this process, the scan listener and the VIP is not running, we will start it.

 

[pause]

 

So you can build in as many dependencies as you like with all the registered resources. In the case of a database, I don’t have a database registered here. We were building a dependency on say certain file systems and on certain listeners as well. Just start one on a particular machine and that will pull up all the other resources, not the appropriate file system that’s required.

 

 

Copyright SkillBuilders.com 2017

×
Free Online Registration Required

The tutorial session you want to view requires your registering with us.

It’s fast and easy, and totally FREE.

And best of all, once you are registered, you’ll also have access to all the other 100’s of FREE Video Tutorials we offer!

 

×
Podcast
×