book review – High Availabliity with RAC, Flashback and Data Guard

For a change I will review a book. The book is from Oracle Press. High Availability with RAC, Flashback and Data Guard. Matthew Hart and Scott Jesse.


Book outline


1. Illustrated Downtime Scenarios


This chapter is an introductory overview of what can go wrong. Unfortunately, this chapter is a little light and not complete. It is a good introduction and quick read.


2. RDBMS features for availability


This chapter introduces us to Enterprise Manager (EM). It is mostly screen shots of the EM that comes with a database. It does describe the differences between spfile and init.ora very well. The chapter then goes on and describes different types of partitioning. “Table and index partitioning refers to the ability within Oracle to organize a single table of data into multiple logical parts that can be maintained and treated independently”. “Partitioning is usually a maintenance-to-performance trade-off: maintaining partitions require more DBA footwork, but typically provides better performance”. “There are three distinct types of partitions for tables: range, hash, and list”. “The range partition divvies up data into segments that are separated by ranges of values, such as dates”. “List partitioning occurs by grouping specific values to be placed in each partition. Thus you can group data logically that does not have a natural range grouping, and control which partition is used”. Hash partitioning splits the table based on a hash value of the data.


You can also lay out a database for availability. Some key elements to make this happen are: index-organized tables and materialized views. The chapter does have good code samples to show you how to implement these. It also goes into how to modify an existing table for performance and availability.


The rest of the chapter appears to be a catch all for availability. Yes, it is important to talk about the scheduler and the resource manager because things can run away and you need to know how to stop this. I’m not sure why logminer is included in this chapter other than it works with redo logs which helps with recovery. The chapter does have a good logminer tutorial using SQL commands. The same is true for the section on transportable tablespaces.


3. Tuning your database for availability


This chapter mainly focuses on 10g new features. Some of the key elements are MMON, AWR (Automatic workload repository), and ADDM (automatic database diagnostic monitor). The first half of the chapter does a good job of introducing these concepts and examples of how to look at these elements. Next the chapter goes on to talk about SQL Tuning advisor, memory advisor, and ASMM (advanced shared memory management). Finally the chapter ends up talking about ASM (automatic storage management). All of these discussions are good introductory material that introduces concepts, command lines, and reasons why you would use each feature.  


4. RAC Setup and configuration


This chapter starts out talking about cluster ready services. This is a good introduction to how RAC works. I like the configuration recommendations but the book makes assumptions that the target is a Linux/Unix system and does not point out how it would be different on other operating systems. Overall, this is a good introduction to RAC installation. It touches the base concepts and goes through a typical install.


5. Database administration in a RAC environment


This chapter describes some of the RAC specific parameters that are unique to a RAC environment. It also goes into a good description of RAC background processes and what each does. The tutorial goes through and shows how to enable archiving and flashback. The chapter ends up with a description of how to add or remove nodes in a RAC installation.


6. Utility Computing: Application as Services


7. Oracle Data Guard: Surviving the disaster


8. Backup and recovery for high-availability


9. Oracle Flashback: surviving user-induced trauma


10. Oracle streams for high availability


11. Oracle net configuration for failover

taking risk and being a hero

I don’t know why I keep coming back to this topic but I do. Risk taking is something that everyone is forced to do at some point. Heck, driving in your car is a risk. Walking to the mailbox is a risk. Not much of one but still a risk. Tonight I watched the school that I went to (Texas A&M) compete against Oklahoma in football. The game was very close but it all came down to the last minute. The Bob Stoopes, the Oklahoma coach, took the clock from 3:30 down to 1:30 but still needed half a yard to run out the clock. Easy, right. Anyone can get one yard. Unfortunately, they had not gotten a first down in the fourth quarter and they were on their own 30 yard line. If they went with the odds, they were not going to get another first down and the A&M kicker can make it from 50 yards out. Given that Oklahoma only had a one point lead, it looked like a huge risk. The announcers were saying that they would not make this call. They ran a play and made it but the coach called a timeout and stopped the play before it was successful. The second time that they ran it, the defense serged and almost stopped the quarterback. The key word here is almost. They stopped him at the line of scrimmage but he bounced off and tried again. When he fell down he fell forward and gained the one yard needed.


