When Oracle Database 11.2 Release 2 was released, DBAs and developers were exposed to the following 11.2.0.1 new features.  Most of the books that you see out there only focus on new features up to this point.  Almost each year, Oracle released a new Patchset.  Lot of folks are not aware that Oracle adds new features to each Patchset.   Even with each PSU (Patchset updates), little features here and there are introduced.  See below for the major enhancements that were released with the major Patchsets.

11.2.0.2 New Features

11.2.0.3 New Features


To work on VMware Fusion, set the following on the .vmx file; without this entry, the scsi_id command does not return any values by default.
disk.EnableUUID = “TRUE”

Retrieve and generate a unique SCSI identifier with the scsi_id command:

[root@rhel59dra ~]# /sbin/scsi_id -g -u -s /block/sdc

36000c29b80c12910ca4e6a95a1949d8b
[root@rhel59dra ~]# /sbin/scsi_id -g -u -s /block/sdd
36000c29344da4eab5b78409de3706424
[root@rhel59dra ~]# /sbin/scsi_id -g -u -s /block/sde
36000c291cd542d388fdee223fa90ca69
[root@rhel59dra ~]# /sbin/scsi_id -g -u -s /block/sdf
36000c296666187fd5223c0a34ca52f71

Add entries to a custom udev rules file

[root@rhel59dra ~]# cat /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s /block/$parent", RESULT=="36000c29b80c12910ca4e6a95a1949d8b", NAME="ASMOCR01", OWNER="oracle", GROUP="dba", MODE="0660"
KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s /block/$parent", RESULT=="36000c29344da4eab5b78409de3706424", NAME="ASMOCR02", OWNER="oracle", GROUP="dba", MODE="0660"
KERNEL=="sd?1", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s /block/$parent", RESULT=="36000c291cd542d388fdee223fa90ca69", NAME="ASMOCR03", OWNER="oracle", GROUP="dba", MODE="0660"
KERNEL=="sdf[0-9]", BUS=="scsi", PROGRAM=="/usr/bin/udevinfo -q name -p %p", RESULT=="%k", PROGRAM=="scsi_id -g -u -d /dev/$parent", RESULT=="36000c296666187fd5223c0a34ca52f71", NAME="ASMDATA0%n", OWNER="oracle", GROUP="dba", MODE="0660"

Note:
For disks with multiple partitions, the syntax in the udev rules are different.

KERNEL==”sd[c-z]1″, BUS==”scsi”, PROGRAM=”/sbin/scsi_id -g -u -s /block/%P”, RESULT==”3*”, NAME=”ASM%c”, OWNER=”oracle”, GROUP=”dba”, MODE=”0660″

To make sure that udev rules work:

[root@rhel59dra ~]# udevtest /block/sdc/sdc1
[root@rhel59dra ~]# udevtest /block/sdd/sdd1
[root@rhel59dra ~]# udevtest /block/sde/sde1
[root@rhel59dra ~]# udevtest /block/sdf/sdf1    
[root@rhel59dra ~]# udevtest /block/sdf/sdf2    
[root@rhel59dra ~]# udevtest /block/sdf/sdf3    
[root@rhel59dra ~]# udevtest /block/sdf/sdf4    

Restart udev rules:
RHEL 5: /sbin/udevcontrol reload_rules
RHEL 6: /sbin/udevadm control –reload-rules
/sbin/start_udev

Verify that proper devices are created

[root@rhel59dra ~]# ls -l /dev/ASM*

brw-rw---- 1 oracle dba 8, 81 May 15 23:45 /dev/ASMDATA01
brw-rw---- 1 oracle dba 8, 82 May 15 23:45 /dev/ASMDATA02
brw-rw---- 1 oracle dba 8, 83 May 15 23:45 /dev/ASMDATA03
brw-rw---- 1 oracle dba 8, 84 May 15 23:45 /dev/ASMDATA04
brw-rw---- 1 oracle dba 8, 33 May 15 23:45 /dev/ASMOCR01
brw-rw---- 1 oracle dba 8, 49 May 15 23:45 /dev/ASMOCR02
brw-rw---- 1 oracle dba 8, 65 May 15 23:45 /dev/ASMOCR03 

Written by Charles Kim, Oracle ACE Director


Here’s a simple stored procedure that I’ve been using for about a decade. From the application or from database triggers, if I want to record anything to the alert log, I can simply invoke this stored procedure and write error messages to the alert log.

Most of the DBAs have implemented alert log scanners and will send alert notifications if new ORA- error messages pop up in the alert log file.

create or replace procedure edba_write_alert

( p_message varchar2,
  p_oranum NUMBER default 20001)
