New book on 11g ASM published

November 14, 2007

There are a couple of books on the market already which cover 11g features.
As always many of them do not really cover a lot of the new features because everything is so new and the books were written under preasure. So the have the “COVERS 11g” on the cover but inside it is mostly 10g stuff.

Here is one which is a MUST READ for everybody who is interested how Automatic Storage Management (ASM) really works:
Oracle Automatic Storage Management asm_book.jpg 
What makes this book especially interesting is the fact that the authors are the Oracle developers of ASM themselves, Nitin Vengurlekar and  Richard Long, and Murali Vallath., the president of the RAC SIG,  plus the architect of the technology Bill Bridge who wrote the foreword for the book .

This book keeps its promises and covers the 10g and 11g features of ASM in detail.
And it is an easy reader with a sence of humor:

“The ACD is a log that allows ASM to make atomic changes to multiple data structures. It is similar to the redo logs used by the Oracle RDBMS. Each instance gests a 42 MB chunk of the ACD. (As Douglas Adams explained in Hitchiker’s Guide to the Galary, “42″ is the answer to the ultimate question of life, the Univese and Everything.) …

 This is the way of reading I like!!

Thank you guys, I love it


New RMAN book for 11g

September 26, 2007

There is a new book on RMAN by
Sam R. Alapati, Darl Kuhn, Arup Nanda.

It is titeled RMAN RECIPES and is published by APRESS.

rman_recipes.jpg These authors have already proven their expert competency by publishing a lot of highly interesting white papers in OTN and other books in the past. (Just search for their names in OTN!).

