Showing posts with label Oracle 11g. Show all posts
Showing posts with label Oracle 11g. Show all posts

Problem starting Cluster Services when installing 11gr2 on RHEL 7


Recently I installed Oracle RAC 11gr2 (11.2.0.4) on Red Hat Enterprise Linux 7 and ran into a problem running the root.sh script towards the end of the installation.

According to Oracle support, Red Hat Enterprise Linux 7 is supported by Oracle for 11gr2 (11.2.0.4). However, I found out the hard way that it will not successfully install without manual intervention. Here is what I did to solve the problem:

The Oracle installation went well until the point of running the root.sh script. At that point it was unable to start the Oracle Clusterware Stack:

How to turn off all scheduled jobs for a database

Sometimes it is useful to disable all scheduled jobs for a database (for example if you are running a performance benchmark.) You can disable each job manually and then enable them again but it is easier to set the allowed number of job processes to zero.
alter system set JOB_QUEUE_PROCESSES=0 scope=both;
Now check the setting:
show parameter JOB_QUEUE_PROCESSES
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes                  integer     0

Now no scheduled jobs will be run.

How to use udev rules instead of ASMLIB to configure LUNs for Oracle 11g ASM on Red Hat Enterprise Linux 6.4

Oracle ASM depends upon the names of each LUN device to determine which LUN belongs in a disk group. The problem with Linux is that these LUN device names may change upon reboot. In the past I have used ASMLIB from Oracle to help with this but I found that udev rules are actually easier to use and do not rely on third-party software to get the job done.

I will use the following LUNs for this example:

PurposeSizeDevice Name
DATA50 GB/dev/sddlmab
FRA30 GB/dev/sddlmac
TEMP20 GB/dev/sddlmad
REDO10 GB/dev/sddlmae

Udev rules can be used to give consistent names to devices when the server boots. In order to do this you need a unique identifier for each LUN that does not change on boot. This identifier is the SCSI ID. You can get this using the scsi_id command against each LUN device name:

Easier Passwordless SSH with ssh-copy-id

You may be familiar with the many steps involved in setting up Passwordless SSH for an Oracle cluster but there is a utility that simplifies the process considerably: ssh-copy-id.

First generate the public and private keys using ssh-keygen as usual:
oracle@dbserver-1$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_rsa):[Enter key]
Enter passphrase (empty for no passphrase): [Press enter key]
Enter same passphrase again: [Press enter key]
Your identification has been saved in /home/oracle/.ssh/id_rsa.
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9 oracle@dbserver-1
After that you can append the key values and set the proper permissions easily using ssh-copy-id:
oracle@dbserver-1$ ssh-copy-id -i ~/.ssh/id_rsa.pub dbserver-2
oracle@dbserver-2's password:
Now try logging into the machine, with "ssh 'dbserver-2'", and check in:

.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.
Now you are able to ssh into the remote server without a password:
oracle@dbserver-1$ ssh dbserver-2
Last login: Fri Aug 16 14:27:56 PDT 2013 from 192.168.1.2

oracle@dbserver-2$

Moving an Existing Oracle 11g Database to a New Server

Sometimes you have a database installed on external storage and you need to move it to a new server. If your Oracle binaries are installed locally then you can't just install a new set of binaries, mount the volumes containing the database files and start the database. This is because Oracle creates directory structures and files under the Oracle binary directories. This article is meant to help you make these changes to your binary installation so it will recognize the new database. It is assumed that the operating systems of the source and target servers are the same and that the version of Oracle on both servers is the same also.

Create Users and Groups
Create any Oracle users and groups on the new server and make sure that the user IDs and group IDs are the same as they are on the source server. You can verify this on UNIX by checking the /etc/passwd file for user IDs and /etc/group for group IDs.

Install Oracle Binaries
The first step is to install the Oracle binaries as normal. Take note of the location of $ORACLE_BASE and $ORACLE_HOME directories and the $ORACLE_SID and substitute them where needed below.

Clean the header of an ASM volume so it can be reused

As root run the dd command on the device, which will write zeroes to the first 40 MB, wiping the header.

Example:
dd if=/dev/zero of=c9t50060E8006CFCC11d9s0 bs=1048576 count=40



124861-15 patch prerequisite can be safely ignored when installing Oracle 11g on Solaris 10

When installing 11gr2 db on Solaris 10 the following error comes up:
OS Patch:124861-15 
- This is a prerequisite condition to test whether the patch "124861-15" is available on the system.
Expected Value
 : Patch 124861-15
Actual Value
 : Patch missing
 List of errors: 
 - 
PRVF-9809 : Proper OS Patch is not found on node "&ltNode Name>" 
[Expected = "124861-15" ; Found = "Patch missing"]  - Cause:  Required OS Patch is not applied.  
- Action:  Apply the required OS Patch. 


This can be safely ignored according to MOS doc id 969497.1:

Cause
OUI should only check for this optional patch while installing the Pro*C precompiler.

If Pro*C is not being installed, OUI should not check for this patch.

Support opened Bug 9214210 for this issue