is
begin
dbms_system.ksdddt;
dbms_system.ksdwrt(2, 'ORA-'||to_char(p_oranum)||': '||p_message);
end;
/
 
grant execute on edba_write_alert to public; 

Prior to 11.2, the following set of init.ora parameters were recommended:

*.db_cache_size=64m  
*.large_pool_size=12M
*.shared_pool_size=128M
*.processes=300

Going forward with 11.2 and higher, oracle recommends setting memory_target to approximately 1.5 GB. Also, you will notice that we are leveraging memory_target versus sga_target which insinuates that we are not using huge pages for ASM memory structures:

alter system set memory_target=1536m scope=spfile;

The equation for the process parameters is:

Processes=25 + (10 + max number of concurrent database file creations, and file extend operations possible) * n.

Where n is the number of databases connecting to ASM.

Posted by Charles Kim, Oracle ACE Director

Posted in ASM


Basic instructions for adding a new node to the RAC cluster:

1. First on the target node, create /u01/app/oraInventory (empty) and owned by oracle:dba
2. On the target node, make sure /u01/app/11.2.0 directory is created and empty. This directory needs to be owned as: oracle:dba
3. Run addnode.ksh (shown below) on an existing RAC node with parameters replaced as oracle
4. As instructed, execute root.sh on target node as root

Here’s all the caveats:
1. It is buggy on the cluvfy side for 11.2.0.3. It had bugs in 11.2.0.2 also. I recall we had to set IGNORE_PREADDNODE_CHECKS to Y back then, and it looks like we still have to.
2. /u01/app/oraInventory has to be pre-created and owned by oracle:dba and has to be completely empty
3. /u01/app/11.2.0 needs to be owned by oracle:dba. The /u01/app/11.2.0/grid directory cannot exist … even as an empty directory. The addnode.sh script attempts to do a “mkdir grid” as oracle, and if it fails, it dies.
4. It died on me twice at “crsctl start listener -n “target_node” … have to create default listener first
5. I did not leverage the -noCopy method. This working example will copy the Grid Home from source RAC node to the new RAC node via scp/ssh. I don’t think it is a big deal … added about 5 minutes to the overall time (see below).

 
Copying to remote nodes (Saturday, May 4, 2013 8:52:50 PM CDT)  ............................................................................................... 96% Done.  
Home copied to new nodes  Saving inventory on nodes (Saturday, May 4, 2013 8:56:03 PM CDT)  

Here’s the contents to the add node shell script:

+ASM1 > cat addnode.ksh
export ORACLE_HOME=/u01/app/11.2.0/grid
export PATH=$ORACLE_HOME/bin:$PATH
cd $ORACLE_HOME/oui/bin
 
export IGNORE_PREADDNODE_CHECKS=Y
 
./addNode.sh -silent "CLUSTER_NEW_NODES={rhel59drb}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={rhel59drb-vip}" "CLUSTER_NEW_PRIVATE_NODE_NAMES={rhel59drb-priv}"
 

Executing the addnode.ksh shell script:

+ASM1 > ./addnode.ksh
Starting Oracle Universal Installer...
 
Checking swap space: must be greater than 500 MB.   Actual 3186 MB    Passed
Oracle Universal Installer, Version 11.2.0.3.0 Production
Copyright (C) 1999, 2011, Oracle. All rights reserved.
 
 
Performing tests to see whether nodes rhel59drb are available
............................................................... 100% Done.
 
.
-----------------------------------------------------------------------------
Cluster Node Addition Summary
Global Settings
   Source: /u01/app/11.2.0/grid
   New Nodes
Space Requirements
   New Nodes
      rhel59drb
         /: Required 6.47GB : Available 7.27GB
