Posts by Alex Gorbachev
If you are following my blog then you might recall that I’m going to make a presentation on the Miracle Scotland Database Forum 2007. My presentation is called RAC load testing adventures and it’s based on a project I’ve been through with one of our clients.
With this post, I’m starting a series about Oracle Block Change Tracking internals. The feature was introduced in Oracle 10 Release 1. I have already published my past presentations and the white paper about that. When I first started, I tried to dig at least something from Metalink, but the public notes contained no implementation details. What I extracted is some pieces of bug texts, and from there I concluded that fixed tables starting with X$KRC are most probably related to the BCT feature.
One of our clients had an ORA-1555 “snapshot too old” error two nights in a row. The quick and dirty fix would be to increase the retention_period and the potential size of the UNDO tablespace. I was looking at it together with Dave, my new team mate, and a small detail popped up right away — Query Duration=76584 — 21+ hours? I checked the retention period, and it was 2 hours, so the dirty fix would probably fail unless it’s very dirty — dumping undo retention to something like a day and blowing the UNDO tablespace, and still without guarantee that the query finish within a day.
I first presented on Oracle 10g Block Change Tracking Internals at UKOUG 06 in Birmingham. It was very well received, but there were quite a few gaps in my knowledge, and I later discovered I was incorrect in some places. I’ve done some additional research, filled in the blanks and corrected in a few places. Download it here.
Looks like our blog has turned into a MySQL blog over this week, so I have to do something about it. Luckily, I have zillions of pending posts, so I’ll start with posting my presentations materials from this conference with my remarks on how it went in general.
I enjoyed the event and the venue very much. The presentations very generally very good, and to my surprise some of them were somewhat lighter than I would expect. However, that might actually play positively in extending the audience — there are only so many freaks interested only in hardcore performance and internals.
Unfortunately, I’m too slow to blog about news and can never make it first. Today is no exception and Doug Burns has already posted about “one of the best Oracle Conferences of all times”: I can tell you – I’m so excited to see all those bright people presenting. It’s especially a pleasure to see that Doug (who recently joined my team here at Pythian) is presenting there.
Oracle CRS 10.2.0.3 patchset brings long awaited removal of previously required dependencies of databases and ASM instances on a VIP. Actually, 10.2.0.2 patchset lifted the requirement for dependency between ASM instance and VIP but not for database instances. In 10.2.0.2 this dependency wasn’t removed by default. For those who don’t know…
Just a small thought to share. Oracle doesn’t really comply to the rule 11 of Codd’s 12 rules. It does have database links and tables can be grouped in different locations (databases) but it’s not possible to distribute a table transparently across several locations. MySQL Cluster, on the other hand, distributes rows of a table over different data nodes using hash function on the primary key and it’s transparent to the client so it conforms to the Rule 11 as opposed to Oracle.
This is a follow up on my previous post about SYSDBA keeping invoker rights when calling PL/SQL procedure. Working on the previous test case a bit more I figured that the same anomaly is observed with triggers. So here is one way to get your PL/SQL code called by a SYSDBA. In this case you need to be able to create trigger on database, i. e. need privileges ADMINISTER DATABASE TRIGGER and CREATE TRIGGER.