Tuesday, October 15, 2013

Index Elimination with Oracle Exadata


Objective : How to make an index invisible so that you can test the effect on your queries without actually dropping the index.

Step1: Connect as 'SYS' user and flush caches

SQL> connect sys/welcome1@xdbvm as sysdba
Connected.

SQL> alter system flush shared_pool;
System altered.

SQL> alter system flush buffer_cache;
System altered.

Step2: Connect as 'SH' user and check the indexes status and make the index 'INVISIBLE'

SQL> connect sh/welcome1@xdbvm
Connected.

SQL> select index_name, status, visibility from user_indexes where table_name='CUSTOMERS';

INDEX_NAME                       STATUS   VISIBILITY
------------------------------   --------      -------------
CUSTOMERS_PK                   VALID     VISIBLE

SQL> alter index CUSTOMERS_PK invisible;
Index altered.

SQL> select index_name, status, visibility from user_indexes where table_name='CUSTOMERS';

INDEX_NAME                     STATUS    VISIBILITY
------------------------------ --------       ------------
CUSTOMERS_PK                   VALID    INVISIBLE

Step3: Execute the following Query after making index 'INVISIBLE'

SQL> set autotrace on explain

SQL> select avg(cust_credit_limit) from customers where cust_id between 2000 and 2500;

AVG(CUST_CREDIT_LIMIT)
----------------------
            5996.80639

Elapsed: 00:00:01.59

Execution Plan
----------------------------------------------------------
Plan hash value: 296924608

----------------------------------------------------------------------------------------
| Id  | Operation                  | Name      | Rows  | Bytes | Cost (%CPU)| Time     |
----------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT           |           |     1 |     9 |   405   (1)| 00:00:05 |
|   1 |  SORT AGGREGATE            |           |     1 |     9 |            |          |
|*  2 |   TABLE ACCESS STORAGE FULL| CUSTOMERS |   268 |  2412 |   405   (1)| 00:00:05 |
----------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - storage("CUST_ID"<=2500 AND "CUST_ID">=2000)
             filter("CUST_ID"<=2500 AND "CUST_ID">=2000)

Note: Oracle Exadata used 'Smart Scan' feature rather than an Index Range Scan.

Step4: Connect as 'SYS' user and flush caches

SQL> connect sys/welcome1@xdbvm as sysdba
Connected.

SQL> alter system flush buffer_cache;
System altered.

SQL> alter system flush shared_pool;
System altered.

Step5: Connect as 'SH' user and check the indexes status and make the index 'VISIBLE'

SQL> connect sh/welcome1@xdbvm
Connected.

SQL> select index_name, status, visibility from user_indexes where table_name='CUSTOMERS';

INDEX_NAME                       STATUS    VISIBILITY
------------------------------    --------      -------------
CUSTOMERS_PK                   VALID      INVISIBLE

SQL> alter index CUSTOMERS_PK visible;
Index altered.

SQL> select index_name, status, visibility from user_indexes where table_name='CUSTOMERS';

INDEX_NAME                        STATUS   VISIBILITY
------------------------------     --------     -------------
CUSTOMERS_PK                   VALID      VISIBLE

Step6: Execute the following Query after making index 'VISIBLE'

SQL> set autotrace on explain
SQL> select avg(cust_credit_limit) from customers where cust_id between 2000 and 2500;

AVG(CUST_CREDIT_LIMIT)
----------------------
            5996.80639

Elapsed: 00:00:02.44

Execution Plan
----------------------------------------------------------
Plan hash value: 3995619262

---------------------------------------------------------------------------------------------
| Id  | Operation                    | Name         | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT             |              |     1 |     9 |   265   (0)| 00:00:04 |
|   1 |  SORT AGGREGATE              |              |     1 |     9 |            |          |
|   2 |   TABLE ACCESS BY INDEX ROWID| CUSTOMERS    |   268 |  2412 |   265   (0)| 00:00:04 |
|*  3 |    INDEX RANGE SCAN          | CUSTOMERS_PK |   268 |       |     2   (0)| 00:00:01 |
---------------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

3 - access("CUST_ID">=2000 AND "CUST_ID"<=2500)

Note: This above has used an Index Range Scan instead of Oracle Exadata 'Smart Scan' feature.

Note: Before dropping the Indexes, check the application nature and execution scenarios using 'INVISIBLE' index.

Friday, September 20, 2013

Calculation for Network Bandwidth Transfer for REDO LOG - Data Guard Environment

To calculate for Network Bandwidth Transfer for REDO LOG - Data Guard Environment in Primary database

Formula : 
========
Required bandwidth = ((Redo rate bytes per sec. / 0.7) * 8) / 1,000,000 = bandwidth in Mbps

Note : Assuming TCP/IP network overhead of 30%.

Calculation Ways:
==============
1. RUN Statspack during peak intervals to measure REDO rate.
2. If it is RAC instances, we have to calculate for all the RAC instances.
3. Check the following SQL Statement
    SQL> select * from v$sysmetric_history
               where metric_name = 'Redo Generated Per Sec';
4. RDA-Output:
    Performance - AWR Report - Statistic: "redo size"

Example :
========
Let us assume the redo rate is a 600 KB/sec.

Required bandwidth =

((Redo rate bytes per sec. / 0.7) * 8) / 1,000,000 = bandwidth in Mbps
= ((614400/0.7) * 8) /1,000,000
= 7.02 Mbps

Oracle Trace File Analyzer (TFA) - Diagnostic Tool

Usage:

Oracle Trace File Analyzer (TFA) is a diagnostic collection utility for Oracle Clusterware/Grid Infrastructure and RAC Systems.

Installation of TFA:

1. Log into the system as the ROOT user
2. Select the TFA location and this location must exist on all cluster nodes
3. Before installting TFA, you must install JRE 1.5 in the same location on all cluster nodes
4. Stage the "installTFALite.sh" on node-1 and it will install automatically on all cluster nodes.

On rac1 instance:

login as: root
root@192.168.56.21's password:

[root@rac1 opt]# cksum installTFALite.sh
715469312 7633428 installTFALite.sh

[root@rac1 opt]# md5sum installTFALite.sh
40101fda2c9df084f4d0451b8ef207a4  installTFALite.sh

[root@rac1 opt]# chmod 775 installTFALite.sh

[root@rac1 opt]# ls -lrth
-rwxrwxr-x. 1 root root 7.3M Sep 20 06:41 installTFALite.sh

[root@rac1 opt]# ./installTFALite.sh -tfabase /u01/app/oracle -javahome /u01/app/11.2.0/grid/jdk

Starting TFA installation

Using JAVA_HOME : /u01/app/11.2.0/grid/jdk

Running Auto Setup for TFA as user root...

Would you like to do a [L]ocal only or [C]lusterwide installation ? [L|l|C|c] [C] : C

The following installation requires temporary use of SSH.
If SSH is not configured already then we will remove SSH
when complete.
Do you wish to Continue ? [Y|y|N|n] [Y] Y

Installing TFA now...

Discovering Nodes and Oracle resources
Checking whether CRS is up and running
Getting list of nodes in cluster . . . . .

List of nodes in cluster
1. rac1
2. rac2

Checking ssh user equivalency settings on all nodes in cluster

Node rac2 is not configured for ssh user equivalency and  the script uses ssh to install TFA on remote nodes.

Without this facility the script cannot install TFA on the remote nodes.