Installed Products
   Product Names
      Oracle Grid Infrastructure 11.2.0.3.0
      Sun JDK 1.5.0.30.03
      Installer SDK Component 11.2.0.3.0
      Oracle One-Off Patch Installer 11.2.0.1.7
      Oracle Universal Installer 11.2.0.3.0
      Oracle USM Deconfiguration 11.2.0.3.0
      Oracle Configuration Manager Deconfiguration 10.3.1.0.0
      Enterprise Manager Common Core Files 10.2.0.4.4
      Oracle DBCA Deconfiguration 11.2.0.3.0
      Oracle RAC Deconfiguration 11.2.0.3.0
      Oracle Quality of Service Management (Server) 11.2.0.3.0
      Installation Plugin Files 11.2.0.3.0
      Universal Storage Manager Files 11.2.0.3.0
      Oracle Text Required Support Files 11.2.0.3.0
      Automatic Storage Management Assistant 11.2.0.3.0
      Oracle Database 11g Multimedia Files 11.2.0.3.0
      Oracle Multimedia Java Advanced Imaging 11.2.0.3.0
      Oracle Globalization Support 11.2.0.3.0
      Oracle Multimedia Locator RDBMS Files 11.2.0.3.0
      Oracle Core Required Support Files 11.2.0.3.0
      Bali Share 1.1.18.0.0
      Oracle Database Deconfiguration 11.2.0.3.0
      Oracle Quality of Service Management (Client) 11.2.0.3.0
      Expat libraries 2.0.1.0.1
      Oracle Containers for Java 11.2.0.3.0
      Perl Modules 5.10.0.0.1
      Secure Socket Layer 11.2.0.3.0
      Oracle JDBC/OCI Instant Client 11.2.0.3.0
      Oracle Multimedia Client Option 11.2.0.3.0
      LDAP Required Support Files 11.2.0.3.0
      Character Set Migration Utility 11.2.0.3.0
      Perl Interpreter 5.10.0.0.2
      PL/SQL Embedded Gateway 11.2.0.3.0
      OLAP SQL Scripts 11.2.0.3.0
      Database SQL Scripts 11.2.0.3.0
      Oracle Extended Windowing Toolkit 3.4.47.0.0
      SSL Required Support Files for InstantClient 11.2.0.3.0
      SQL*Plus Files for Instant Client 11.2.0.3.0
      Oracle Net Required Support Files 11.2.0.3.0
      Oracle Database User Interface 2.2.13.0.0
      RDBMS Required Support Files for Instant Client 11.2.0.3.0
      RDBMS Required Support Files Runtime 11.2.0.3.0
      XML Parser for Java 11.2.0.3.0
      Oracle Security Developer Tools 11.2.0.3.0
      Oracle Wallet Manager 11.2.0.3.0
      Enterprise Manager plugin Common Files 11.2.0.3.0
      Platform Required Support Files 11.2.0.3.0
      Oracle JFC Extended Windowing Toolkit 4.2.36.0.0
      RDBMS Required Support Files 11.2.0.3.0
      Oracle Ice Browser 5.2.3.6.0
      Oracle Help For Java 4.2.9.0.0
      Enterprise Manager Common Files 10.2.0.4.3
      Deinstallation Tool 11.2.0.3.0
      Oracle Java Client 11.2.0.3.0
      Cluster Verification Utility Files 11.2.0.3.0
      Oracle Notification Service (eONS) 11.2.0.3.0
      Oracle LDAP administration 11.2.0.3.0
      Cluster Verification Utility Common Files 11.2.0.3.0
      Oracle Clusterware RDBMS Files 11.2.0.3.0
      Oracle Locale Builder 11.2.0.3.0
      Oracle Globalization Support 11.2.0.3.0
      Buildtools Common Files 11.2.0.3.0
      Oracle RAC Required Support Files-HAS 11.2.0.3.0
      SQL*Plus Required Support Files 11.2.0.3.0
      XDK Required Support Files 11.2.0.3.0
      Agent Required Support Files 10.2.0.4.3
      Parser Generator Required Support Files 11.2.0.3.0
      Precompiler Required Support Files 11.2.0.3.0
      Installation Common Files 11.2.0.3.0
      Required Support Files 11.2.0.3.0
      Oracle JDBC/THIN Interfaces 11.2.0.3.0
      Oracle Multimedia Locator 11.2.0.3.0
      Oracle Multimedia 11.2.0.3.0
      HAS Common Files 11.2.0.3.0
      Assistant Common Files 11.2.0.3.0
      PL/SQL 11.2.0.3.0
      HAS Files for DB 11.2.0.3.0
      Oracle Recovery Manager 11.2.0.3.0
      Oracle Database Utilities 11.2.0.3.0
      Oracle Notification Service 11.2.0.3.0
      SQL*Plus 11.2.0.3.0
      Oracle Netca Client 11.2.0.3.0
      Oracle Net 11.2.0.3.0
      Oracle JVM 11.2.0.3.0
      Oracle Internet Directory Client 11.2.0.3.0
      Oracle Net Listener 11.2.0.3.0
      Cluster Ready Services Files 11.2.0.3.0
      Oracle Database 11g 11.2.0.3.0
-----------------------------------------------------------------------------
 
 
Instantiating scripts for add node (Saturday, May 4, 2013 8:52:48 PM CDT)
.                                                                 1% Done.
Instantiation of add node scripts complete
 
Copying to remote nodes (Saturday, May 4, 2013 8:52:50 PM CDT)
...............................................................................................                                 96% Done.
Home copied to new nodes
 
