Vishal Gupta's Blog

Archive for the ‘Oracle’ Category

Oracle related blogs

Comma Separated Multiple tnsalias For Single Entry

Posted by Vishal Gupta on Jul 5, 2012

I learned something new today, so thought i would share on my blog here. Did you know that you can specify multiple tnsalias (or net service name link , as Oracle documentation likes to call it) for a single entry. Its not documented as is the case with many cool hidden features. I searched Oracle documentation and Oracle Support site, but could not find any reference to this feature. Google gave this link to Quest’s toad bug with search string of “comma separated tns alias”.

Usually tns entry is made in tnsnames.ora file as per below syntax (in its simplest form).

net_service_name=
  (DESCRIPTION=
     (ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1521))
     (CONNECT_DATA=
        (SERVICE_NAME=service_name)
     )
  )

You can also specify multiple net_service_name separated by command in a single entry. There may or may not be a space between comma and alias.

alias1,alias2, alias3 =
  (DESCRIPTION=
     (ADDRESS=(PROTOCOL=tcp)(HOST=host1)(PORT=1521))
     (CONNECT_DATA=
        (SERVICE_NAME=service_name)
     )
  )

I have checked that above syntax works in versions from 9.2.x to 11.2.x. I did not have earlier version handy to verify this. Given below is my TNS entry.

[oracle@linux1:11203] cat $TNS_ADMIN/tnsnames.ora
# tnsnames.ora Network Configuration File: /opt/oracle/tns_admin/tnsnames.ora
# Generated by Oracle configuration tools.

alias1,alias2,alias3 = (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=11203))(ADDRESS=(PROTOCOL=TCP)(HOST=11203.vishalgupta.com)(PORT=1521)))
alias4,alias5,alias6 =
(DESCRIPTION =
 (ADDRESS= (PROTOCOL=TCP)(HOST=11203.vishalgupta.com)(PORT=1521))
 (CONNECT_DATA=
 (SERVICE_NAME=11203)
 )
)
Lets test to see if it works.
for i in `cat /opt/oracle/bin/dbs.txt `;
do
      echo "############## $i #######################";
      export ORACLE_SID=$i;
      export ORAENV_ASK=NO
      . oraenv ;
      $ORACLE_HOME/bin/tnsping alias2;
done

############## 9204 #######################

TNS Ping Utility for Linux: Version 9.2.0.4.0 - Production on 04-JUL-2012 02:10:41

Copyright (c) 1997 Oracle Corporation. All rights reserved.

Used parameter files:
/opt/oracle/tns_admin/sqlnet.ora

############## 10103 #######################

The Oracle base for ORACLE_HOME=/opt/oracle/product/rhel4/database/10.1.0.3/home is /opt/oracle/product/rhel4/database/11.2.0.3

TNS Ping Utility for Linux: Version 10.1.0.3.0 - Production on 04-JUL-2012 02:10:41

Copyright (c) 1997, 2003, Oracle. All rights reserved.

Used parameter files:
/opt/oracle/tns_admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=11203))(ADDRESS=(PROTOCOL=TCP)(HOST=11203.vishalgupta.com)(PORT=1521)))
OK (0 msec)

############## 10201 #######################

TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 04-JUL-2012 02:10:41

Copyright (c) 1997, 2005, Oracle. All rights reserved.

Used parameter files:
/opt/oracle/tns_admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=11203))(ADDRESS=(PROTOCOL=TCP)(HOST=11203.vishalgupta.com)(PORT=1521)))
OK (0 msec)

############## 11106 #######################
TNS Ping Utility for Linux: Version 11.1.0.6.0 - Production on 04-JUL-2012 02:28:48

Copyright (c) 1997, 2007, Oracle. All rights reserved.

Used parameter files:
/opt/oracle/tns_admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=11203))(ADDRESS=(PROTOCOL=TCP)(HOST=11203.vishalgupta.com)(PORT=1521)))
OK (0 msec)

############## 11201 #######################

TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 04-JUL-2012 02:28:48