Do you want to configure SSH for user root on rac2 [y/n][y]y
PING rac2.mlg.oracle.com (192.168.56.22) 56(84) bytes of data.
64 bytes from rac2.mlg.oracle.com (192.168.56.22): icmp_seq=1 ttl=64 time=0.349 ms

--- rac2.mlg.oracle.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.349/0.349/0.349/0.000 ms

Generating public/private dsa key pair.
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.

The key fingerprint is:
70:82:17:f7:34:75:f1:29:63:80:3e:52:78:db:78:bb root@rac1.mlg.oracle.com

Warning: Permanently added 'rac2,192.168.56.22' (RSA) to the list of known hosts.
root@rac2's password:
root@rac2's password:
SSH setup is complete.

Fri Sep 20 07:07:47 CEST 2013
------------------------------------------------------------------------
SSH verification complete.
Searching for running databases . . . . .
List of running databases registered in OCR
1. flavia
. .
Checking Status of Oracle Software Stack - Clusterware, ASM, RDBMS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

TFA Will be Installed on the Following Nodes:
++++++++++++++++++++++++++++++++++++++++++++

Install Nodes
=============
rac1
rac2

Do you wish to make changes to the Node List ? [Y/y/N/n] [N] N

TFA will scan the following Directories
++++++++++++++++++++++++++++++++++++++++++++

.------------------------------------------------------------------------------.
|                                     rac1                                                                            |
+-------------------------------------------------------------------+----------+
| Trace Directory                                                                               | Resource |
+-------------------------------------------------------------------+----------+
| /u01/app/11.2.0/grid/cfgtoollogs                                                      | INSTALL  |
| /u01/app/11.2.0/grid/crs/log                                      | CRS      |
| /u01/app/11.2.0/grid/css/log                                      | CRS      |
| /u01/app/11.2.0/grid/cv/log                                       | CRS      |
| /u01/app/11.2.0/grid/evm/admin/log                                | CRS      |
| /u01/app/11.2.0/grid/evm/admin/logger                             | CRS      |
| /u01/app/11.2.0/grid/evm/log                                      | CRS      |
| /u01/app/11.2.0/grid/install                                      | INSTALL  |
| /u01/app/11.2.0/grid/log/                                         | CRS      |
| /u01/app/11.2.0/grid/network/log                                  | CRS      |
| /u01/app/11.2.0/grid/oc4j/j2ee/home/log                           | CRSOC4J  |
| /u01/app/11.2.0/grid/opmn/logs                                    | CRS      |
| /u01/app/11.2.0/grid/racg/log                                     | CRS      |
| /u01/app/11.2.0/grid/rdbms/log                                    | ASM      |
| /u01/app/11.2.0/grid/scheduler/log                                | CRS      |
| /u01/app/11.2.0/grid/srvm/log                                     | CRS      |
| /u01/app/oraInventory/ContentsXML                                 | INSTALL  |
| /u01/app/oraInventory/logs                                        | INSTALL  |
| /u01/app/oracle/cfgtoollogs                                       | CFGTOOLS |
| /u01/app/oracle/diag/asm/+asm/+ASM1/trace                         | ASM      |
| /u01/app/oracle/diag/clients/user_oracle/host_3590113974_80/trace | RDBMS    |
| /u01/app/oracle/diag/rdbms/flavia/flavia1/trace                   | RDBMS    |
| /u01/app/oracle/diag/tnslsnr                                      | TNS      |
| /u01/app/oracle/diag/tnslsnr/rac1/listener/trace                  | TNS      |
| /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs               | INSTALL  |
| /u01/app/oracle/product/11.2.0/dbhome_1/install                   | INSTALL  |
'-------------------------------------------------------------------+----------'

.------------------------------------------------------------------------------.
|                                     rac2                                                                            |
+-------------------------------------------------------------------+----------+
| Trace Directory                                                                              | Resource |
+-------------------------------------------------------------------+----------+
| /u01/app/11.2.0/grid/cfgtoollogs                                  | INSTALL  |
| /u01/app/11.2.0/grid/crs/log                                      | CRS      |
| /u01/app/11.2.0/grid/css/log                                      | CRS      |
| /u01/app/11.2.0/grid/cv/log                                       | CRS      |
| /u01/app/11.2.0/grid/evm/admin/log                                | CRS      |
| /u01/app/11.2.0/grid/evm/admin/logger                             | CRS      |
| /u01/app/11.2.0/grid/evm/log                                      | CRS      |
| /u01/app/11.2.0/grid/install                                      | INSTALL  |
| /u01/app/11.2.0/grid/log/                                         | CRS      |
| /u01/app/11.2.0/grid/network/log                                  | CRS      |
| /u01/app/11.2.0/grid/oc4j/j2ee/home/log                           | CRSOC4J  |
| /u01/app/11.2.0/grid/opmn/logs                                    | CRS      |
| /u01/app/11.2.0/grid/racg/log                                     | CRS      |
| /u01/app/11.2.0/grid/rdbms/log                                    | ASM      |
| /u01/app/11.2.0/grid/scheduler/log                                | CRS      |
| /u01/app/11.2.0/grid/srvm/log                                     | CRS      |
| /u01/app/oraInventory/ContentsXML                                 | INSTALL  |
| /u01/app/oraInventory/logs                                        | INSTALL  |
| /u01/app/oracle/cfgtoollogs                                       | CFGTOOLS |
| /u01/app/oracle/diag/asm/+asm/+ASM2/trace                         | ASM      |
| /u01/app/oracle/diag/clients/user_oracle/host_3945948993_80/trace | RDBMS    |
| /u01/app/oracle/diag/rdbms/flavia/flavia2/trace                   | RDBMS    |
| /u01/app/oracle/diag/tnslsnr                                      | TNS      |
| /u01/app/oracle/diag/tnslsnr/rac2/listener/trace                  | TNS      |
| /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs               | INSTALL  |
| /u01/app/oracle/product/11.2.0/dbhome_1/install                   | INSTALL  |
'-------------------------------------------------------------------+----------'

Installing TFA on rac1

HOST: rac1     
TFA_HOME: /u01/app/oracle/tfa/rac1/tfa_home

Installing TFA on rac2

HOST: rac2     
TFA_HOME: /u01/app/oracle/tfa/rac2/tfa_home

Host rac2 is part of TFA cluster

.----------------------------------------------.
| Host | Status of TFA | PID  | Port         | Version |
+------+---------------+------+------+---------+
| rac1 | RUNNING       | 6056 | 5000 | 2.5.1.5 |
| rac2 | RUNNING       | 5318 | 5000 | 2.5.1.5 |
'------+---------------+------+------+---------'

Summary of TFA Installation:
.---------------------------------------------------------.
|                           rac1                                                       |
+---------------------+-----------------------------------+
| Parameter           | Value                                                   |
+---------------------+-----------------------------------+
| Install location         | /u01/app/oracle/tfa/rac1/tfa_home |
| Repository location | /u01/app/oracle/tfa/repository    |
| Repository usage     | 0 MB out of 6659 MB               |
'---------------------+-----------------------------------'

.---------------------------------------------------------.
|                           rac2                                                      |
+---------------------+-----------------------------------+
| Parameter                                 | Value                             |
+---------------------+-----------------------------------+
| Install location            | /u01/app/oracle/tfa/rac2/tfa_home |
| Repository location       | /u01/app/oracle/tfa/repository    |
| Repository usage         | 0 MB out of 6659 MB               |
'---------------------+-----------------------------------'

