Oracle 10g introduced the wonderful (and I mean wonderful) ability to “rewind” a database back to a point in time, rather than restoring a backup and rolling it forward in time using transaction logs. This technology is called flashback database,…
Author: Steve
How close am I to realtime with dataguard and maximum performance (asynchronous) mode?
Oracle supplies two views to monitor how up to date your standby database is when compared to your primary database. One view is v$dataguard_stats, and the other is v$standby_apply_snapshot. Each of these views is only updated every 30 seconds, or…
Manually subscribing to Oracle FAN events
JDBC and dot Net clients are the recommended way to automatically subscribe to high availability events in an Oracle clustered environment, AKA, a RAC. I was curious as to how this could be implemented using your own code behind the…
Can’t add a service already registered with the listener
This morning, while testing on a two node 10.2.0.3 EE SLES 10 cluster, I found that using srvctl to remove a service from the clusterware does not necessarily stop the service and de-register it from the listener. I’m not sure…
At least one case where rebuilding indexes helps…
We found that after deleting 250 million “lower” rows from a table with a monotonically increasing sequence, our MIN range scans were incredibly slow. Richard Foote describes this much more clearly than I can this morning, so all this post…
Custom repeat_interval for dbms_scheduler
Nothing fancy today, just a simple test case regarding the subject line 🙂 create or replace function mytime return date as begin return sysdate + 5 / 1440; end; / create table foo (c date); create or replace procedure test_interval…
Poor man’s parallel DML
We were recently required to get rid of 250 million rows in a partitioned audit table. While the table is partitioned, we have global indexes that would be rendered unusable after dropping or truncating a partition. The UPDATE GLOBAL INDEXES…
How does connection re-direction occur in RAC? (Part 1)
I have always been curious as to how a connection request is redirected in a RAC. In other words, let’s assume we have a two node cluster with a given service that only runs on one of the nodes. In…
Port checker
This was useful when we testing a migration between database servers. import socket import sys for i in range(1,5): try: HOST = “foo” + str(i) PORT = 2484 print HOST + ” ” + str(PORT) sock = socket.socket() sock.connect((HOST, int(PORT)))…
Are you actually *using* Oracle partitioning?
Partitioning is sometimes sold as the panacea to all performance problems. Anyone who has added local indexes on a column other than the one on which the table was partitioned quickly finds out this isn’t always the case. Keep in…