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.
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 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.
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.
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
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);
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.
- 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
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 Ö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.
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.
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.