Removed ssh equivalency setup on rac2

TFA is successfully installed..

Usage : /u01/app/oracle/tfa/bin/tfactl <command> [options]
<command> =
         print        Print requested details
         purge        Delete collections from TFA repository
         directory    Add or Remove or Modify directory in TFA
         host         Add or Remove host in TFA
         set          Turn ON/OFF or Modify various TFA features
         diagcollect  Collect logs from across nodes in cluster

For help with a command: /u01/app/oracle/tfa/bin/tfactl <command> -help

To start TFA:

[root@rac1 opt]# /etc/init.d/init.tfa start

To stop TFA:

[root@rac1 opt]# /etc/init.d/init.tfa stop

To restart TFA:

[root@rac1 opt]# /etc/init.d/init.tfa restart

To Check PID of TFA:

[root@rac1 opt]# ps -ef | grep tfa

Manual Collection of Diagnostics on rac1:

[root@rac1 bin]# ./tfactl diagcollect -all

Collecting data for the last 4 hours for this component...
Running an inventory clusterwide ...
Run inventory completed locally ...
Collection name tfa_Fri_Sep_20_07_21_28_CEST_2013.zip
Sending diagcollect request to host : rac2
Getting list of files satisfying time range [Fri Sep 20 03:25:24 CEST 2013, Fri Sep 20 07:25:24 CEST 2013]
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_ping_3571.trc
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_lms0_3581.trc
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/crfmond/crfmond.log
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/mdnsd/mdnsd.log
Trimming file : /u01/app/11.2.0/grid/log/rac1/mdnsd/mdnsd.log with original file size : 647kB
rac1: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_rbal_2745.trc
rac1: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_ora_2610.trc
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/client/ocrconfig_7918.log
rac1: Zipping File: /u01/app/11.2.0/grid/opmn/logs/ons.log.rac1
rac1: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_dia0_2723.trc
rac1: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_lmd0_2727.trc
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_lmon_3577.trc
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_lgwr_3593.trc
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/gipcd/gipcd.log
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_mmon_3605.trc
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/agent/ohasd/oraagent_oracle/oraagent_oracle.log
Trimming file : /u01/app/11.2.0/grid/log/rac1/agent/ohasd/oraagent_oracle/oraagent_oracle.log with original file size : 9.8MB
rac1: Zipping File: /u01/app/11.2.0/grid/log/diag/tnslsnr/rac1/listener_scan3/trace/listener_scan3.log
Trimming file : /u01/app/11.2.0/grid/log/diag/tnslsnr/rac1/listener_scan3/trace/listener_scan3.log with original file size : 2.7MB
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/alert_flavia1.log
Trimming file : /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/alert_flavia1.log with original file size : 511kB
rac1: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_gcr0_3150.trc
rac1: Zipping File: /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch2013-09-20_07-20-13AM.log
rac1: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM1/trace/alert_+ASM1.log
Trimming file : /u01/app/oracle/diag/asm/+asm/+ASM1/trace/alert_+ASM1.log with original file size : 561kB
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/crflogd/crflogd.log
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/cssd/ocssd.log
Trimming file : /u01/app/11.2.0/grid/log/rac1/cssd/ocssd.log with original file size : 16MB
rac1: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_lms0_2729.trc
rac1: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_lmhb_2733.trc
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/agent/ohasd/oracssdagent_root/oracssdagent_root.log
Trimming file : /u01/app/11.2.0/grid/log/rac1/agent/ohasd/oracssdagent_root/oracssdagent_root.log with original file size : 1MB
rac1: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_ora_2760.trc
rac1: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_lmon_2725.trc
rac1: Zipping File: /u01/app/11.2.0/grid/log/diag/tnslsnr/rac1/listener_scan2/trace/listener_scan2.log
Trimming file : /u01/app/11.2.0/grid/log/diag/tnslsnr/rac1/listener_scan2/trace/listener_scan2.log with original file size : 2.8MB
rac1: Zipping File: /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/lsinv/lsinventory2013-09-20_07-20-13AM.txt
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_dia0_3575.trc
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_rms0_3585.trc
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/evmd/evmd.log
Trimming file : /u01/app/11.2.0/grid/log/rac1/evmd/evmd.log with original file size : 4.4MB
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_diag_3567.trc
rac1: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_diag_2719.trc
rac1: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_lck0_2753.trc
rac1: Zipping File: /u01/app/11.2.0/grid/evm/log/rac1_evmlogger.info
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/crsd/crsd.log
Trimming file : /u01/app/11.2.0/grid/log/rac1/crsd/crsd.log with original file size : 7.6MB
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/gpnpd/gpnpdOUT.log
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/alertrac1.log
Trimming file : /u01/app/11.2.0/grid/log/rac1/alertrac1.log with original file size : 336kB
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/mdnsd/mdnsdOUT.log
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_gcr0_3750.trc
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/evmd/evmdOUT.log
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_ora_3446.trc
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/client/ocrdump_8014.log
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/client/ocrcheck_7921.log
rac1: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_ckpt_2741.trc
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/agent/crsd/scriptagent_oracle/scriptagent_oracleOUT.log
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_qmnc_3748.trc
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_ora_3648.trc
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/gipcd/gipcdOUT.log
rac1: Zipping File: /u01/app/11.2.0/grid/evm/log/rac1_evmdaemon.log
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_asmb_3603.trc
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_mman_3589.trc
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/client/ocrdump_8019.log
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/agent/ohasd/oracssdmonitor_root/oracssdmonitor_root.log
Trimming file : /u01/app/11.2.0/grid/log/rac1/agent/ohasd/oracssdmonitor_root/oracssdmonitor_root.log with original file size : 855kB
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_dbrm_3569.trc
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_vktm_3561.trc
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/agent/crsd/oraagent_oracle/oraagent_oracle.log
Trimming file : /u01/app/11.2.0/grid/log/rac1/agent/crsd/oraagent_oracle/oraagent_oracle.log with original file size : 5.2MB
rac1: Zipping File: /u01/app/11.2.0/grid/rdbms/log/+asm1_ora_2610.trc
rac1: Zipping File: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch_history.txt
rac1: Zipping File: /u01/app/11.2.0/grid/cfgtoollogs/opatch/lsinv/lsinventory2013-09-20_07-19-59AM.txt
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_ckpt_3595.trc
rac1: Zipping File: /var/log/messages
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/client/olsnodes.log
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/agent/crsd/orarootagent_root/orarootagent_root.log
Trimming file : /u01/app/11.2.0/grid/log/rac1/agent/crsd/orarootagent_root/orarootagent_root.log with original file size : 5.6MB
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/ohasd/ohasd.log
Trimming file : /u01/app/11.2.0/grid/log/rac1/ohasd/ohasd.log with original file size : 1.6MB
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/gipcd/gipcd.l01
Trimming file : /u01/app/11.2.0/grid/log/rac1/gipcd/gipcd.l01 with original file size : 10MB
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/agent/crsd/scriptagent_oracle/scriptagent_oracle.log
Trimming file : /u01/app/11.2.0/grid/log/rac1/agent/crsd/scriptagent_oracle/scriptagent_oracle.log with original file size : 5MB
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/crsd/crsdOUT.log
rac1: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_ping_2721.trc
rac1: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_gmon_2747.trc
rac1: Zipping File: /u01/app/oracle/diag/tnslsnr/rac1/listener/trace/listener.log
Trimming file : /u01/app/oracle/diag/tnslsnr/rac1/listener/trace/listener.log with original file size : 5MB
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/ctssd/octssd.log
Trimming file : /u01/app/11.2.0/grid/log/rac1/ctssd/octssd.log with original file size : 10MB
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/client/crswrapexece.log
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/cssd/cssdOUT.log
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_dbw0_3591.trc
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_mark_3615.trc
rac1: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_vktm_2713.trc
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/agent/ohasd/orarootagent_root/orarootagent_root.log
Trimming file : /u01/app/11.2.0/grid/log/rac1/agent/ohasd/orarootagent_root/orarootagent_root.log with original file size : 5MB
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/client/crsctl_root.log
rac1: Zipping File: /u01/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch_history.txt
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_lck0_3624.trc
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/gpnpd/gpnpd.log
Trimming file : /u01/app/11.2.0/grid/log/rac1/gpnpd/gpnpd.log with original file size : 378kB
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_rcbg_3746.trc
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_lmhb_3587.trc
rac1: Zipping File: /u01/app/11.2.0/grid/log/rac1/ctssd/ctssdOUT.log
rac1: Zipping File: /u01/app/11.2.0/grid/cfgtoollogs/opatch/opatch2013-09-20_07-19-59AM.log
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_smon_3597.trc
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_rsmn_3626.trc
rac1: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia1/trace/flavia1_lmd0_3579.trc
Collecting extra files...
Total Number of Files checked : 3275
Total Size of all Files Checked : 820MB
Number of files containing required range : 90
Total Size of Files containing required range : 102MB
Number of files trimmed : 21
Total Size of data prior to zip : 17MB
Saved 93MB by trimming files
Zip file size : 954kB
Total time taken : 174s
Completed collection of zip files.