Here are the details of the book:

  • ISBN10: 1-59059-851-2
  • ISBN13: 978-1-59059-851-1
  • 670 pp.
  • Published on Aug 2007
  • eBook Price: $30.00
  • Price: $59.99
  • Here are the contents as announced by APRESS:

  • Reliably back up and recover your database using Oracles Recovery Manager.
  • Utilize New Oracle Database 11g features such as the Data Recovery Advisor.
  • Let Oracle Database manage your backup files via the Flash Recovery Area.
  • Automate backup and recovery tasks by writing scripts.
  • Troubleshoot RMAN problems and optimize RMAN performance.
  • Interface with a Media Management Layer to manage your backup tape library.
  • Recover from the loss of a control file, loss of an online redo log, and other (hopefully!) unusual situations.Looks interesting, I will order it definitively!

  • Brand new book on RMAN Backup & Recovery out!

    February 11, 2007

    Finally it has been published:
    the ultimat RMAN book for Oracle 10g
    by M. Hart & R. Freeman!

    I have been waiting for the 10g version of the book since quite a while already.
    It was one of the very good books for Oracle 9i and I can tell you that the new one is as good. http://www.mhprofessional.com/product.php?cat=112&isbn=0072263172

    ISBN: 0072263172 / 9780072263176

    What I like most about the book:
    - It contains a number of workshop for advanced recovery scenarios and
    points out all these RMAN functionalities which are much too less used and know like BLOCK RECOVERY, PROACTIVE CHECKING FOR CORRUPT BLOCKS and so on.
    - it has good index
    - it contains info about memory utilization of RMAN for tuning

    The book also covers new 10g features, such as Flashback, Transportable Tablespaces Cross Platform …

    It is a must for everybody who needs to know how RMAN works and how to utilize it to the max.

    Table of contents
    Part I: Getting Started with RMAN in Oracle Database 10g

    Chapter 1: Oracle Database 10g Backup and Recovery Architecture Tour

    Chapter 2: Introduction to the RMAN Architecture

    Part II: Setup Principles and Practices

    Chapter 3: RMAN Setup and Configuration

    Chapter 4: Media Management Considerations Chapter

    5: Oracle Secure Backup

    Chapter 6: Enhancing RMAN with VERITAS NetBackup for Oracle Chapter

    7: Configuring EMC NetWorker Module for Oracle Chapter

    8: RMAN and Tivoli Storage Manager

    Part III: Using RMAN Effectively Chapter

    9: RMAN Backups Chapter

    10: RMAN Restore and Recovery Chapter

    11: Using Oracle Enterprise Manager for Backup and Recovery Chapter

    12: RMAN Advanced Recovery Topics Chapter

    13: Surviving User Errors: Flashback Technologies Chapter

    14: Maintaining RMAN Chapter

    15: Monitoring and Reporting on RMAN Chapter

    16: Performance Tuning RMAN Backup and Recovery Operations

    Part IV: RMAN in the Oracle Ecosystem

    Chapter 17: Duplication: Cloning the Target Database

    Chapter 18: RMAN and Data Guard

    Chapter 19: RMAN and Real Application Clusters

    Chapter 20: RMAN in Sync and Split Technology

    Chapter 21: RMAN in the Workplace: Case Studies

    Part V: Appendixes

    Appendix A: RMAN Syntax Reference Guide

    Appendix B: Exploring the Recovery Catalog

    Appendix C: Setting Up an RMAN Test Environment

    INDEX


    Oracle Database 10g Real Application Clusters Handbook

    February 10, 2007

    I have just received the recent new book (FEB. 2007!)
    by K. Gopalakrishnan
    Oracle Database 10g Real Application Clusters Handbook
     rac_handbook.jpg

    Gopalakrishnan is a Senior Principal Consultant in Oracle Corporation and was avarded “Oracle Author of the year 2005” by Oracle Magazine in for his 2005 published book “Oracle Wait Interface”, which was one of the few books of the last year about Oracle which were really worth their money. Pls see my post about this book also.

    After having a first glance at the new book I am very enthusiastic about it, because it contains large chapters about cache fusion (36 pages!) and the Global Resource Directory GRD (>20 pages) explained from scratch , amoung other intereseting chapters about troubleshooting RAC, RAC deployment…
    Again we find the high quality we already have enjoyed in Gopalakrishnan´s Wait Interface book, and I bet it will be a success story as well.

    Table of contents

    Part I: High Availability Architecture and Clusters
    Chapter 1: Introduction to High Availability and Scalability
    Chapter 2: Clustering Basics and History
    Chapter 3: RAC Architecture
    Part II: Installation, Configuration, and Storage
    Chapter 4: RAC Preinstallation
    Chapter 5: RAC Installation
    Chapter 6: Automatic Storage Management
    Part III: RAC Administration and Management
    Chapter 7: RAC Basic Administration
    Chapter 8: RAC Advanced Administration
    Chapter 9: RAC Backup and Recovery
    Chapter 10: RAC Performance Management
    Part IV: Advanced Concepts in RAC
    Chapter 11: Global Resource Directory
    Chapter 12: A Closer Look at Cache Fusion
    Chapter 13: Workload and Connection Management
    Chapter 14: RAC Troubleshooting
    Part V: Deploying RAC
    Chapter 15: RAC Extensions
    Chapter 16: Developing Applications for RAC
    APPENDIX A: RAC REFERENCE
    APPENDIX B: ADDING AND REMOVING CLUSTER NODES
    APPENDIX C: REFERENCES
    INDEX

    ISBN 007146509X / 9780071465090

    Paperback, 421 pages


    Active Session History in Oracle 10gR1+2

    May 3, 2006

    This article has been published in the Swiss Oracle User Group’s Newsletter 4/2006 (October 2006).

    This article descibes the new on Oracle Database 10g Active Session History, a kind of data warehouse for session statistics.

    A lot of the information in this post I have taken from the book
    wait_interface.jpg  Oracle Wait Interface by the
    authors R.Shee, K.Deshpande and K.Gopalakrishnan
    which I can strongly recommed to everybody
    who has to deal with performance tuning for ORACLE of which release ever.
    It covers the Oracle versions until 10gR1 and tells us everything we have ever wanted to know about latches, enqueues and all the wait events.

    Starting with the version 10gR1 Oracle stores information about session activity on disk in the Automatic Workload Repository (AWR) which sits, amoung other things, in the new mandatory SYSAUX tablespace.
    This information comes from statistics about active sessions which the Oracle Kernel collects automatically.
    The active session history is enabled by default( influenced by the hidden parameter _ASH_ENABLE=true).

    The main components of the ASH are
    - two new background procresses, MMON and MMNL,
    - a rolling buffer, which sits in the SGA fixed area and holds the historical statistical information of active sessions

    This buffer has a minimum size of 1Mb in ORACLE 10gR1 and can grow to a maximum of either 30Mb, or 5% of SHARED_POOL_SIZE, or Numer of CPUs * 2Mb (whichever is smaller!).

    This formula has been changed in 10gR2 to not linearly scale with
    the number of CPUs.
    All we get to know about the sizing is that “…the ASH will
    auto-configure itself to try and hold at least one-hour worth of
    instance activity without wasting too much value SGA space and will
    never be bigger than 2% of SGA_TARGET or 5% of SHARED_POOL (if AutoSGA
    is not used)“.

    The contents of the rolling buffer get written down to disk on a regular basis by MMNL
    ( with every snapshot created and when the buffer gets full).
    It gets flushed to the table WRH$_ACTIVE_SESSION_HISTORY in the AWR which is implemented like a facts table in a DWH with its columns as dimensions.
    This is enbled with the hidden parameter _ASH_DISK_WRITE_ENABLE=true.

    The information in the ASH is used, among others, by automatic tuning utilities like teh SQLTUNING Advisor (dbms_sqltune) for the Automatic Tuning Optimizer (ATO). This one will look for historical data about sql-statements and their exetutions in the ASH (see buttom) as well, anong other activities it can perform in order top find a potentially better execution plan.

    There are a lot of DBA_ views we can use to read the historical information from the AWR:
    SELECT table_name
    FROM dictionary
    WHERE table_name like ‘DBA/_HIST/_%’ ESCAPE ‘/’
    ORDER BY table_name;


    TABLE_NAME
    —————————–
    DBA_HIST_ACTIVE_SESS_HISTORY
    DBA_HIST_BASELINE
    DBA_HIST_BG_EVENT_SUMMARY

    DBA_HIST_BUFFERED_QUEUES

    DBA_HIST_BUFFERED_SUBSCRIBERS

    DBA_HIST_BUFFER_POOL_STAT

    DBA_HIST_COMP_IOSTAT

    DBA_HIST_CR_BLOCK_SERVER

    DBA_HIST_CURRENT_BLOCK_SERVER

    DBA_HIST_DATABASE_INSTANCE

    DBA_HIST_DATAFILE

    DBA_HIST_DB_CACHE_ADVICE

    DBA_HIST_DLM_MISC

    DBA_HIST_ENQUEUE_STAT

    DBA_HIST_EVENT_NAME

    DBA_HIST_FILEMETRIC_HISTORY

    DBA_HIST_FILESTATXS

    DBA_HIST_INSTANCE_RECOVERY

    DBA_HIST_INST_CACHE_TRANSFER

    DBA_HIST_JAVA_POOL_ADVICE

    DBA_HIST_LATCH

    DBA_HIST_LATCH_CHILDREN

    DBA_HIST_LATCH_MISSES_SUMMARY

    DBA_HIST_LATCH_NAME

    DBA_HIST_LATCH_PARENT

    DBA_HIST_LIBRARYCACHE

    DBA_HIST_LOG

    DBA_HIST_METRIC_NAME

    DBA_HIST_MTTR_TARGET_ADVICE

    DBA_HIST_OPTIMIZER_ENV

    DBA_HIST_OSSTAT

    DBA_HIST_OSSTAT_NAME

    DBA_HIST_PARAMETER

    DBA_HIST_PARAMETER_NAME

    DBA_HIST_PGASTAT

    DBA_HIST_PGA_TARGET_ADVICE

    DBA_HIST_PROCESS_MEM_SUMMARY

    DBA_HIST_RESOURCE_LIMIT

    DBA_HIST_ROWCACHE_SUMMARY

    DBA_HIST_RULE_SET

    DBA_HIST_SEG_STAT

    DBA_HIST_SEG_STAT_OBJ

    DBA_HIST_SERVICE_NAME

    DBA_HIST_SERVICE_STAT

    DBA_HIST_SERVICE_WAIT_CLASS

    DBA_HIST_SESSMETRIC_HISTORY

    DBA_HIST_SESS_TIME_STATS

    DBA_HIST_SGA

    DBA_HIST_SGASTAT

    DBA_HIST_SGA_TARGET_ADVICE

    DBA_HIST_SHARED_POOL_ADVICE

    DBA_HIST_SNAPSHOT

    DBA_HIST_SNAP_ERROR

    DBA_HIST_SQLBIND

    DBA_HIST_SQLSTAT

    DBA_HIST_SQLTEXT

    DBA_HIST_SQL_BIND_METADATA

    DBA_HIST_SQL_PLAN

    DBA_HIST_SQL_SUMMARY

    DBA_HIST_SQL_WORKAREA_HSTGRM

    DBA_HIST_STAT_NAME

    DBA_HIST_STREAMS_APPLY_SUM

    DBA_HIST_STREAMS_CAPTURE

    DBA_HIST_STREAMS_POOL_ADVICE

    DBA_HIST_SYSMETRIC_HISTORY

    DBA_HIST_SYSMETRIC_SUMMARY

    DBA_HIST_SYSSTAT

    DBA_HIST_SYSTEM_EVENT

    DBA_HIST_SYS_TIME_MODEL

    DBA_HIST_TABLESPACE_STAT

    DBA_HIST_TBSPC_SPACE_USAGE

    DBA_HIST_TEMPFILE

    DBA_HIST_TEMPSTATXS

    DBA_HIST_THREAD

    DBA_HIST_UNDOSTAT

    DBA_HIST_WAITCLASSMET_HISTORY

    DBA_HIST_WAITSTAT

    DBA_HIST_WR_CONTROL

    78 rows selected.

    The rolling buffer can be viewed by querying the relevant v$view:
    SELECT table_name
    FROM dictionary
    WHERE table_name like ‘V$%SESSION%HISTORY’
    ORDER BY table_name;

    TABLE_NAME
    ——————————
    V$ACTIVE_SESSION_HISTORY
    V$SESSION_WAIT_HISTORY

    2 rows selected.
    You can use a query like this to look at the session activity in a certain peride of time with a query like this:
    SELECT session_id, event, COUNT(*), SUM(time_waited)
    FROM v$active_session_history
    WHERE session_state= ‘WAITING’
    AND time_waited > 0
    AND sample_time >= (sysdate-&MinutesAgo/(24*60))
    GROUP BY session_id, event;

    Enter value for minutesago: 5
    old 5: AND sample_time >= (sysdate-&MinutesAgo/(24*60))
    new 5: AND sample_time >= (sysdate-5/(24*60))


    SESSION_ID EVENT
    COUNT(*) SUM(TIME_WAITED)
    —————- ——– ————- ——————————
    149 db file sequential read
    3 40857
    149 db file scattered read 1 1530
    164 db file sequential read
    1 12208

    The autors also describe how to dump the contents of the rolling buffer to a trace file in USER_DUMP_DEST in order to use sqlldr to load the information into another database.

    ALTER SESSION SET events ‘immediate trace name ashdump, level 10′;

    You can also use the utility oradebug to dump the rolling buffer:

    SYS @10gR2 SQL > oradebug setmypid
    Statement processed
    SYS @10gR2 SQL > oradebug unlimit
    Statement processed
    SYS @10gR2 SQL > oradebug dump ashdump 10
    Statement processed
    SYS @10gR2 SQL > oradebug tracefile_name
    Statement processed
    SYS@10gR2 SQL > oradebug tracefile_name
    /u01/app/oracle/admin/orcl/udump/orcl_ora_5851.trc

    – first lines: column names for data
    – trace data displayed as comma separated list of values
    – can use sqlldr to load the data into another DB for further analysis
    – can be helpfull in cases of hanging system


    Follow

    Get every new post delivered to your Inbox.