Copyright (c) 1997, 2009, Oracle. All rights reserved.

Used parameter files:
/opt/oracle/tns_admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=11203))(ADDRESS=(PROTOCOL=TCP)(HOST=11203.vishalgupta.com)(PORT=1521)))
OK (0 msec)

Its working, cool !!!

Advertisement

Posted in Oracle, TNS | 12 Comments »

SQL*Plus Variable defined by default

Posted by Vishal Gupta on May 20, 2012

Earlier i used to maintain different sql script files for one function for every database version. As some of the older release dont have some of columns available in new release’s view/tables. I started updating my scripts to maintain a single script using Tanel Poder’s  snapper script’s idea of using SQL*Plus variables to automatically comment out the version specific code in the script (if its not applicable for logged in database version), so that it does not generate the syntax error.

So initialize the variables (_IF_ORA_9iR2_OR_HIGHER, _IF_ORA_10gR1_OR_HIGHER etc) with single line comment “–” and if version of logged in database is applicable, then remove the “–” from its value and set relevant variable to empty string (“”). I was doing this via my header.sql script which is called in every script. Later i moved that bit of code to login.sql, as i wanted it execute only during initial database connection instead of during every execution of every script.

For example, now i can use the following SELECT statement even on 9i databases where SQL_ID column does not exists in v$session view.

                          SELECT sid
&_IF_ORA_10gR1_OR_HIGHER       , sql_id
                          from v$session

I used to get the version of logged in database using a query from v$version and parsing the output. I recently noticed that SQL*Plus by default sets given below variables in every sqlplus session at logon time. This also includes the _O_RELEASE which has the database version in it. Now i can make use of this variable, instead of querying from v$version and parsing the output myself.

In 9.2.x.x release

  • _CONNECT_IDENTIFIER   – This is set to the value used to connect after @ in the connection string (user/password@connection_identifer). So if you are using TNS_ALIAS, it will be set to the alias. If you are using EZConnect format string, it will be set to that.
  • _SQLPLUS_RELEASE – This is the sqlplus version used to connect to the database.
  • _EDITOR
  • _O_VERSION – Oracle database version banner
  • _O_RELEASE – Oracle Release version.

From 10gR1 onwards (all above and following)

  • _DATE – Today’s date
  • _USER – User connected as.
  • _PRIVILEGE – Privilege being used by current session (e.g SYSDBA etc)

See the output below from various version of SQL*Plus connection to their respective version databases. If sqlplus and database version are different, you will get the different values for _SQPLUS_RELEASE and _O_RELEASE variables, but you get the idea.

################# <strong>9204</strong> ########################
DEFINE _CONNECT_IDENTIFIER = "9204" (CHAR)
DEFINE _SQLPLUS_RELEASE = "902000400" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production" (CHAR)
DEFINE _O_RELEASE = "902000400" (CHAR)

################# 9206 ########################
DEFINE _CONNECT_IDENTIFIER = "9206" (CHAR)
DEFINE _SQLPLUS_RELEASE = "902000600" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.6.0 - Production" (CHAR)
DEFINE _O_RELEASE = "902000600" (CHAR)

################# 9207 ########################
DEFINE _CONNECT_IDENTIFIER = "9207" (CHAR)
DEFINE _SQLPLUS_RELEASE = "902000700" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle9i Enterprise Edition Release 9.2.0.7.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.7.0 - Production" (CHAR)
DEFINE _O_RELEASE = "902000700" (CHAR)

################# 9208 ########################
DEFINE _CONNECT_IDENTIFIER = "9208" (CHAR)
DEFINE _SQLPLUS_RELEASE = "902000800" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production" (CHAR)
DEFINE _O_RELEASE = "902000800" (CHAR)

################# 10103 ########################
DEFINE _DATE = "17-MAY-12" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "10103" (CHAR)
DEFINE _USER = "SYS" (CHAR)
DEFINE _PRIVILEGE = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1001000300" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options" (CHAR)
DEFINE _O_RELEASE = "1001000300" (CHAR)</pre>