Logs are collected to:
/u01/app/oracle/tfa/repository/collection_Fri_Sep_20_07_21_28_CEST_2013_node_all/rac1.tfa_Fri_Sep_20_07_21_28_CEST_2013.zip
/u01/app/oracle/tfa/repository/collection_Fri_Sep_20_07_21_28_CEST_2013_node_all/rac2.tfa_Fri_Sep_20_07_21_28_CEST_2013.zip

To print TFA Configuration:

[root@rac1 bin]# ./tfactl print config
.---------------------------------------------------.
| Configuration Parameter                 | Value   |
+-----------------------------------------+---------+
| TFA version                             | 2.5.1.5 |
| Automatic diagnostic collection         | OFF     |
| Trimming of files during diagcollection | ON      |
| Repository current size (MB) in rac1    | 2       |
| Repository maximum size (MB) in rac1    | 6659    |
| Trace level                             | 1       |
'-----------------------------------------+---------'


Check on rac2:

[root@rac2 grid]# ps -ef | grep tfa
root      5262     1  0 07:09 ?        00:00:00 /bin/sh /etc/init.d/init.tfa run
root      5318     1  7 07:09 ?        00:00:09 /u01/app/11.2.0/grid/jdk/jre/bin                                                                                       
Manual Collection of Diagnostics on rac2:

[root@rac2 grid]# cd /u01/app/oracle/tfa/bin/

[root@rac2 bin]# ./tfactl diagcollect -all

Collecting data for the last 4 hours for this component...
Waiting for inventory to complete ...
Collection name tfa_Fri_Sep_20_07_16_02_CEST_2013.zip
Sending diagcollect request to host : rac1
Getting list of files satisfying time range [Fri Sep 20 03:19:08 CEST 2013, Fri Sep 20 07:19:08 CEST 2013]
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_mmon_3672.trc
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_ckpt_3662.trc
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/alert_flavia2.log
Trimming file : /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/alert_flavia2.log with original file size : 446kB
rac2: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_lmd0_2735.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/diag/tnslsnr/rac2/listener_scan1/trace/listener_scan1.log
Trimming file : /u01/app/11.2.0/grid/log/diag/tnslsnr/rac2/listener_scan1/trace/listener_scan1.log with original file size : 2.6MB
rac2: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_diag_2727.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/client/olsnodes.log
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_ora_3699.trc
rac2: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_ora_2769.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/agent/crsd/orarootagent_root/orarootagent_root.log
Trimming file : /u01/app/11.2.0/grid/log/rac2/agent/crsd/orarootagent_root/orarootagent_root.log with original file size : 5.7MB
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_mark_3682.trc
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_lmhb_3654.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/cssd/ocssd.log
Trimming file : /u01/app/11.2.0/grid/log/rac2/cssd/ocssd.log with original file size : 18MB
rac2: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_ora_2620.trc
rac2: Zipping File: /u01/app/oracle/diag/tnslsnr/rac2/listener/trace/listener.log
Trimming file : /u01/app/oracle/diag/tnslsnr/rac2/listener/trace/listener.log with original file size : 5.5MB
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_lms0_3648.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/crsd/crsdOUT.log
rac2: Zipping File: /u01/app/11.2.0/grid/rdbms/log/+asm2_ora_2620.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/client/crsctl_root.log
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/agent/crsd/oraagent_oracle/oraagent_oracle.log
Trimming file : /u01/app/11.2.0/grid/log/rac2/agent/crsd/oraagent_oracle/oraagent_oracle.log with original file size : 4.2MB
rac2: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_dia0_2731.trc
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_rcbg_3814.trc
rac2: Zipping File: /u01/app/11.2.0/grid/evm/log/rac2_evmlogger.info
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_diag_3634.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/evmd/evmd.log
Trimming file : /u01/app/11.2.0/grid/log/rac2/evmd/evmd.log with original file size : 3.9MB
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_asmb_3670.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/agent/ohasd/orarootagent_root/orarootagent_root.log
Trimming file : /u01/app/11.2.0/grid/log/rac2/agent/ohasd/orarootagent_root/orarootagent_root.log with original file size : 4MB
rac2: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_ckpt_2749.trc
rac2: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM2/trace/alert_+ASM2.log
Trimming file : /u01/app/oracle/diag/asm/+asm/+ASM2/trace/alert_+ASM2.log with original file size : 602kB
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/ctssd/ctssdOUT.log
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/crfmond/crfmond.log
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/client/crswrapexece.log
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_mman_3656.trc
rac2: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_ping_2729.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/crflogd/crflogd.log
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/gipcd/gipcd.log
Trimming file : /u01/app/11.2.0/grid/log/rac2/gipcd/gipcd.log with original file size : 8MB
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_lmon_3644.trc
rac2: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_lck0_2763.trc
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_dbw0_3658.trc
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_lmd0_3646.trc
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_dia0_3642.trc
rac2: Zipping File: /var/log/messages
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_dbrm_3636.trc
rac2: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_rbal_2753.trc
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_gcr0_3807.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/agent/ohasd/oracssdagent_root/oracssdagent_root.log
Trimming file : /u01/app/11.2.0/grid/log/rac2/agent/ohasd/oracssdagent_root/oracssdagent_root.log with original file size : 1.2MB
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_ping_3638.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/mdnsd/mdnsdOUT.log
rac2: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_vktm_2721.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/client/crsctl_oracle.log
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/alertrac2.log
Trimming file : /u01/app/11.2.0/grid/log/rac2/alertrac2.log with original file size : 268kB
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/cssd/cssdOUT.log
rac2: Zipping File: /u01/app/11.2.0/grid/evm/log/rac2_evmdaemon.log
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_lck0_3688.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/agent/ohasd/oraagent_oracle/oraagent_oracle.log
Trimming file : /u01/app/11.2.0/grid/log/rac2/agent/ohasd/oraagent_oracle/oraagent_oracle.log with original file size : 8.7MB
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/ohasd/ohasd.log
Trimming file : /u01/app/11.2.0/grid/log/rac2/ohasd/ohasd.log with original file size : 10MB
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/agent/crsd/scriptagent_oracle/scriptagent_oracle.log
Trimming file : /u01/app/11.2.0/grid/log/rac2/agent/crsd/scriptagent_oracle/scriptagent_oracle.log with original file size : 2.5MB
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/agent/crsd/scriptagent_oracle/scriptagent_oracleOUT.log
rac2: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_gcr0_2761.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/agent/ohasd/oracssdmonitor_root/oracssdmonitor_root.log
Trimming file : /u01/app/11.2.0/grid/log/rac2/agent/ohasd/oracssdmonitor_root/oracssdmonitor_root.log with original file size : 1MB
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_ora_3500.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/gpnpd/gpnpd.log
Trimming file : /u01/app/11.2.0/grid/log/rac2/gpnpd/gpnpd.log with original file size : 416kB
rac2: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_gcr0_3363.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/gpnpd/gpnpdOUT.log
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_rsmn_3691.trc
rac2: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_gmon_2755.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/ctssd/octssd.log
Trimming file : /u01/app/11.2.0/grid/log/rac2/ctssd/octssd.log with original file size : 8.3MB
rac2: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_lmon_2733.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/mdnsd/mdnsd.log
Trimming file : /u01/app/11.2.0/grid/log/rac2/mdnsd/mdnsd.log with original file size : 598kB
rac2: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_lms0_2737.trc
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_qmnc_3816.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/gipcd/gipcdOUT.log
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/crsd/crsd.log
Trimming file : /u01/app/11.2.0/grid/log/rac2/crsd/crsd.log with original file size : 7.1MB
rac2: Zipping File: /u01/app/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_lmhb_2741.trc
Trimming file : /u01/app/oracle/diag/asm/+asm/+ASM2/trace/+ASM2_lmhb_2741.trc with original file size : 617kB
rac2: Zipping File: /u01/app/oracle/diag/rdbms/flavia/flavia2/trace/flavia2_vktm_3628.trc
rac2: Zipping File: /u01/app/11.2.0/grid/log/rac2/evmd/evmdOUT.log
rac2: Zipping File: /u01/app/11.2.0/grid/opmn/logs/ons.log.rac2
Collecting extra files...
Total Number of Files checked : 3218
Total Size of all Files Checked : 712MB
Number of files containing required range : 77
Total Size of Files containing required range : 99MB
Number of files trimmed : 21
Total Size of data prior to zip : 16MB
Saved 91MB by trimming files
Zip file size : 990kB
Total time taken : 88s
Completed collection of zip files.

