Total Pageviews

Installation of Oracle Database 11g Release 2 on RHEL 5

Pre-Installation Configurations

-- Check Physical RAM.

# grep MemTotal /proc/meminfo

MemTotal:      2075424 kB

/*

 We need at least 1GB of physical RAM.

 In my case I have 2GB.

*/

 -- Check Swap Space.

# grep SwapTotal /proc/meminfo

SwapTotal:     3148732 kB

 /*

 RAM between 1GB and 2GB then Swap = 1.5 times the size of RAM

 RAM between 2GB and 16GB then Swap = equal to the size of RAM

 RAM more than 16GB then Swap Size = 16GB

 Since my RAM is 2GB, so I have 3GB of Swap Size.

*/

Step - 1

If you are working on MackBook then connect server from MackBook Terminal by the following command.

muhammadkhalil@Muhammads-MacBook-Pro ~ % ssh root@192.168.0.240

if you find Host key verification failed working in SSH then fix it by following.

  1. First, identify the host key entry that is causing the error. SSH will tell you the line number and the fingerprint of the host key that does not match. For example, if you try to connect to a server with the IP address 192.168.1.100, you may see a message like this:


In this case, the host key entry that is causing the error is on line 3 of the known_hosts file and has the fingerprint SHA256:uQa5wz5y7xRl9yGt7xqzXQ.
  1. Remove the host key entry from the known_hosts file. Use any text editor or command-line tool to edit the known_hosts file and delete the line that contains the offending host key. For example, you can use the `sed` command to delete line 3 of the known_hosts file like this:

sed -i '3d' /home/user/.ssh/known_hosts

Alternatively, you can use the `ssh-keygen` command to delete the host key entry by specifying the hostname or IP address of the server. Here is the command to do that:

ssh-keygen -R 192.168.1.100

This command will remove all host key entries that match the given hostname or IP address from the known_hosts file.

  1. Connect to the server again and accept the new host key. After you have removed the old host key entry from the known_hosts file, you can try to connect to the server again. SSH will prompt you to confirm the new host key and add it to the known_hosts file. You may see a message like this:

Type yes or the fingerprint to accept the new host key and continue connecting. SSH will add the new host key to the known_hosts file and will not ask you again for the same server.


As root user Make sure that there is an entry in /etc/hosts file for your machine like this

[root@localhost oracle]# vi /etc/hosts

[IP-address]  [fully-qualified-machine-name]  [machine-name]

 /*

 Where "fully-qualified-machine-name" is your

 "machine_name"."domain_name"

*/

Step - 2

Next we need to adjust the Linux Kernel Parameters to support Oracle.

Open /etc/sysctl.conf and add the following lines

# Oracle settings

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
net.ipv4.tcp_wmem = 262144 262144 262144
net.ipv4.tcp_rmem = 4194304 4194304 4194304

Note: You may find the parameters mentioned above already present in the /etc/sysctl.conf file. If they have a value lower then mentioned above then make sure you change it, but if they have a larger value then perhaps its safe to leave it as is

-- Make the kernel parameters changes effective immediately:

# /sbin/sysctl -p

-- Verify the parameters are changed or not?

# /sbin/sysctl -a | grep name_of_kernel_parameter -- e.g. shmall

Step - 3

Now setup the User that we will use as Oracle owner and the groups that it will need for installing and managing Oracle

/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/groupadd oper
/usr/sbin/useradd -g oinstall -G dba,oper oracle
/usr/bin/passwd oracle

Step - 4

Create directories where the Oracle Software and database will be installed

mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01
chmod -R 0775 /u01

 /*

The above directory structure is designed to comply with OFA  (Oracle Flexible Architecture) i.e. a directory structure to support multiple oracle software installations.

 ORACLE_BASE=/u01/app/oracle

 -- Base directory for all oracle installations.

  ORACLE_HOME=ORACLE_BASE/product/11.2.0/db_1 -- 11.2.0 installation 1.

 ORACLE_HOME=ORACLE_BASE/product/11.2.0/db_2 -- 11.2.0 installation 2.

 ORACLE_HOME=ORACLE_BASE/product/10.2.0/db_1 -- 10.2.0 installation 1.

  and so on....

*/

Step - 5

Now set the shell limits for the user Oracle.

Open /etc/security/limits.conf and add these lines.

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

Step - 6

Open /etc/pam.d/login and add the following line if it is already not there

session    required     pam_limits.so

Step - 7

Disable secure linux by editing the /etc/selinux/config file, making sure the SELINUX flag is set as follows

SELINUX=disabled

If you leave SELINUX=enforcing then you may get an error later while starting sqlplus: sqlplus: error while loading shared libraries: /usr/lib/oracle/default/client64/lib/libclntsh.so.11.1: cannot restore segment prot after reloc: Permission denied

Step - 8

We need to ensure we have all the necessary packages for Oracle. Put your Linux Media into DVD and go to the "Server" directory

cd /media/RHEL_5.1\ i386\ DVD/Server