After the game Stoops was interviewed and said that the wind and the crowd noise was against them. The punt would have ended up short and would have given A&M just a little farther with a minute and a half to play. Given that failure would have meant the game, what is the risk. The risk is loosing the game. Given that Oklahoma was ranked in the top twenty and so was A&M, how bad would it be loosing by two points on the opponents field. Would they have dropped out of the top twenty? Probably not. Would the coach have been fired? Probably not. This isn’t one of their major rivals and they don’t have much of a chance to win the conference title.


In my opinion, it was a calculated risk. Would I have made the same call? I doubt it. I don’t take large risks like that. I focus on winning and not the bigger picture most of the time. Is that a bad thing? Probably not.


I have a friend that I recommended for a job years ago. He interviewed well and got a job in a different group than me. I kept telling him to become good at one thing. It dosen’t matter what that one thing was as long as he was the best in the office, area, and company. Once he obtained that status, everything else would fall in line with that. In my opinion being able to say that absolutely that something is the right thing to do truly is the right thing to do is one of the best emotions I can think of. For me, it takes being the best at something to have that comfort level and confidence. My friend decided he could make more money by investing in old houses and renovating them. His job suffered. He was never happy doing what he was hired to do. He always go sub par ratings because he spent too much time tracking stocks and looking at real estate. Fortunately for him, he realized this and is now buying and selling houses. Would I have the courage to drop out of a steady paycheck and totally change careers? Probably. I did this when I went back to graduate school. Looking back I made the same mistakes my friend made. I didn’t finish my Ph.D. because I was too distracted making money consulting and not doing my research. I got a reputation of someone who took too long to finish projects and my ideas were just a step behind. Does this mean that I can’t get a doctorate? No. It means that I screwed up in my attempt and didn’t even take my own advice.


Would I have gone for it up one point, a half a yard to go on my own 30? Looking in the mirror I look at every morning I don’t think that I have that much confidence or comfort. Ask me again in six months after being at Oracle for a whole year. I might answer the question differently. I just need to find that one thing that will make me a hero and build that confidence and comfort.

what does it mean to be a tested service

I have been reading through some of the presentations from OpenWorld. Some are nothing more than representation of typical Oracle marketing and sales presentations. Some are true gems. One got me thinking about selection of hardware and software. The presentation can be found at http://www28.cplan.com/cbo_export/PS_S284441_284441_139-1_FIN_v6.pdf


The premise behind the presentation is that Dell configures a server that allows it to provision a database node into a RAC environment and make it part of the data warehouse cluster. One of the things that the author debates is the merits of deploying the latest and greatest hardware and software. The advantage is that you get the latest bells and whistles and newest features. Unfortunately you also get the least stable code test matrix. A new driver might be needed to support some new hardware feature and it might have an untested data path that happens when you least want it to. This brings me back to the age old question. If I were a CIO, what policies would I mandate? When I purchase a new car I never buy the latest and greatest. I did this years ago when I got a Miatta. The car had some bugs and problems with it but I got lucky. My wife purchased a Olds Silouette the first year that it was out. They never figured out how to get the brightness on the video screen to work properly and we were stuck with a VHS player that could not be converted to play our DVD library. The automatic door never wanted to close and stay closed. I think that I would mandate being a release behind the vendors or go with a qualified configuration that someone else that I know has tested and figured out what the problems are. If I were a CIO, I would follow the configuration that Dell proposed at OpenWorld. It appears to be well thought out, well tested, and I could call one of the IT directors at Dell for a site visit. I’m sure that the Dell sales rep could arrange this since I would be purchasing from them hopefully in large volumes. (Hey, if I am going to be a pretent CIO, it is going to be for a large and successful company).


Cutting edge is one thing. I always believe in learning things before everyone else. It helps me keep my edge. Oh well, I guess I better get back to reading the 11g database release information as well as the rest of the OpenWorld presentations that I find interesting.

the meaning of words

we did an exercise the other day that surprised me. If you get 2-3 people and put a single word or pair of words then have everyone write down words that match. You know the game. I say birds. You say bees. I say red. You say room because you watched the Shining the other night and everyone in the room questions your sanity. The word that we had was trust. The exercise is to list 10-15 words that are synonyms for the word trust. Once you are finished match your words with theirs and see how many matches you come up with. We did this with a room of 30 people broken into 10 groups and the most exact matches that we came up with was one group with one match.

Next time someone comes in your office and says that they can improve your productivity, what do they really mean? I will be more carefull with my words in the future.