Datatombraider's Blog

2010/11/07

Negative DBID?

Filed under: Oracle — datatombraider @ 13:07

recently i’ve noticed that the RFS process of one of my databases logs a negative DBID:

RFS[1]: Opened log for thread 2 sequence 16 dbid -95040917 branch 733392363

RFS[7]: Selected log 11 for thread 2 sequence 17 dbid -95040917 branch 733392363

Strange but if you’re familiar with coding you probably know the problem called integer overflow (something you don’t want to see in your database software).

It seems Oracle stores the DBID in a 32 bit unsigned integer, so my DB ID can be calculated by adding the reported DBID to 232:

232 = 4.294.967.296 + (-95.040.917) = 4.199.926.379

which happens to be my correct DBID:

SQL> select dbid from v$database;
DBID
———-
4199926379

Storing a 16-digit DBID in a 10-digit number seems to be a bad idea, hopefully it happens only for displaying or logging purposes 🙂

Advertisements

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.