if you have a problem then the below link may help you.

http://openbysource.blogspot.com/2007/02/configuring-yum-in-rhel5-for-dvd-source.html

For RHEL 5 (32-bit):

rpm -Uvih --nodeps binutils-2*

rpm -Uvih --nodeps compat-libstdc++-33*

rpm -Uvih --nodeps elfutils-libelf-0*

rpm -Uvih --nodeps elfutils-libelf-devel-0*

rpm -Uvih --nodeps elfutils-libelf-devel-static-0*

rpm -Uvih --nodeps gcc-4*

rpm -Uvih --nodeps gcc-c++-4*

rpm -Uvih --nodeps glibc-2*`uname -p`*

rpm -Uvih --nodeps glibc-common-2*

rpm -Uvih --nodeps glibc-devel-2*

rpm -Uvih --nodeps glibc-headers-2*

rpm -Uvih --nodeps kernel-headers-2*

rpm -Uvih --nodeps ksh-20*

rpm -Uvih --nodeps libaio-0*

rpm -Uvih --nodeps libaio-devel-0*

rpm -Uvih --nodeps libgcc-4*

rpm -Uvih --nodeps libgomp-4*

rpm -Uvih --nodeps libstdc++-4*

rpm -Uvih --nodeps libstdc++-devel-4*

rpm -Uvih --nodeps make-3*

rpm -Uvih --nodeps numactl-devel-0*

rpm -Uvih --nodeps sysstat-7*

rpm -Uvih --nodeps unixODBC-2*

rpm -Uvih --nodeps unixODBC-devel-2*

rpm -Uvih --nodeps samba-3.0.33-3.41.el5_11
rpm -Uvih --nodeps samba-client-3.0.33-3.41.el5_11
rpm -Uvih --nodeps system-config-samba-1.2.41-5.el5
rpm -Uvih --nodeps samba-common-3.0.33-3.41.el5_11

 

For RHEL 5 (64-bit):

 

rpm -Uvih --nodeps binutils-2*`uname -p`*

rpm -Uvih --nodeps compat-libstdc++-33*`uname -p`*

rpm -Uvih --nodeps compat-libstdc++-33*i386*

rpm -Uvih --nodeps elfutils-libelf-0*`uname -p`*

rpm -Uvih --nodeps elfutils-libelf-devel-0*`uname -p`*

rpm -Uvih --nodeps gcc-4*`uname -p`*

rpm -Uvih --nodeps gcc-c++-4*`uname -p`*

rpm -Uvih --nodeps glibc-2*`uname -p`*

rpm -Uvih --nodeps glibc-2*i686*

rpm -Uvih --nodeps glibc-common-2*`uname -p`*

rpm -Uvih --nodeps glibc-devel-2*`uname -p`*

rpm -Uvih --nodeps glibc-devel-2*i386*

rpm -Uvih --nodeps glibc-headers-2*`uname -p`*

rpm -Uvih --nodeps ksh-20*`uname -p`*

rpm -Uvih --nodeps libaio-0*`uname -p`*

rpm -Uvih --nodeps libaio-0*i386*

rpm -Uvih --nodeps libaio-devel-0*`uname -p`*

rpm -Uvih --nodeps libaio-devel-0*i386*

rpm -Uvih --nodeps libgcc-4*`uname -p`*

rpm -Uvih --nodeps libgcc-4*i386*

rpm -Uvih --nodeps libstdc++-4*`uname -p`*

rpm -Uvih --nodeps libstdc++-4*i386*

rpm -Uvih --nodeps libstdc++-devel-4*`uname -p`*

rpm -Uvih --nodeps make-3*`uname -p`*

rpm -Uvih --nodeps numactl-devel-0*`uname -p`*

rpm -Uvih --nodeps sysstat-7*`uname -p`*

rpm -Uvih --nodeps unixODBC-2*`uname -p`*

rpm -Uvih --nodeps unixODBC-2*i386*

rpm -Uvih --nodeps unixODBC-devel-2*`uname -p`*

rpm -Uvih --nodeps unixODBC-devel-2*i386*

Automatic Setup

If you plan to use the "oracle-validated" package to perform all your prerequisite setup, follow the instructions at http://public-yum.oracle.com to setup the yum repository for OL, then perform the following command.

# yum install oracle-validated

All necessary prerequisites will be performed automatically.

It is probably worth doing a full update as well, but this is not strictly speaking necessary.

# yum update

Manual Setup

If you have not used the "oracle-validated" package to perform all prerequisites, you will need to manually perform the following setup tasks.

In addition to the basic OS installation, the following packages must be installed whilst logged in as the root user. This includes the 64-bit and 32-bit versions of some packages.

