Tuesday, June 13, 2006

To establish user equivalence (SSH) between two servers

To establish user equivalence:

1. Create the directories for SSH:

mkdir ~/.ssh
chmod 700 ~/.ssh


2. Generate the user's public and private keys as the oracle user on all nodes in turn. Do not enter a passphrase when prompted, just press 'ENTER' 3 times to accept all defaults.

ssh-keygen -t dsa
ssh-keygen -t rsa


3. Create the authorized_keys file using both public keys for all nodes, copy the file to all nodes, and change the permissions (do this from one node only).

ssh salmon1 cat ~/.ssh/*.pub >> ~/.ssh/authorized_keys
ssh salmon2 cat
~/.ssh/*.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys salmon1:.ssh/authorized_keys
scp ~/.ssh/authorized_keys salmon2:.ssh/authorized_keys
ssh salmon1 'chmod 600 ~/.ssh/authorized_keys'
ssh salmon2 'chmod 600 ~/.ssh/authorized_keys'


4. Visit each node in turn from every node (including itself). This ensure all nodes are added to each node's known_hosts file, and cluster operations can be run from any node in the cluster. This also serves to test the setup to ensure it is working.

[oracle@salmon1]$ ssh salmon1 'hostname ; date'
[oracle@salmon1]$ ssh salmon2 'hostname ; date'
[oracle@salmon2]$ ssh salmon1 'hostname ; date'
[oracle@salmon2]$ ssh salmon2 'hostname ; date'

Each of the above should return the date without prompting for a password.

Patching Oracle (9.2.0.6) to enable asynchronous I/O support w/RHEL

Patch Installation Instructions:
# --------------------------------
# To apply the patch, unzip the PSE container file:
#
# % unzip p3208258_9206_LINUX.zip
#
# Set your current directory to the directory where the patch
# is located:
#
# % cd 3208258
#
# Ensure that the directory containing the opatch script appears in
# your $PATH; then enter the following command:
#
# % opatch apply
#
# Patch Special Instructions:
# ---------------------------
# This patch is required to Enable asynchronous I/O support with Oracle running
# on RHEL 3. It should be applied only to 9.2.0.6.
#
# Instances under the ORACLE_HOME being patched do not need shutting
# down while opatch is run. opatch just copies libaio.so to locations in
# $ORACLE_HOME/lib/stubs.
#
# Once opatch has finished the following steps need to be completed. This
# does involve shutting down the Instances. Follow the steps below.
#
# 1. Ensure all instances in the ORACLE_HOME being patched are cleanly
# shutdown
#
# 2. cd to $ORACLE_HOME/rdbms/lib
#
# 3. Relink Oracle with asynchronous I/O enabled:
#
# % make -f ins_rdbms.mk async_on
#
# 4. Set the following init.ora parameters:
#
# set 'disk_asynch_io=true' # for raw devices and filesystem files
# set 'filesystemio_options=asynch' # for filesystem files
#
# 5. Restart All instances.

TRUNCATE privileges in Oracle

For future reference: The DROP ANY TABLE priv is required for the TRUNCATE option.

Error relinking Oracle RDBMS on Linux for Asynch IO support

Applies to:
Oracle Server - Enterprise Edition - Version: 9.2.0.4 to 9.2.0.7
Linux x86
Red Hat Advanced Server
Symptoms

While installing the 9.2.0.7.0 patchset on the linux x86 RedHat Server following error were encountered during the relink phase.

$ORACLE_HOME/install/make.log
------------------------------------------

/usr/lib/gcc/i386-redhat-linux/3.4.3/libgcc_s.so: undefined reference to `dl_iterate_phdr@GLIBC_2.2.4'
collect2: ld returned 1 exit status
make: *** [trcroute] Error 1

On checking
Note 303859.1 Requirements for Installing Oracle 9iR2 on RHEL 4
We find all the required packages has been already installed.

[root@incq038ad ~]# rpm -qa compat-oracle-rhel4
compat-oracle-rhel4-1.0-5

Cause

The problem is caused because System Administrator has installed the latest O/S updates from the RedHat.
And the Oracle patch "compat-oracle-rhel4-1.0-5" has been overwritten.

[root@incq038ad ~]# ls -l /usr/bin/gcc*
-rwxr-xr-x 2 root root 93120 May 17 01:36 /usr/bin/gcc
-rwxr-xr-x 2 root root 86364 Dec 1 2004 /usr/bin/gcc32
-rwxr-xr-x 1 root root 94784 May 17 01:36 /usr/bin/gcc.orig

[root@incq038ad ~]# rpm -qs compat-oracle-rhel4
normal /usr/bin/g++.tmp_1
normal /usr/bin/gcc.tmp_1
Solution

Please redownload the Patch 4198954 from Oracle Metalink.
And follow the instruction from the README to reapply the patch.

This time when you will reapply the patch you will receive the following error.

[root@incq035ad 4198954]# rpm -Uvh compat-oracle-rhel4-1.0-5.i386.rpm
Preparing... ########################################### [100%]
package compat-oracle-rhel4-1.0-5 is already installed

Please use the following command to reapply the patch.

[root@incq035ad 4198954]# rpm -Uvh --force compat-oracle-rhel4-1.0-5.i386.rpm
Preparing... ########################################### [100%]
1:compat-oracle-rhel4 ########################################### [100%]

[root@incq035ad bin]# ls -l /usr/bin/gcc*
-rwxr-xr-x 1 root root 914 Feb 23 2005 /usr/bin/gcc
-rwxr-xr-x 2 root root 84780 Dec 1 2004 /usr/bin/gcc32
-rwxr-xr-x 1 root root 93120 Sep 26 10:28 /usr/bin/gcc.orig

References
Note 303859.1 - Requirements for Installing Oracle 9iR2 on RHEL 4