TROUG - Oracle EBS Day 2013


About "Expert Oracle Database Architecture" Book


I'm reading the "Expert Oracle Database Architecture" book of Thomas Kyte, which is a must read for everyone who is serious on being an Oracle DBA.

Jonathan Lewis already said: "Frankly, if every DBA and developer in the world were made to work carefully through Tom Kyte’s book, I’d probably have to start offering consultancy services to SQL Server users because the number of clients needing Oracle consultancy would drop dramatically." in the foreword of the book. Still, i wanted to share some paragraphs from the "Data Files" part of the book. Following are taken out of only three pages of the book. I'm sharing this to show how the book is full of information and encourage you to immediately buy one and read.

Segments
==============================
You will find many CREATE statements that create multisegment objects. The confusion lies in the fact that a single CREATE statement may ultimately create objects that consist of zero, one, or more segments! For example, CREATE TABLE T ( x int primary key, y clob ) will create four segments: one for the TABLE T, one for the index that will be created in support of the primary key, and two for the CLOB (one segment for the CLOB is the LOB index and the other segment is the LOB data itself). On the other hand, CREATE TABLE T ( x int, y date ) cluster MY_CLUSTER will create zero segments (the cluster is the segment in this case).

Extents
==============================
Extents vary in size from one Oracle data block to 2GB. 11g Release 2 has introduced the concept of a “deferred” segment—a segment that will not immediately allocate an extent-, so in that release and going forward, a segment might defer allocating its initial extent until data is inserted into it.

Blocks
==============================
Here’s a little-known fact: the default block size for a database does not have to be a power of two. Powers of two are just a commonly used convention. You can, in fact, create a database with a 5KB, 7KB, or nKB block size, where n is between 2KB and 32KB.

Most blocks, regardless of their size, have the same general format, which looks something like:

 ------------------
|Header           | -> type of block (table block, index block, and so on), 
|                  |   transaction information when relevant regarding active and 
|                 |   past transactions on the block; and the address (location) 
|                 |   of the block on the disk.
|------------------|   The next two block components are found on the HEAP-                 |                  |   organized tables.      
|Table Directory   | -> The table directory, if present, contains information  
|                 |   about the tables that store rows in this block
|------------------|
|Row Directory     | -> The row directory contains information describing the 
|                 |   rows that are to be found on the block.
|------------------|
|                  | -> The remaining 2 pieces of the block are straightforward
|Free Space        |   there may be free space on a block, and
|                  |   then there will generally be used space that is 
|                  |   currently storing data.
|------------------|
|                  |
|Data              |
|                  |
|------------------|
|Tail              |
 ------------------


Exceptions to this format include LOB segment blocks and hybrid columnar compressed blocks in Exadata storage, for example, but the vast majority of blocks in your database will resemble the format in Figure

Delete Force Noprompt Backuppiece


In some cases you may not be able to delete the obsolete RMAN backup pieces that are visible with “report obsolete” command. In my case, after a switchover, i was getting the following error when my daily backup scripts tries to delete obsolete backups after the crosscheck:

RMAN-06216: WARNING: db_unique_name mismatch - 334 objects could not be updated
RMAN-06218: List of objects requiring same operation on database with db_unique_name XXX

And when i try to delete these object by connecting the standby (old primary) database as RMAN target, i get this error:

RMAN-06207: WARNING: 334 objects could not be deleted for DISK channel(s) due
RMAN-06208:          to mismatched status.  Use CROSSCHECK command to fix status
RMAN-06210: List of Mismatched objects
RMAN-06211: ==========================
....

Even i re-run the crosscheck, i wasn’t able to delete the obsolete backup pieces having the same error. So, i used “delete noprompt force backuppiece” command to get rid of these obsolete backup information. Below is the example of RMAN run block: (Tape channel is configured for TSM)


run
{
allocate channel c1 device type disk;
allocate channel c2 type 'sbt_tape' parms 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)' connect='user/passwd@bckpsrv';
delete force noprompt backuppiece 'pamahdkt_1_1';
delete force noprompt backuppiece 'p9mahdkt_1_1';
delete force noprompt backuppiece 'p2mahdkr_1_1';
...
release channel c11;
}

Moving OCR & Voting Files In 11gR1 (Using Raw Devices)


-- Query current status of OCR and Voting Files:

oracle@server1:/> cat /etc/oracle/ocr.loc 
ocrconfig_loc=/dev/ocr1_test11g
ocrmirrorconfig_loc=/dev/ocr2_test11g
local_only=FALSE

oracle@server1:/> crsctl query css votedisk
 0.     0    /dev/voting1_test11g
 1.     0    /dev/voting2_test11g
 2.     0    /dev/voting3_test11g
Located 3 voting disk(s).


-- Check OCR integrity with either ocrcheck or “cluvfy comp ocr” command:

oracle@server1:/> ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          2
         Total space (kbytes)     :    1048300
         Used space (kbytes)      :       4656
         Available space (kbytes) :    1043644
         ID                       :  182479978
         Device/File Name         : /dev/ocr1_test11g
                                    Device/File integrity check succeeded
         Device/File Name         : /dev/ocr2_test11g
                                    Device/File integrity check succeeded
         Cluster registry integrity check succeeded
         Logical corruption check bypassed due to non-privileged user

oracle@server1:/> cluvfy comp ocr -n db1,db2,db3 -verbose
Verifying OCR integrity 
Checking OCR integrity...
Checking the absence of a non-clustered configuration...
All nodes free of non-clustered, local-only configurations.
Uniqueness check for OCR device passed.
Checking the version of OCR...
OCR of correct Version "2" exists.
Checking data integrity of OCR...
Data integrity check for OCR passed.
OCR integrity check passed.
Verification of OCR integrity was successful. 

Basic Oracle LogMiner Steps

This is a quick note about using LogMiner for mining archived redo logs on the database itself. (Source and mining databases are same)
- Specify a dictionary file with the following procedure:

EXECUTE DBMS_LOGMNR_D.BUILD('dictionary.ora','/oracle/acs/logmnr', OPTIONS => DBMS_LOGMNR_D.STORE_IN_FLAT_FILE);

- Determine the minimum and maximum archived log sequences that is in the mining scope.


- Specify one archived log file with DBMS_LOGMNR.ADD_LOGFILE procedure, dbms_logmnr.NEW option. Then we can add other archived log sequences with dbms_logmnr.ADDFILE option:

EXECUTE DBMS_LOGMNR.ADD_LOGFILE( LOGFILENAME => '+ARCH1/xx/archivelog/2013_01_28/thread_2_seq_31844.932.805914077', OPTIONS => dbms_logmnr.NEW); 
EXECUTE DBMS_LOGMNR.ADD_LOGFILE( LOGFILENAME => '+ARCH1/xxx/archivelog/2013_01_28/thread_2_seq_31844.932.805914077', OPTIONS => dbms_logmnr.ADDFILE); 
EXECUTE DBMS_LOGMNR.ADD_LOGFILE( LOGFILENAME => '+ARCH1/xxx/archivelog/2013_01_28/thread_2_seq_31845.1334.805914145', OPTIONS => dbms_logmnr.ADDFILE); 
EXECUTE DBMS_LOGMNR.ADD_LOGFILE( LOGFILENAME => '+ARCH1/xxx/archivelog/2013_01_28/thread_2_seq_31846.1062.805914271', OPTIONS => dbms_logmnr.ADDFILE);


My Presentations at DOAG and UKOUG 2012 Conferences

At the end of this year, i'll speak at the two biggest Oracle events in Europe, DOAG 2012 and UKOUG 2012 conferences. I'm very excited to attend and experience these organizations, also listen to and meet with many Oracle fellows.

I'll speak about advanced Data Guard topics on my both presentations. Here are the highlights of my presentation:
  • Configuration Considerations
  • Redo Apply and Redo Transport Performance Tuning
  • Role Transition Best Practices
  • Corruption Detection with Data Guard
  • RMAN and EM Cloud Control 12c Integration
  • Integration with Oracle Applications
I must also mention that i'm into a book project for several months about Oracle Data Guard with my friend Nassyam Basha and these presentations will cover the most excited know hows of my study on the book. If you're reading this post and will attend to one of these events, i'll be pleased to see you in my presentations and have a chat :)

And last but not least, at 11 October, TROUG's annual organization TROUG Day 2012 will take place with the keynote of Syed Jaffar Hussain. I'll take part in the ACE Panel at the end of the organization. I'm sure this will be again a great organization and every attendee will find many useful information on the presentations and expand their network.


TROUG Day 2012



Türk Oracle Kullanıcı Grubu TROUG yılın en büyük etkinliğini 11 Ekim'de Bahçeşehir Üniversitesi'nde düzenliyor. Etkinlikte DBA ve Developer odaklı sunumlar farklı salonlarda gerçekleştirilecek. Açılış sunumunda  ACE Director, OCM ve DBA of the Year 2011 ödülünün sahibi Syed JaffarHussain "Oracle High Availability 11g New Features" üzerine konuşacak. Sonrasında birçok değerli Oracle uzmanının değerli sunumlarını dinleme fırsatımız olacak. Oracle kullanıcılarının kaçırmaması gereken bu etkinliğe katılım ücretsiz. Kayıt yaptırmayı unutmatın:  http://www.troug.org/?p=278

Bu etkinlik TROUG'un bu yıl içerisinde düzenlediği 7. etkinlik olacak. Özel İlgi Grubu etkinlikleri ile bu sene daha da büyüyen ve gelişen TROUG'a veritabanı, uygulama, orta katman tüm Türk Oracle uzmanlarının destek göstermesi ve sahiplenmesi gerektiğini düşünüyorum. Bu gönüllü oluşumun çalışmalarında yer almak, birlikte daha iyi neler yapabileceğimizi konuşmak için 11 ekim'de görüşmek üzere...


TROUG Exadata SIG Meeting 2012


TROUG Özel İlgi Grubu (SIG) etkinliklerine hız kesmeden devam ediyor. Nisan ayında gerçekleşen "TROUG Exadata SIG Meeting 2012" de Türkiye'deki Exadata kullanıcıları bir araya geldi ve birbirinden faydalı sunumlar yapıldı. Etkinliğin sonunda ise "DWH Global Leaders" program yöneticisi Reiner Zimmermann'ın katıldığı bir sohbet toplantısı gerçekleştirildi. 

Book Review: Oracle Database 11gR2 Performance Tuning Cookbook

I started reading this book last week, and I'm half way through right now. But i wanted to write this review because what i found in the book is fairly enough for this.
As the book's tittle expresses it involves examples, recipes, different test cases for almost all topics in the chapters. This is great, because just definitions and descriptions are not enough to fully understand the concept (especially) in a performance tuning book.
Book covers the most important performance tuning topics for an Oracle database. You'll find it useful even you're a developer or a dba. It describes the tuning methods with different aspects. Performance tuning is not like many other Oracle database topics becuse there is not a general "true" many times. A tuning method may halve the job duration in a database, where it may double the time for another database. This is the most important fact that you need to know when searching for tuning recommendations. The data type, database structure is very important in evaluating a tuning method. This book is explaining the tuning methods with almost every aspects. In which conditions we should use it or not and why. Here i want to share some highlighted parts of the topic "Index Clusters" which i think will help you see what i mean.

My Presentation at OUG Ireland Conference 2012





I'll present at OUG Ireland Conference, Wednesday 21st March in Dublin. My presentation will be on Oracle Data Guard as in the Open World last year. I'm looking forward to present, listen to and meet with new people. There are a wide range of topics from Oracle professionals in the agenda. There will be 6 streams and 35 sessions in total. Well known Oracle ACEs/ACE Directors and Oracle employees will be on the stage. Some of the presentations are:

Roel Hartman, ACE Director - LOGICA - 5 Cool things you can do with HTML5
Mark Rittman, ACE Director - Rittman Mead - Inside Oracle Data Integrator 11g
Simon Haslam, ACE Director - Veriton Limited - WebLogic for DBAs
Frits Hoogland, ACE Director - VX Company - About multiblock reads
Lonneke Dikmans, ACE Director - Vennster - How do we integrate our packaged app?
Grant Ronald, ACE - Oracle - What is The Future of Forms?
Marcin Przepiorowski, ACE - Amazon - Performance troubleshooting using Active Session History
David Hall, ACE - Peak Indicators Ltd - OBIEE in Education in Action
Brendan Tierney, ACE - Dublin Institute of Technology ; Co-Presenter Antony Heljula – Peak Indicators Ltd - Getting Started with Oracle Data Miner

Event page is here and the full agenda is here.