rpm -Uvh binutils-2.*
rpm -Uvh compat-libstdc++-33*
rpm -Uvh elfutils-libelf-0.*
rpm -Uvh elfutils-libelf-devel-*
rpm -Uvh gcc-4.*
rpm -Uvh gcc-c++-4.*
rpm -Uvh glibc-2.*
rpm -Uvh glibc-common-2.*
rpm -Uvh glibc-devel-2.*
rpm -Uvh glibc-headers-2.*
rpm -Uvh ksh-2*
rpm -Uvh libaio-0.*
rpm -Uvh libaio-devel-0.*
rpm -Uvh libgcc-4.*
rpm -Uvh libstdc++-4.*
rpm -Uvh libstdc++-devel-4.*
rpm -Uvh make-3.*
rpm -Uvh sysstat-7.*
rpm -Uvh unixODBC-2.*
rpm -Uvh unixODBC-devel-2.*



NOTE: If you are using RHEL5 DVD then you should find them all in the "Server" directory in your DVD. And if you don't find one there you may download it from the Linux vendor's Web site. If you have your Linux distribution in 3 CDs then these will be scattered on all three CDs in the Server directory on all CDs.

Step - 9

Allow the user oracle to use X server, which it will need to run Oracle Universal Installer

# xhost +SI:localuser:oracle

Step - 10

Now switch to the user oracle

# su - oracle

-- Let's see which shell is being used by the user Oracle.

$ echo $SHELL

/bin/bash

If the returned shell is bash then open ~/.bash_profile and add these lines.

# Oracle settings

TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
# If /tmp doesn't have 1G space free then you can workaround it by
# pointing the variables TMP AND TMPDIR to a location where you have
# sufficient space.
ORACLE_HOSTNAME=localhost.localdomain; export ORACLE_HOSTNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
export CLASSPATH
if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
    else
    ulimit -u 16384 -n 65536
    fi
fi

If using C shell then open ~/.login and add these lines:

# Oracle settings

setenv TMP=/tmp

setenv TMPDIR=$TMP

# If /tmp doesn't have 1G space free then you can workaround it

# by pointing the variables TMP AND TMPDIR to a location where you

# have sufficient space. Oracle will then use this directory for

# temporary files.

setenv ORACLE_HOSTNAME ora11g.home.com

setenv ORACLE_BASE /u01/app/oracle

setenv ORACLE_HOME $ORACLE_BASE/product/11.2.0/db_1

setenv ORACLE_SID ora11g

setenv ORACLE_TERM xterm

setenv PATH /usr/sbin:$PATH

setenv PATH $ORACLE_HOME/bin:$PATH

setenv LD_LIBRARY_PATH $ORACLE_HOME/lib:/lib:/usr/lib

setenv CLASSPATH $ORACLE_HOME/JRE:$ORACLE_HOME/jlib

setenv CLASSPATH $CLASSPATH:$ORACLE_HOME/rdbms/jlib

if ( $USER == "oracle" ) then

      limit maxproc 16384

      limit descriptors 65536

endif

Now run the following command to make these changes effective in the current session of user oracle.

-- for bash shell

$ source ~/.bash_profile

-- for C shell

$ source ~/.login

Step - 11

Installation of Oracle Database 11g Release 2 RHEL 5

The environment is ready for oracle installation. Its time to prepare the oracle installation media now.

Download or Copy the oracle media to the oracle user home directory i.e. /home/oracle.

Once Download/Copy is done unzip the media as follows

$ cd /home/oracle

$ ls

linux_11gR2_database_1of2.zip  linux_11gR2_database_2of2.zip

$

$ unzip linux_11gR2_database_1of2.zip

$ unzip linux_11gR2_database_2of2.zip

Once the unzip is finished go to the "database" directory unzipped in the previous step and start the Oracle Universal Installer.

$ cd /home/oracle/database/

$ ./runInstaller

The OUI (Oracle Universal Installer) should start and you should see following screens in the order given below:

1. Provide your email address and Oracle support password to get security updates from Oracle.


2. Installation options like creating a database, installing oracle software only or upgrading the database. Select "Create and configure a database".



3. Choose the system class here. Select "Server Class" it provides more advanced options.



4. Choose from creating a single node installation or RAC.



5. Choose your installation Typical or Advanced. We will go with typical at this moment.



6. If you choose typical install in previous screen, then you will see this page for Install Configurations. Provide Oracle software installation location, database files location and administrator password etc.



7. Specify the Oracle install inventory location and Operating system group "oinstall".



8. Now all prerequisite checks will be performed here and if every thing is ok you will be moved to the install summary page. You can hit the "Back" button and come back to see the status of all the checks performed.



9. Installation Summary page. Hit "Finish" to start the Installation.



10. Installation Progress. This will take several minutes and it will automatically invoke Database COnfiguration Assistant to create a database.



11. Database Configuration Assistant invoked by the installer.



12. Once DBCA has finished creating the database, it will show a page like this. It is a summary of the database that has just been created.



13. As a last step you will be asked to execute some configuration scripts as root.


No comments:

Post a Comment

ORA-00845: MEMORY_TARGET not supported on this system

 The shared memory file system should have enough space to accommodate the MEMORY_TARGET and MEMORY_MAX_TARGET values. To verify: SQL> sh...