Logs are collected to:
/u01/app/oracle/tfa/repository/collection_Fri_Sep_20_07_16_02_CEST_2013_node_all/rac2.tfa_Fri_Sep_20_07_16_02_CEST_2013.zip
/u01/app/oracle/tfa/repository/collection_Fri_Sep_20_07_16_02_CEST_2013_node_all/rac1.tfa_Fri_Sep_20_07_16_02_CEST_2013.zip

To print TFA Configuration:

[root@rac2 bin]# ./tfactl print config
.---------------------------------------------------.
| Configuration Parameter                 | Value   |
+-----------------------------------------+---------+
| TFA version                             | 2.5.1.5 |
| Automatic diagnostic collection         | OFF     |
| Trimming of files during diagcollection | ON      |
| Repository current size (MB) in rac2    | 1       |
| Repository maximum size (MB) in rac2    | 6890    |
| Trace level                             | 1       |
'-----------------------------------------+---------'

To Purge TFA Data:

[root@rac1 bin]# ./tfactl purge -h

To Modify TFA Parameters:

[root@rac1 bin]# ./tfactl set -h

To  Add/Remove/Change directories of TFA:

[root@rac1 bin]# ./tfactl directory -h

TFA Commands at a Glance:

[root@rac1 bin]# ./tfactl -h



Tuesday, August 27, 2013

Oracle Database 11g Release 2 (11.2.0.4) New Features


This chapter contains descriptions of all of the features that are new to Oracle Database 11g Release 2 (11.2.0.4).

1.1 Oracle Data Redaction

This new database security feature is part of Oracle Advanced Security and prevents data columns (such as credit card numbers, U.S. Social Security numbers, and other sensitive or regulated data) from being displayed by applications. It is driven by declarative policies that can take into account database session factors and information passed by applications. Sensitive display data can be redacted at runtime on live production systems with minimal disruption to running applications and without altering the actual stored data. Different types of redaction are supported including full, partial, random, and regular expression redaction. You can conceal entire data values or redact only part of the value. The functionality is implemented inside of the database, therefore separate installation is not required.
 
1.2 Trace File Analyzer and Collector

The Trace File Analyzer (TFA) and Collector, also known as TFA Collector, is a diagnostic collection utility to simplify diagnostic data collection on Oracle Clusterware, Oracle Grid Infrastructure and Oracle RAC systems.

Unlike similar solutions, the TFA Collector optimizes data gathering by providing a single source of management as well as various focus levels. Data for a whole cluster can be gathered from one node using one command and can be stored on a central server for further analysis and processing. The TFA Collector also allows for trimming data collection by focusing on certain components or relevant time frames only.
 
1.3 RACcheck - The Oracle RAC Configuration Audit Tool

RACcheck is designed to audit vital configuration settings for the Oracle Database, single instance databases, as well as Oracle Real Application Clusters (Oracle RAC) databases. It also includes checks for Oracle Clusterware, Oracle Automatic Storage Management (Oracle ASM) and Oracle Grid Infrastructure.
RACcheck provides best practices recommedations considering the whole stack, including Maximum Availability Architecture (MAA) configurations and is therefore the ideal tool for regular health checks as well as pre- and post-upgrade best practices assessments.
 
1.4 Database Replay Support for Database Consolidation
 
Database Replay now supports simultaneous execution of multiple database captures on a single consolidated database. Consolidated database replay supports scheduling of the individual replays enabling investigations of various scenarios (for example, what if all my individual workloads hit their peak utilizations at the same time).
Consolidated replay provides the ability to test database performance for database consolidation projects, whether consolidating onto an Oracle database machine or other consolidated infrastructure.

1.5 Dynamic Statistics

In previous releases, Oracle Database only gathered dynamic statistics (previously called dynamic sampling) when one or more of the tables in a query did not have optimizer statistics. Starting in Oracle Database 11g Release 2 (11.2.0.4), the optimizer can automatically decide whether dynamic statistics are useful and which dynamic statistics level to use for all SQL statements. For example, the optimizer automatically decides whether to gather dynamic statistics during table scans, index access, joins, and GROUP BY operations. The enhanced behavior is enabled when either of the following criteria is met:
  • The OPTIMIZER_DYNAMIC_SAMPLING initialization parameter is set to the new value of 11.
  • The OPTIMIZER_DYNAMIC_SAMPLING initialization parameter is not explicitly set, and a SQL statement runs in parallel.

1.6 Optimization for Flashback Data Archive History Tables

When using flashback data archive to track changes on tables, you can now enable optimization of the corresponding history tables using the OPTIMIZE DATA clause when creating or altering a flashback data archive.

Optimization of flashback data archive history tables provides better storage efficiency and better performance for flashback queries on the change history without additional intervention needed by the DBA.

1.7 Desupported Features

The following features are desupported in Oracle Database 11g Release 2 (11.2):
  • The -cleanupOBase flag of the deinstallation tool is desupported. There is no replacement for this flag.
  • The DES, RC4, and MD5 algorithms are desupported.

1.8 New sqlnet.ora Parameter SSL_EXTENDED_KEY_USAGE

Starting with this release, you can use the SQLNET.SSL_EXTENDED_KEY_USAGE parameter in the sqlnet.ora file to select a Secure Sockets Layer certificate to be used automatically to authenticate clients. For example, suppose you have multiple certificates for a smart card but only one of the certificates has an extended key usage field of client authentication. In the application, a certificate chooser dialog box would appear, prompting the user to select the type of authentication. Because the type of authentication would always be for clients, the SQLNET.SSL_EXTENDED_KEY_USAGE parameter can enable the application to bypass this dialog box and automatically choose client authentication. As a result, the user has fewer steps to perform in a task, thereby making the user's job easier and more efficient.

1.9 New PrimaryLostWriteAction Property

The new PrimaryLostWriteAction Data Guard broker configuration property determines what action is taken if a standby database detects that a lost write has occurred at the primary database.

1.10 ENABLE_GOLDENGATE_REPLICATION for Oracle GoldenGate

The ENABLE_GOLDENGATE_REPLICATION initialization parameter controls services provided by the RDBMS for Oracle GoldenGate (both capture and apply services). Set this to true to enable RDBMS services used by Oracle GoldenGate.

Sunday, July 21, 2013

Book Review: Oracle Data Guard 11gR2 Administration Beginner's Guide


Just finished review of book "Oracle Data Guard 11gR2 Administration Beginner's Guide” by authors, Mr. Emre Baransel and Mr. Nassyam Basha.

"Oracle Data Guard 11gR2 Administration Beginner's Guide” is an interesting book that takes one into the facets of Oracle database availability. The books takes the reader step by step on different aspects of environment settings , different configurations, implementation challenges and so on. The fascinating part of the book is the depiction of real world cases with screen snapshots.

A quick reference even for the seasoned data guard administrators on specific issues and the nuances of database role changes and reversals.Interestingly a dedicated chapter on Active Data Guard which explains how this feature can be harnessed in terms of offloading and better ROI.

Almost all, the parts of the book we can identify the authors Hands-On experience in "Oracle Data Guard" functionality with real world scenarios.

The following concepts the explanation and work-around was very impressive

1. Working with skip rules on a logical standby database
2. Data Guard tracing levels
3. Changing the protection mode with SQL*Plus
4. Exporting a database backup from Active DataGuard

I want to appreciate the efforts from my friends Mr.Emre Baransel and Mr.Nassyam Basha for this book. My sincere and special thanks to Packt Publications team for sending me this e-book for review.

The link to buy this book from Packt Publishing :http://www.packtpub.com/oracle-data-guard-11gr2-administration-beginners-guide/book

Thanks & Best Regards
Ravikumar YV

Monday, May 20, 2013

How to Convert Single-Instance Database to RAC Database using Rconfig Utility


Database  : racdb
Instance    : Single Instance
Objective : Converting from Single Instance to RAC Instance using 'rconfig'

Check the Instance:
-------------------------
[oracle@rac1 bin]$ ps -ef | grep pmon
oracle    3759     1  0 17:08 ?        00:00:00 asm_pmon_+ASM1
oracle    8407     1  0 17:36 ?        00:00:00 ora_pmon_racdb

Take backup of Original File:----------------------------------
[oracle@rac1 bin]$ cd /u01/app/oracle/product/11.2.0/dbhome_1/assistants/rconfig/sampleXMLs/

[oracle@rac1 sampleXMLs]$ ls
ConvertToRAC_AdminManaged.xml  ConvertToRAC_PolicyManaged.xml

[oracle@rac1 sampleXMLs]$ cp ConvertToRAC_AdminManaged.xml ConvertToRAC_AdminManaged.xml.bak

[oracle@rac1 sampleXMLs]$ vi ConvertToRAC_AdminManaged.xml

Original File :-----------------
[oracle@rac1 bin]$ cat /u01/app/oracle/product/11.2.0/dbhome_1/assistants/rconfig/sampleXMLs/ConvertToRAC_AdminManaged.xml.bak
<?xml version="1.0" encoding="UTF-8"?>
<n:RConfig xmlns:n="http://www.oracle.com/rconfig"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.oracle.com/rconfig rconfig.xsd">
    <n:ConvertToRAC>  
<!-- Verify does a precheck to ensure all pre-requisites are met, before the conversion is attempted. Allowable values are: YES|NO|ONLY -->
    <n:Convert verify="YES">
<!--Specify current OracleHome of non-rac database for SourceDBHome -->
          <n:SourceDBHome>/oracle/product/11.2.0/db_1</n:SourceDBHome>
<!--Specify OracleHome where the rac database should be configured. It can be same as SourceDBHome -->
          <n:TargetDBHome>/oracle/product/11.2.0/db_1</n:TargetDBHome>
<!--Specify SID of non-rac database and credential. User with sysdba role is required to perform conversion -->
              <n:SourceDBInfo SID="sales">
            <n:Credentials>
              <n:User>sys</n:User>
              <n:Password>oracle</n:Password>
              <n:Role>sysdba</n:Role>
            </n:Credentials>
          </n:SourceDBInfo>
<!--Specify the list of nodes that should have rac instances running for the Admin Managed Cluster Database. LocalNode should be the first node in this nodelist. -->
          <n:NodeList>       
            <n:Node name="node1"/>
            <n:Node name="node2"/>
          </n:NodeList>
<!--Specify RacOneNode along with servicename to convert database to RACOne Node -->
              <!--n:RacOneNode  servicename="salesrac1service"/-->
<!--Instance Prefix tag is optional starting with 11.2. If left empty, it is derived from db_unique_name.-->
          <n:InstancePrefix>sales</n:InstancePrefix>
<!-- Listener details are no longer needed starting 11.2. Database is registered with default listener and SCAN listener running from Oracle Grid Infrastructure home. -->
<!--Specify the type of storage to be used by rac database. Allowable values are CFS|ASM. The non-rac database should have same storage type. ASM credentials are no needed for conversion. -->
          <n:SharedStorage type="ASM">
<!--Specify Database Area Location to be configured for rac database.If this field is left empty, current storage will be used for rac database. For CFS, this field will have directory path. -->
            <n:TargetDatabaseArea>+ASMDG</n:TargetDatabaseArea>
<!--Specify Fast Recovery Area to be configured for rac database. If this field is left empty, current recovery area of non-rac database will be configured for rac database. If current database is not using recovery Area, the resulting rac database will not have a recovery area. -->
            <n:TargetFlashRecoveryArea>+ASMDG</n:TargetFlashRecoveryArea>
          </n:SharedStorage>
        </n:Convert>
    </n:ConvertToRAC>
</n:RConfig>
[oracle@rac1 bin]$

Changes made for 'racdb':------------------------------
[oracle@rac1 bin]$ cat /u01/app/oracle/product/11.2.0/dbhome_1/assistants/rconfig/sampleXMLs/ConvertToRAC_AdminManaged.xml
<?xml version="1.0" encoding="UTF-8"?>
<n:RConfig xmlns:n="http://www.oracle.com/rconfig"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://www.oracle.com/rconfig rconfig.xsd">
    <n:ConvertToRAC>  