Saving inventory on nodes (Saturday, May 4, 2013 8:56:03 PM CDT)
.                                                               100% Done.
Save inventory complete
WARNING:
The following configuration scripts need to be executed as the "root" user in each new cluster node. Each script in the list below is followed by a list of nodes.
/u01/app/11.2.0/grid/root.sh #On nodes rhel59drb
To execute the configuration scripts:
    1. Open a terminal window
    2. Log in as "root"
    3. Run the scripts in each cluster node
   
The Cluster Node Addition of /u01/app/11.2.0/grid was successful.
Please check '/tmp/silentInstall.log' for more details.

On the Target Node, execute root.sh:

[root@rhel59drb db_backup]# /u01/app/11.2.0/grid/root.sh
Check /u01/app/11.2.0/grid/install/root_rhel59drb_2013-05-04_21-18-28.log for the output of root script
 
[root@rhel59drb db_backup]# tail -f /u01/app/11.2.0/grid/install/root_rhel59drb_2013-05-04_21-18-28.log
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/11.2.0/grid
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Relinking oracle with rac_on option
Using configuration parameter file: /u01/app/11.2.0/grid/crs/install/crsconfig_params
User ignored Prerequisites during installation
OLR initialization - successful
Adding Clusterware entries to inittab
CRS-4402: The CSS daemon was started in exclusive mode but found an active CSS daemon on node rhel59dra, number 1, and is terminating
An active cluster was found during exclusive startup, restarting to join the cluster
clscfg: EXISTING configuration version 5 detected.
clscfg: version 5 is 11g Release 2.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Preparing packages for installation...
cvuqdisk-1.0.9-1
Configure Oracle Grid Infrastructure for a Cluster ... succeeded
 
------------------
 
+ASM1 > crs_stat -t -v
HA Resource                                        Target     State            
-----------                                        ------     -----            
ora.DATA.dg                                        ONLINE     ONLINE on rhel59dra
ora.FRA.dg                                         ONLINE     ONLINE on rhel59dra
ora.LISTENER.lsnr                                  ONLINE     ONLINE on rhel59dra
ora.LISTENER_SCAN1.lsnr                            ONLINE     ONLINE on rhel59drb
ora.LISTENER_SCAN2.lsnr                            ONLINE     ONLINE on rhel59dra
ora.LISTENER_SCAN3.lsnr                            ONLINE     ONLINE on rhel59dra
ora.LSNR_GTRRAC.lsnr                               ONLINE     ONLINE on rhel59dra
ora.OCR_VOTE.dg                                    ONLINE     ONLINE on rhel59dra
ora.asm                                            ONLINE     ONLINE on rhel59dra
ora.cvu                                            ONLINE     ONLINE on rhel59dra
ora.dtccrac.db                                     ONLINE     ONLINE on rhel59dra
ora.gsd                                            OFFLINE    OFFLINE          
ora.net1.network                                   ONLINE     ONLINE on rhel59dra
ora.oc4j                                           ONLINE     ONLINE on rhel59dra
ora.ons                                            ONLINE     ONLINE on rhel59dra
ora.registry.acfs                                  ONLINE     ONLINE on rhel59dra
ora.rhel59dra.ASM1.asm                             ONLINE     ONLINE on rhel59dra
ora.rhel59dra.LISTENER_RHEL59DRA.lsnr              ONLINE     ONLINE on rhel59dra
ora.rhel59dra.LSNR_GTRRAC_RHEL59DRA.lsnr           ONLINE     ONLINE on rhel59dra
ora.rhel59dra.gsd                                  OFFLINE    OFFLINE          
ora.rhel59dra.ons                                  ONLINE     ONLINE on rhel59dra
ora.rhel59dra.vip                                  ONLINE     ONLINE on rhel59dra
ora.rhel59drb.ASM2.asm                             ONLINE     ONLINE on rhel59drb
ora.rhel59drb.LISTENER_RHEL59DRB.lsnr              ONLINE     ONLINE on rhel59drb
ora.rhel59drb.LSNR_GTRRAC_RHEL59DRB.lsnr           ONLINE     ONLINE on rhel59drb
ora.rhel59drb.gsd                                  OFFLINE    OFFLINE          
ora.rhel59drb.ons                                  ONLINE     ONLINE on rhel59drb
ora.rhel59drb.vip                                  ONLINE     ONLINE on rhel59drb
ora.scan1.vip                                      ONLINE     ONLINE on rhel59drb
ora.scan2.vip                                      ONLINE     ONLINE on rhel59dra
ora.scan3.vip                                      ONLINE     ONLINE on rhel59dra 
Posted in RAC