Posts by Christo Kutrovsky
James Foronda sent a link to his blog entry about silent data corruption in an Oracle-l discussion. He points out a new file system called ZFS that has self-healing features.I read all the slides and it really looks like something cool to try out. It has some features similar to Oracle’s ASM, such as dynamic adding of disks, self balancing etc. It’s fully transactional, supports snapshots, online everything. Auto striping (not sure how this would work). Very feature rich.
I was installing RAC, and during the clusterware install I picked up the wrong interfaces for public and private. What had happened was I had a 10.x.x.x IP on both eth0 and eth1, which was messing up the routing. The solution? Simply modify the VIP in the cluster configuration.
If you have the ability to combine disk spindles at both the SAN level and Oracle (ASM) level, which one is better? Should you combine all your spindles on the SAN and present 1 big disk to OS and give that to ASM? Or should you present each individual disk spindle to ASM and let ASM do the mirroring? The disk group with 2 disks is slower! Those results are consistent, and confirmed with diagnostic output from iostat. You may start to wonder why would 2 be slower then 1. It should be twice as fast!
After I actually woke up I found myself attending a session about LogMiner by Chet Watmough. Log Miner in my opinion is a vastly under-used utility. It has such great versatility. Chet showed some techniques to add additional logging. By inserting the client info information into a dummy table, just to produce a record in the redo stream, he can identify who did what.
So I made my decision and went to “RAC & ASM best practices” presented by Kirk McGowan of Oracle. I wanted to see how far the documentation / common sense was from what will actually work. It wasnt that far from the docs, which is good. It means Oracle got it right.
I needed to change the undo_retention parameter in a 10gR2 database. Unfortunately I forgot whether the parameter was in seconds or minutes, and I wanted to see what the default was. So I open up the docs, go into the Reference guide and get the info I need from the top few lines. I wanted to set undo_retention to some large value in order to use flashback. So I decided to read if they were any notes about setting this too large. I started reading the notes. I’ve read this in the past, so didn’t expect anything new. Then I read the following: “For fixed-size undo tablespaces, the system automatically tunes for the maximum possible undo” What? Fixed size undo vs autoextend undo ? That’s new!
I read an article about combining multiple CPU’s and presenting them to the OS as a singe CPU. That way all applications that are currently designed to run only on a single CPU will be able to benefit from multiple CPUs. The problem is, I don’t see how this can be achieved. CPUs already have multiple pipelines, out of order executions etc. Some instructions just have to be executed in sequence and cannot be parallelized. If this technology is implemented in a similar way to hard disk RAID, then I wonder how would that affect application behavior?
Have you ever wondered how fast you can commit ? No matter what you do, a true commit will take time. The time will be very small, but it will still be more then doing an in memory query of a lookup table. And worst of all, you will serialize at the entire instance on it. So I did a test on how fast you can commit with 1 session. This will be the absolute maximum you can achieve in commit performance.
Here’s a quick way to diagnose where the database is spending its time for a specific process/operation. This is very similar to what statspack is doing, except it’s targeted towards a specific process, and does include the time where the database waited for the application.