Thursday, June 26, 2014

Sun Coast Oracle User Group June 24th Sessions Materials

Thank you to all those who stayed back quite late that night for my two presentations. I hope you found it informative and useful.

As promised, you can download the session materials here.

As always, I will be honored to hear from you.

Wednesday, June 11, 2014

Hadoop for Oracle Professionals Article on Oracle Scene

Oracle Scene (the publication of United Kingdom Oracle Users Group) has published my article "Hadoop for Oracle Professionals", where I have attempted, like many others, to demystify the terms such as Hadoop, Map/Reduce and Flume. If you were interested in Big Data and what all comes with understanding it, you might find it useful.

A PDF version of the article can be downloaded here

Tuesday, June 03, 2014

NYOUG Summer 2014 Conference: Understanding Oracle Locking Internals

Thank you for all those who attended my session: Understanding Oracle Locking Internals today at the Summer 2014 conference of New York Oracle User Group in Manhattan. You can download the presentation and the scripts I used in demos here.


As always, your feedback will be highly appreciated.

Friday, April 25, 2014

Creating Controlfile From Scratch when No Backup is Available

You have lost the controlfile, the catalog and the backup to the controlfile too; so restoring the controlfile from a previous backup is not an option. How can you recover the database? By creating the controlfile from scratch. Interested in learning how? Read on.

Thursday, April 24, 2014

How to Get the DBID when Instance in in NOMOUNT State

You lost your controlfile and the catalog. To restore the controlfile, you must know the DBID. Did you follow the advise to write down the DBID in a safe place? You didn't, did you? Well, what do you do next? Don't worry; you can still get the DBID from the header of the data files. Read on to learn how.

Tuesday, April 22, 2014

Restoring Controlfile When AUTOBACKUP Fail

Allow me to present the snapshot of a day from the life of John--the DBA at Acme Bank. On this particular day a database John manages crashed entirely and had to be restored from the backup. He takes regular (backupset) RMAN backups to tape. Since everything--including the controlfile--had crashed, John had to first restore the controlfile and then restore the database. The controlfile is always backed up with the backup database command. John was sure of that. However, restore controlfile from autobackup gave the error:
RMAN-06172: no AUTOBACKUP found or specified handle is not a valid copy or piece
Without the controlfile, the recovery was stuck, even though all the valid pieces were there. It was a rather alarming situation. Others would have panicked; but not John. As always, he managed to resolve the situation by completing recovery. Interested to learn how? Read on.

Thursday, April 17, 2014

Boston Oracle User Group Session: Oracle 12c Features You Should Know

Thank you for all those who attended the session, and braved it up to 10 PM. Much much appreciated.

Download the slides here, and scripts I used for the demos here.

As always, your feedback will be highly appreciated.

Friday, April 11, 2014

Collaborate14 Session: Cache Buffer Chains Demystified

Thank you all for coming to my session Cache Buffer Chains Demystified at Collaborate 14, especially for sticking around for a geeky topic like this to the very end. Much appreciated.

I was not aware that I would not be allowed to use my laptop; so I couldn't show all the demos I so carefully prepared. Please download the scripts and execute them yourself.

As promised, here are the materials I used in the session

The Slide Deck
The Whitepaper
The Scripts (this is a zip file; so right click and Save As ...)

Needless to say, your comments and feedback will be highly appreciated. And, yes, please don't forget to do the evaluation on the Collab Mobile App.

Thursday, April 10, 2014

Collaborate14 Session: The Art and Science of Tracing

Thank you all for coming to my session "The Art and Science of Tracing" at Collaborate 2014. As I mentioned, I prepared a full session even though this is supposed to be a quick tip. I hope you enjoyed it and get the value from the full presentation deck.

You can download

The slide deck
The scripts (this is a zip file. Right click and then Save As ...)

As always, your feedback will be immensely appreciated.

Wednesday, April 09, 2014

Collab14 Session Should You Drop Indexes in Exadata?