################# 10104 ########################
DEFINE _DATE = "17-MAY-12" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "10104" (CHAR)
DEFINE _USER = "SYS" (CHAR)
DEFINE _PRIVILEGE = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1001000400" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Enterprise Edition Release 10.1.0.4.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options" (CHAR)
DEFINE _O_RELEASE = "1001000400" (CHAR)

################# 10105 ########################
DEFINE _DATE = "17-MAY-12" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "10105" (CHAR)
DEFINE _USER = "SYS" (CHAR)
DEFINE _PRIVILEGE = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1001000500" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Enterprise Edition Release 10.1.0.5.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options" (CHAR)
DEFINE _O_RELEASE = "1001000500" (CHAR)

################# 10201 ########################
DEFINE _DATE = "17-MAY-12" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "10201" (CHAR)
DEFINE _USER = "SYS" (CHAR)
DEFINE _PRIVILEGE = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1002000100" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options" (CHAR)
DEFINE _O_RELEASE = "1002000100" (CHAR)

################# 10202 ########################
DEFINE _DATE = "17-MAY-12" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "10202" (CHAR)
DEFINE _USER = "SYS" (CHAR)
DEFINE _PRIVILEGE = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1002000200" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options" (CHAR)
DEFINE _O_RELEASE = "1002000200" (CHAR)

################# 10203 ########################
DEFINE _DATE = "17-MAY-12" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "10203" (CHAR)
DEFINE _USER = "SYS" (CHAR)
DEFINE _PRIVILEGE = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1002000300" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options" (CHAR)
DEFINE _O_RELEASE = "1002000300" (CHAR)

################# 10204 ########################
DEFINE _DATE = "17-MAY-12" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "10204" (CHAR)
DEFINE _USER = "SYS" (CHAR)
DEFINE _PRIVILEGE = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1002000400" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR)
DEFINE _O_RELEASE = "1002000400" (CHAR)

################# 10205 ########################
DEFINE _DATE = "17-MAY-12" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "10205" (CHAR)
DEFINE _USER = "SYS" (CHAR)
DEFINE _PRIVILEGE = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1002000500" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR)
DEFINE _O_RELEASE = "1002000500" (CHAR)

################# 11106 ########################
DEFINE _DATE = "17-MAY-12" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "11106" (CHAR)
DEFINE _USER = "SYS" (CHAR)
DEFINE _PRIVILEGE = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1101000600" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR)
DEFINE _O_RELEASE = "1101000600" (CHAR)

################# 11107 ########################
DEFINE _DATE = "17-MAY-12" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "11107" (CHAR)
DEFINE _USER = "SYS" (CHAR)
DEFINE _PRIVILEGE = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1101000700" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR)
DEFINE _O_RELEASE = "1101000700" (CHAR)

################# 11201 ########################
DEFINE _DATE = "17-MAY-12" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "11201" (CHAR)
DEFINE _USER = "SYS" (CHAR)
DEFINE _PRIVILEGE = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1102000100" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR)
DEFINE _O_RELEASE = "1102000100" (CHAR)

################# 11202 ########################
DEFINE _DATE = "17-MAY-12" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "11202" (CHAR)
DEFINE _USER = "SYS" (CHAR)
DEFINE _PRIVILEGE = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1102000200" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options" (CHAR)
DEFINE _O_RELEASE = "1102000200" (CHAR)

################# 11203 ########################
DEFINE _DATE = "17-MAY-12" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "11203" (CHAR)
DEFINE _USER = "SYS" (CHAR)
DEFINE _PRIVILEGE = "AS SYSDBA" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1102000300" (CHAR)
DEFINE _EDITOR = "ed" (CHAR)
DEFINE _O_VERSION = "Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options" (CHAR)
DEFINE _O_RELEASE = "1102000300" (CHAR)

Hope someone finds this useful.

Posted in Oracle, SQL*Plus, Version Comparision | 5 Comments »

Exadata 11.2.2.4.0 – Flash Card firmware Issue