<!-- Verify does a precheck to ensure all pre-requisites are met, before the conversion is attempted. Allowable values are: YES|NO|ONLY -->
    <n:Convert verify="YES">
<!--Specify current OracleHome of non-rac database for SourceDBHome -->
          <n:SourceDBHome>/u01/app/oracle/product/11.2.0/dbhome_1</n:SourceDBHome><!--Specify OracleHome where the rac database should be configured. It can be same as SourceDBHome -->
          <n:TargetDBHome>/u01/app/oracle/product/11.2.0/dbhome_1</n:TargetDBHome>
<!--Specify SID of non-rac database and credential. User with sysdba role is required to perform conversion -->
              <n:SourceDBInfo SID="racdb">
            <n:Credentials>
              <n:User>sys</n:User>
              <n:Password>oracle</n:Password>
              <n:Role>sysdba</n:Role>
            </n:Credentials>
          </n:SourceDBInfo>
<!--Specify the list of nodes that should have rac instances running for the Admin Managed Cluster Database. LocalNode should be the first node in this nodelist. -->
          <n:NodeList>       
            <n:Node name="rac1.mlg.oracle.com"/>
            <n:Node name="rac2.mlg.oracle.com"/>

          </n:NodeList>
<!--Specify RacOneNode along with servicename to convert database to RACOne Node -->
              <!--n:RacOneNode  servicename="salesrac1service"/-->
<!--Instance Prefix tag is optional starting with 11.2. If left empty, it is derived from db_unique_name.-->
          <n:InstancePrefix>racdb</n:InstancePrefix>
<!-- Listener details are no longer needed starting 11.2. Database is registered with default listener and SCAN listener running from Oracle Grid Infrastructure home. -->
<!--Specify the type of storage to be used by rac database. Allowable values are CFS|ASM. The non-rac database should have same storage type. ASM credentials are no needed for conversion. -->
          <n:SharedStorage type="ASM">
<!--Specify Database Area Location to be configured for rac database.If this field is left empty, current storage will be used for rac database. For CFS, this field will have directory path. -->
            <n:TargetDatabaseArea>+FRA</n:TargetDatabaseArea>
<!--Specify Fast Recovery Area to be configured for rac database. If this field is left empty, current recovery area of non-rac database will be configured for rac database. If current database is not using recovery Area, the resulting rac database will not have a recovery area. -->
            <n:TargetFlashRecoveryArea>+FRA</n:TargetFlashRecoveryArea>
          </n:SharedStorage>
        </n:Convert>
    </n:ConvertToRAC>
</n:RConfig>
[oracle@rac1 bin]$

Note : Changes given in bold format

Run rconfig with convert verify="ONLY" on the first node to perform a test conversion to ensure that conversion can be completed successfully.


[oracle@rac1 bin]$ ./rconfig /u01/app/oracle/product/11.2.0/dbhome_1/assistants/rconfig/sampleXMLs/ConvertToRAC_AdminManaged.xml
<?xml version="1.0" ?>
<RConfig version="1.1" >
<ConvertToRAC>
    <Convert>
      <Response>
        <Result code="0" >
          Operation Succeeded
        </Result>
      </Response>
      <ReturnValue type="object">
There is no return value for this step     </ReturnValue>
    </Convert>
  </ConvertToRAC></RConfig>


Run rconfig with convert verify="YES" on the first node to convert the database.


[oracle@rac1 bin]$ ./rconfig /u01/app/oracle/product/11.2.0/dbhome_1/assistants/rconfig/sampleXMLs/ConvertToRAC_AdminManaged.xml
Converting Database "racdb" to Cluster Database. Target Oracle Home: /u01/app/oracle/product/11.2.0/dbhome_1. Database Role: PRIMARY.
Setting Data Files and Control Files
Adding Database Instances
Adding Redo Logs
Enabling threads for all Database Instances
Setting TEMP tablespace
Adding UNDO tablespaces
Adding Trace files
Setting Fast Recovery Area
Updating Oratab
Creating Password file(s)
Configuring Listeners
Configuring related CRS resources
Starting Cluster Database
<?xml version="1.0" ?>
<RConfig version="1.1" >
<ConvertToRAC>
    <Convert>
      <Response>
        <Result code="0" >
          Operation Succeeded
        </Result>
      </Response>
      <ReturnValue type="object">
<Oracle_Home>
         /u01/app/oracle/product/11.2.0/dbhome_1
       </Oracle_Home>
       <Database type="ADMIN_MANAGED"  >
         <InstanceList>
           <Instance SID="racdb1" Node="rac1"  >
           </Instance>
           <Instance SID="racdb2" Node="rac2"  >
           </Instance>
         </InstanceList>
       </Database>     </ReturnValue>
    </Convert>
  </ConvertToRAC></RConfig>

Check if the Single-Instance database converted to RAC:
------------------------------------------------------------------

[oracle@rac1 bin]$ ps -ef | grep racdb1
oracle   21425     1  0 18:14 ?        00:00:00 ora_pmon_racdb1
oracle   21427     1  0 18:14 ?        00:00:00 ora_psp0_racdb1
oracle   21429     1  1 18:14 ?        00:00:02 ora_vktm_racdb1
oracle   21433     1  0 18:14 ?        00:00:00 ora_gen0_racdb1
oracle   21435     1  0 18:14 ?        00:00:00 ora_diag_racdb1
oracle   21437     1  0 18:14 ?        00:00:00 ora_dbrm_racdb1
oracle   21439     1  0 18:14 ?        00:00:00 ora_ping_racdb1
oracle   21441     1  0 18:14 ?        00:00:00 ora_acms_racdb1
oracle   21443     1  0 18:14 ?        00:00:00 ora_dia0_racdb1
oracle   21445     1  0 18:14 ?        00:00:00 ora_lmon_racdb1
oracle   21447     1  3 18:14 ?        00:00:06 ora_lmd0_racdb1
oracle   21449     1  2 18:14 ?        00:00:03 ora_lms0_racdb1
oracle   21453     1  0 18:14 ?        00:00:00 ora_rms0_racdb1
oracle   21455     1  0 18:14 ?        00:00:00 ora_lmhb_racdb1
oracle   21457     1  0 18:14 ?        00:00:00 ora_mman_racdb1
oracle   21459     1  0 18:14 ?        00:00:00 ora_dbw0_racdb1
oracle   21461     1  0 18:14 ?        00:00:00 ora_lgwr_racdb1
oracle   21463     1  0 18:14 ?        00:00:00 ora_ckpt_racdb1
oracle   21465     1  0 18:14 ?        00:00:00 ora_smon_racdb1
oracle   21467     1  0 18:14 ?        00:00:00 ora_reco_racdb1
oracle   21469     1  0 18:14 ?        00:00:00 ora_rbal_racdb1
oracle   21471     1  0 18:14 ?        00:00:00 ora_asmb_racdb1
oracle   21473     1  0 18:14 ?        00:00:01 ora_mmon_racdb1
oracle   21475     1  0 18:14 ?        00:00:00 oracle+ASM1_asmb_racdb1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle   21477     1  0 18:14 ?        00:00:00 ora_mmnl_racdb1
oracle   21479     1  0 18:14 ?        00:00:00 ora_mark_racdb1
oracle   21481     1  0 18:14 ?        00:00:00 ora_d000_racdb1
oracle   21483     1  0 18:14 ?        00:00:00 ora_ocf0_racdb1
oracle   21485     1  0 18:14 ?        00:00:00 ora_s000_racdb1
oracle   21487     1  0 18:14 ?        00:00:00 oracle+ASM1_ocf0_racdb1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle   21492     1  3 18:14 ?        00:00:05 ora_lck0_racdb1
oracle   21499     1  0 18:14 ?        00:00:00 ora_rsmn_racdb1
oracle   21501     1  1 18:14 ?        00:00:01 oracleracdb1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle   21515     1  0 18:14 ?        00:00:00 ora_o000_racdb1
oracle   21517     1  0 18:14 ?        00:00:00 oracle+ASM1_o000_racdb1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle   21552     1  0 18:14 ?        00:00:00 ora_gtx0_racdb1
oracle   21556     1  0 18:14 ?        00:00:00 ora_rcbg_racdb1
oracle   21560     1  0 18:14 ?        00:00:00 ora_qmnc_racdb1
oracle   21583     1  0 18:14 ?        00:00:00 oracleracdb1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle   21595     1  3 18:14 ?        00:00:04 oracleracdb1 (LOCAL=NO)
oracle   21601     1  0 18:14 ?        00:00:00 ora_q000_racdb1
oracle   21603     1  0 18:14 ?        00:00:00 ora_q001_racdb1
oracle   21613     1  0 18:14 ?        00:00:00 ora_pz99_racdb1
oracle   21614     1  0 18:14 ?        00:00:00 oracleracdb1 (LOCAL=NO)
oracle   21616     1  0 18:14 ?        00:00:00 oracleracdb1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle   21697     1  0 18:15 ?        00:00:00 ora_cjq0_racdb1
oracle   21718     1  0 18:15 ?        00:00:00 ora_q002_racdb1
oracle   21817     1  0 18:15 ?        00:00:00 ora_smco_racdb1
oracle   21821     1  0 18:15 ?        00:00:00 ora_w000_racdb1
oracle   21827     1  0 18:15 ?        00:00:00 oracleracdb1 (LOCAL=NO)
oracle   21829     1  0 18:15 ?        00:00:00 oracleracdb1 (LOCAL=NO)
oracle   21831     1  0 18:15 ?        00:00:00 oracleracdb1 (LOCAL=NO)
oracle   21833     1  1 18:15 ?        00:00:00 oracleracdb1 (LOCAL=NO)
oracle   21847     1  0 18:16 ?        00:00:00 oracleracdb1 (LOCAL=NO)
oracle   22026     1  2 18:17 ?        00:00:00 ora_j000_racdb1
oracle   22028     1  0 18:17 ?        00:00:00 ora_j001_racdb1
oracle   22038 13512  0 18:17 pts/0    00:00:00 grep racdb1
[oracle@rac1 bin]$

Configure database using srvctl and check the status:--------------------------------------------------------------
[oracle@rac1 bin]$ ./srvctl config database -d racdb
Database unique name: racdb
Database name: racdb
Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +FRA/spfileracdb.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: racdb
Database instances: racdb1,racdb2
Disk Groups: FRA
Mount point paths:
Services:
Type: RAC
Database is administrator managed
[oracle@rac1 bin]$

Note: The database type is 'RAC' now.
[oracle@rac1 bin]$ ./srvctl status database -d racdb
Instance racdb1 is running on node rac1
Instance racdb2 is running on node rac2
[oracle@rac1 bin]$

On the second node:
--------------------------
[oracle@rac2 Desktop]$ ps -ef | grep racdb2
oracle    6174     1  0 18:14 ?        00:00:00 ora_pmon_racdb2
oracle    6176     1  0 18:14 ?        00:00:00 ora_psp0_racdb2
oracle    6178     1  1 18:14 ?        00:00:13 ora_vktm_racdb2
oracle    6182     1  0 18:14 ?        00:00:00 ora_gen0_racdb2
oracle    6184     1  0 18:14 ?        00:00:00 ora_diag_racdb2
oracle    6186     1  0 18:14 ?        00:00:00 ora_dbrm_racdb2
oracle    6188     1  0 18:14 ?        00:00:00 ora_ping_racdb2
oracle    6190     1  0 18:14 ?        00:00:00 ora_acms_racdb2
oracle    6192     1  0 18:14 ?        00:00:04 ora_dia0_racdb2
oracle    6194     1  0 18:14 ?        00:00:02 ora_lmon_racdb2
oracle    6196     1  0 18:14 ?        00:00:07 ora_lmd0_racdb2
oracle    6198     1  1 18:14 ?        00:00:10 ora_lms0_racdb2
oracle    6202     1  0 18:14 ?        00:00:00 ora_rms0_racdb2
oracle    6204     1  0 18:14 ?        00:00:00 ora_lmhb_racdb2
oracle    6206     1  0 18:14 ?        00:00:00 ora_mman_racdb2
oracle    6208     1  0 18:14 ?        00:00:00 ora_dbw0_racdb2
oracle    6210     1  0 18:14 ?        00:00:00 ora_lgwr_racdb2
oracle    6212     1  0 18:14 ?        00:00:00 ora_ckpt_racdb2
oracle    6214     1  0 18:14 ?        00:00:00 ora_smon_racdb2
oracle    6216     1  0 18:14 ?        00:00:00 ora_reco_racdb2
oracle    6218     1  0 18:14 ?        00:00:00 ora_rbal_racdb2
oracle    6220     1  0 18:14 ?        00:00:00 ora_asmb_racdb2
oracle    6222     1  0 18:14 ?        00:00:01 ora_mmon_racdb2
oracle    6224     1  0 18:14 ?        00:00:00 oracle+ASM2_asmb_racdb2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    6226     1  0 18:14 ?        00:00:00 ora_mmnl_racdb2
oracle    6228     1  0 18:14 ?        00:00:00 ora_d000_racdb2
oracle    6230     1  0 18:14 ?        00:00:00 ora_s000_racdb2
oracle    6232     1  0 18:14 ?        00:00:00 ora_mark_racdb2
oracle    6244     1  0 18:14 ?        00:00:04 ora_lck0_racdb2
oracle    6246     1  0 18:14 ?        00:00:00 ora_rsmn_racdb2
oracle    6248     1  0 18:14 ?        00:00:02 oracleracdb2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    6284     1  0 18:14 ?        00:00:00 ora_gtx0_racdb2
oracle    6286     1  0 18:14 ?        00:00:00 ora_rcbg_racdb2
oracle    6288     1  0 18:14 ?        00:00:00 ora_qmnc_racdb2
oracle    6296     1  0 18:14 ?        00:00:00 oracleracdb2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    6305     1  0 18:15 ?        00:00:00 ora_smco_racdb2
oracle    6322     1  0 18:15 ?        00:00:01 ora_cjq0_racdb2
oracle    6333     1  0 18:15 ?        00:00:00 ora_q000_racdb2
oracle    6335     1  0 18:15 ?        00:00:00 ora_q001_racdb2
oracle    6373     1  0 18:15 ?        00:00:01 ora_gcr0_racdb2
oracle    6441     1  0 18:19 ?        00:00:00 ora_w001_racdb2
oracle    6515     1  0 18:24 ?        00:00:00 ora_pz99_racdb2
oracle    6625  4680  0 18:30 pts/0    00:00:00 grep racdb2
[oracle@rac2 Desktop]$

Now the Single Instance database is successfully converted to RAC database.