Thank you all those who attended my 8:30 AM session at Collaborate 14 "Should You Drop Indexes in Exadata" (Session 316). I will appreciate receiving your feedback and giving it on the IOUG website and mobile app.

Here are material I presented. I have the slides here; but I suggest you download the paper as it is more standalone in nature.


Sunday, November 10, 2013

Sangam 13 Presentations and Scripts

Thank you all those who attended my sessions at Sangam13 -- the annual conference of All India Oracle User Group in Hyderabad. I saw many who attended all seven sessions of mine, including the super hot (literally) one for Big Data in a small room. Audience like this makes the day for any speaker; I am no exception. Your support was very much appreciated.

Here are the presentations and all the scripts for download. All presentations are in PDF format and all scripts are in a zipped file.

  1. Multitenant Databases Presentation | Scripts
  2. Partitioning Tips and Tricks Presentation | Scripts
  3. Statistics Gathering Tips and Tricks Presentation | Scripts
  4. Beginning Performance Tuning Presentations | Scripts
  5. Big Data Demystified Presentation
  6. Oracle 12c New Features for Developers Presentations | Scripts
  7. PL/SQL in Oracle 12c Presentation | Scripts

As always, I will highly appreciate of you could please send me any feedback on the sessions you have attended.

Monday, September 30, 2013

A System for Oracle Users and Privileges with Automatic Expiry Dates

Tired of tracking down all the users in the database to deactivate them when they cease to exist, or change roles, or fulfill their temporary need to the database? Or, tracking down privileges you granted to existing users at the end of their requested period? The solution is to think out of the box - developing a system that allows you to create a database user account with an expiration date. This fire-and-forget method allows you to create users with the assurance that they will be expired (locked or dropped) at the expiration date automatically, without your intervention. Interested? Read on how I developed such a system--along with source code for you to try.

Friday, September 27, 2013

My #OOW13 Session: Are Indexes Unnecessary in Exadata

Thanks to all those who came to my session "Are Indexes Unnecessary in Exadata" at Oracle Open World 2013. Considering it was late afternoon of the last day of the conference, especially after the appreciation concert, it was a pleasure to see a packed room. Judging by the interaction I had with the attendees afterwards, it was clear that the crowd was pretty serious about this topic. Thanks you very much. There is nothing more a speaker can ask for, at #oow13 or anywhere.

Here is the presentation material, if you want, in PDF format. Please feel to download and as always, your comments will be highly valuable. I will make it a blog post later.

Monday, September 16, 2013

Last Successful Login Time in SQL*Plus in Oracle 12c

If you have been working with Oracle 12c, you may have missed a little something that appeared without mush fanfare but has some powerful implications. Let's see it with a small example--connecting with SQL*Plus.

C:\> sqlplus arup/arup

SQL*Plus: Release Production on Mon Aug 19 14:17:45 2013

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Last Successful login time: Mon Aug 19 2013 14:13:33 -04:00

Connected to:
Oracle Database 12c Enterprise Edition Release - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options


Did you note the line in red above?

Last Successful login time: Mon Aug 19 2013 14:13:33 -04:00

That line shows you when you last logged in successfully. The purpose of that little output is to alert you about the last time you (the user ARUP) logged in, very similar to the message you get after logging in to a unix session. If you didn't login earlier, this message will alert you for possible compromise of your account.


What if you don't want to show this timestamp?

C:\> sqlplus -nologintime arup/arup

SQL*Plus: Release Production on Mon Aug 19 14:23:25 2013

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

The login time has been suppressed, going back to the old behavior.

Scanned Copy of Oracle Magazine Article on Oracle 12c Multitenant

My article on Oracle Database 12c Multitenant feature (aka Pluggable Database) has been finally published, after being in the cold storage for about 6 months. You can read it on Oracle Magazine online, which is optimized for a web-presentation.

Here is a scanned copy of the article from the actual magazine. It may be easier to read. Hope you like it.

Tuesday, September 10, 2013

New York Oracle User Group Fall Conference Materials

Thank you all who attended my sessions at NYOUG Fall Conference this morning. I appreciate spending you most precious commodity - your time - with me. I sincerely hope you found both the presentations enlightening as well as entertaining.

Please see the details of the sessions below along with the download links.

Keynote: Oracle 12c Gee Whiz Features

Yet another Oracle version is out and so are about 1500 new features in a variety of areas. Some are well marketed (e.g. pluggable database or the multitenant option) and some shine by their sheer usefulness. And there are some that do not get a whole lot of coverage but are are hidden gems. In this session you learned 12 broad areas of Oracle Database 12c I feel are worth learning about to make your job as a DBA or developer better, easier, smoother and, in some cases, even make it possible what was hitherto impossible or impractical.

Download slides here and scripts here.

Big Data for Oracle DBAs

Have you ever considered the impact of Big Data on your career as database professionals? Or do you feel frustrated by the lack of a coherent set of explanations of various concepts like Hadoop, Hive, HDFS and Pig Latin - the essential vocabulary of  Big Data? If you did, then session was for you. In this, I explained the various concepts of Big Data - Hadoop, Hive, HDFS, etc. and explained how they relate to and contrast with modern relational database concepts.

Download the slides here.

Tuesday, August 13, 2013

OSWOUG Conference

Thank you very much who all attended my day long seminars in Portland, OR and Seattle, WA for Oregon and Southern Washington Oracle User Groups (OSWOUG). Listening to one speaker for 5 hours definitely was not easy. I understand that and appreciate your gesture.

Attached please find the various slides and scripts I used in the demo (Remember: this is a 2 MB file).

In addition, please read my following blog posts I referenced during my talks.

Hope you found the sessions worthwhile, educational and entertaining.

Thursday, June 13, 2013

Primary Keys Guarantee Uniqueness? Think Again.

When you create a table with a primary key or a unique constraint, Oracle automatically creates a unique index, to ensure that the column does not contain a duplicate value on that column; or so you have been told. It must be true because that is the fundamental tenet of an Oracle database, or for that matter, any database.

Well, the other day I was checking a table. There is a primary key on the column PriKey. Here are the rows:

Select PriKey from TableName;


I got two rows with the same value. The table does have a primary key on this column and it is enforced. I can test it by inserting another record with the same value - “1”:

SQL> insert into TableName values (1,…)

It errors with ORA-00001: unique constraint violated error. The question is: why there are two rows with duplicate values in a column that has an enforced primary key, and it refuses to accept the very value that is already violated the primary key? It could be a great interview question, test your mettle; or just entertaining. Read on for the answer.

Friday, June 07, 2013

Demystifying Big Data for Oracle Professionals

Ever wonder about Big Data and what exactly it means, especially if you are already an Oracle Database professional? Or, do you get lost in the jargon warfare that spews out terms like Hadoop, Map/Reduce and HDFS? In this post I will attempt to explain these terms from the perspective of a traditional database practitioner but getting wet on the Big Data issues by being thrown in the water. I was inspired to write this from the recent incident involving NSA scooping up Verizon call data invading privacy of the citizens.

Friday, April 19, 2013

Streams Pool is only for Streams? Think Again!

If you don’t use the automatic SGA (i.e. set the sga_target=0) - something I frequently do - and don’t use Streams, you probably have set the parameter streams_pool_size to 0 or not set it at all, since you reckon that the pool is used for Streams alone and therefore would be irrelevant in your environment wasting memory.

But did you know that the Streams Pool is not just for Streams and it is used for other tools some of which are frequently used in almost any database environment? Take for instance, Data Pump. It uses Streams Pool, contrary to conventional wisdom. If Streams Pool is not defined, it is dynamically allocated by stealing that much memory from the buffer cache. And the size is not reset back to zero after the demand for the pool is over. You should be aware of this lesser known fact as it reduces the buffer cache you had allocated to the instance earlier.