Posted by Vishal Gupta on Nov 6, 2011

After patching Exadata cell to 11.2.2.4.0, on running CheckHWnFwProfile or Exachk it reports the firmware version for Flash Card is not same as expected.


# /opt/oracle.SupportTools/CheckHWnFWProfile
[WARNING] The hardware and firmware are not supported. See details below

[PCISlot:HBA:LSIModel:LSIhw:MPThw:LSIfw:MPTBios:DOM:OSDevice:DOMMake:DOMModel:DOMfw:CountAuraCountDOM]
Requires:
   AllSlots_AllHBAs SAS1068E B3orC0 105 011b5c00 06.26.00.00 AllDOMs_NotApplicable MARVELL SD88SA02 D20Y 4_16
Found:
   AllSlots_AllHBAs SAS1068E B3orC0 105 011b5b00 06.26.00.00 AllDOMs_NotApplicable MARVELL SD88SA02 D20Y 4_16

[WARNING] The hardware and firmware are not supported. See details above

CheckHWnFWProfile script is expecting firmware version to be 011b5c00 where it is found to be 011b5b00, so it reports the check failure. This is due to BUG 13088963. All flash card firmware versions are not being upgraded due to bug in CheckHWnFwProfile  script, which is also responsible for firmware upgrade on the cells.

MOS Note 1372320.1  – Problem : [Warning] The Hardware And Firmware Are Not Supported on 11.2.2.4

There is a patch 13089037 available for this problem. This patch also fixes following bugs.

This update will:

  • Update ibdiagtools to latest revision (Bug 13089037).
    •  STORAGE EXPANSION RACK SUPPORT AMISS IN IBDIAGTOOLS IN 11.2.2.4.0
  • Correct the flash firmware update regression (Bug 13088963).
    •  CHECKHWNFWPROFILE HARDWARE/FIRMWARE NOT SUPPORTED REQUIRES LSIFW 011B5C00
  • Correct the missing support for X4800 for special bios update package (Bug 13089050)
    •  FLASH_BIOS PACKAGE DOES NOT WORK FOR X4800* MODELS

Posted in Exadata Patching, Oracle, Oracle Exadata | Leave a Comment »

Exadata 11.2.2.4.0 – Critical Bug

Posted by Vishal Gupta on Nov 5, 2011

Following issue has been identified in Exadata Storage Server software patch 11.2.2.4.0. It only affects compute node minimal pack on X2-2 and X2-8 racks sporting a 10GigE network ports. It does not affect the V1 or V2 models as they dont have 10GigE network ports. For more information please refer to MOS Note 1348647.1

Critical Issues Discovered Post-Release

1) Bug 13083530 – 10Gb Ethernet network interfaces shut down unexpectedly.

For environments configured with 10GigE Ethernet for the database server hosts running Oracle Linux, do NOT apply the 11.2.2.4 minimal pack to the database server hosts. A loss of connectivity problem for 10GigE was reported and confirmed. An update on this will be available soon and will be published as an update to the patch README and the corresponding patch MOS Note. Customers who are not already running with 11.2.2.3.5 on their compute nodes are recommended to applying the 11.2.2.3.5 minimal pack (available in Patch 12849110) until further updates are available.

Apply the 11.2.2.4 cell patch as usual. The cells do not use 10GigE. It is supported to run with the latest 11.2.2.4 version on the cells together with an earlier minimal pack release.

 

Posted in Exadata Patching, Oracle, Oracle Exadata | 2 Comments »

Exadata Storage Server 11.2.2.4.0 Patching

Posted by Vishal Gupta on Oct 22, 2011


Non-interactive shell issue for Database Host minimal pack 

Recently i set about patching Exadata Storage Server software to from 11.2.2.x.x to 11.2.2.4.0, which is the latest patch from Oracle Corporation. I was testing and documenting the process for one of my client and wanted to automate this as much as possible, as in past people actually executing the commands had missed running few commands on certain nodes. As with any Exadata storage server software patch, there is cell node component of patch which is patched using patchmgr either in rolling or non-rolling fashion. And there is database host component, called database minimal pack. Release note of 11.2.2.4.0 asks the install the patch (after running some prerequisites) using ./install.sh -force option. I was taking the approach of install patch on one cell node and if successful, then apply on rest of the cell nodes in parallel. Similarly apply the database minimal pack patch on one compute node, then if successful, apply it on rest of the compute nodes in parallel. And what could be more convenient to run command in parallel on many nodes than dcli command. So i programatically created an dbs_group_withoutfirstnode file with all the compute nodes apart from first compute node. Then installed the patch on first compute node, which was successful. After that using dcli i transferred the patch to other nodes, extracted its contents in parallel. Then using dcli command ran the (cd <patch_directory>; ./install.sh -force) command on rest of the compute nodes. But guess what, compute node patch does not like the running via dcli. DCLI simply runs the command on a remote host using “ssh command” method in simple terms. Though its slightly more complex. Effect of running command via dcli is that, all command are run in non-interactive session i.e. without tty terminal or standard output/error. It means that if your script is not redirecting all standard output and standard error messages to a file, then it will exit with a non-zero (i.e unsuccessful) exit code. install.sh script gives a call to dopatch.sh, which in turn calls a series of functions listed. As part of one of the function, it tries to set update the image version and adds it to image history. In this function, it tries to output the error messages explicitly to /dev/stderr device. As a result of this, if compute node patch is run via some automated script, it exits at this step and fails to run any further steps which include firmware update to ILOM and BIOS upgrade etc.

Now after this has happened, imageinfo command will show the new version, but there will be empty status and activation date. imagehistory will also not show the new image version. If you try to rollback the patch using ./install.sh -rollback-ib command, it will complain that version is not valid, as it is not set with success status. So if you try run /opt/oracle.cellos/imagestatus -set success , then it will complain. But you can force it by using /opt/oracle.cellos/imagestatus -set success -force db_patch. After this you will be able to use the rollback. And then you can install the patch again using an interactive shell.

grub.conf Symoblic link Issue

I also noticed that symbolic link /etc/grub.conf which points to /boot/grub/grub.conf is missing on OEL5.5 compute/cell nodes. OEL5.5 is installed starting with 11.2.1.3.1 cell image.

Suggestions for Oracle Exadata Development

Exadata development team could write their upgrade/patching so that they are compatible with dcli, it allows to automated the patch and save lot of hassle.

Summary

– Don’t use non-interactive shell or dcli to run compute node patching commands.
– Check your /etc/grub.conf symbolic link exists which needs to point to /boot/grub/grub.conf.

Hopefully this will save some hassle to someone out there patching production Exadata’s.

[Update, 05-Nov-2011]

One can redirect all the standard output and standard error to a file, then it will be possibile to run install.sh to install compute minimal patch via dcli.

cd /opt/oracle.Support/onecommand/
dcli -l root -g dbs_group "mkdir -p /opt/oracle.Support/onecommand/patches/patch_11.2.2.4.0.110929"

# Transfer the compute node minimal patch file
dcli -l root -g dbs_group -d /opt/oracle.Support/onecommand/patches/patch_11.2.2.4.0.110929/ -f /opt/oracle.Support/onecommand/patches/patch_11.2.2.4.0.110929/db_patch_11.2.2.4.0.110929.zip

# Unzip the compute node patch file
dcli -l root -g dbs_group  "(cd /opt/oracle.Support/onecommand/patches/patch_11.2.2.4.0.110929/; unzip -o db_patch_11.2.2.4.0.110929.zip)"

# Run the compute node patch
dcli -l root -g dbs_group "(cd /opt/oracle.Support/onecommand/patches/patch_11.2.2.4.0.110929/db_patch_11.2.2.4.0.110929 ; ./install.sh >> install.sh.log 2>&1)"

Cheers,
Vishal Gupta

Posted in Exadata Patching, Oracle, Oracle Exadata | Leave a Comment »

 
%d bloggers like this: