вторник, 17 апреля 2012 г.

Установка Oracle 11g R2 на Linux (CentOS 6.2)

This article describes the installation of Oracle Database 11g Release 2 (11.2) 64-bit on Fedora 16 (F16) 64-bit. The article is based on a server installation with a minimum of 2G swap and secure Linux disabled. An example of this type of Linux installation can be seen here.
The installation should also include the following package groups:

  • Gnome Desktop Environment
  • Editors
  • Graphical Internet
  • Development Libraries
  • Development Tools
  • Legacy Software Development
  • Server Configuration Tools
  • Administration Tools
  • Base
  • Fonts
  • Legacy Fonts
  • Hardware Support
  • Input Methods
  • Legacy Software Support
  • System Tools
  • X Windows System

Download Software

Unpack Files

Unzip the files.
> unzip linux.x64_11gR2_database_1of2.zip
> unzip linux.x64_11gR2_database_2of2.zip
You should now have a single directory called "database" containing installation files.

Hosts File

The "/etc/hosts" file must contain a fully qualified name for the server.
<IP-address>  <fully-qualified-machine-name>  <machine-name>
For example.
127.0.0.1       localhost.localdomain  localhost
192.168.0.191   fedora16.localdomain  fedora16

Set Kernel Parameters

Oracle recommend the following minimum parameter 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
  1. Configure some kernel parameters. The following kernel parameters must be validated and possibly changed. Use the commands given below to view a particular kernel setting and then change it if the setting is lower than the recommendation given here. The changed parameters are in bold in my case.
    1. Verify kernel parameters: 
    2. # semaphores: semmsl, semmns, semopm, semmni
      $ sysctl -a | grep kernel.sem
      
      results should be >= than: 
      
      kernel.sem = 250        32000   100     128
      
      $ sysctl -a | grep kernel.shm
      
      results should be >= than: 
      
      kernel.shmmax = 536870912
      
      kernel.shmmni = 4096
      
      kernel.shmall = 2097152
      
      $ sysctl -a | grep file-max
      
      results should be >= than: 
      
      fs.file-max = 6815744
      
      $ sysctl -a | grep ip_local_port_range
      
      results should be >= than: 
      
      net.ipv4.ip_local_port_range = 9000 65500
      
      $ sysctl -a | grep rmem_default
      
      results should be >= than: 
      
      net.core.rmem_default = 262144
      
      $ sysctl -a | grep rmem_max
      
      results should be >= than: 
      
      net.core.rmem_max = 4194304
      
      $ sysctl -a | grep wmem_default
      
      results should be >= than: 
      
      net.core.wmem_default = 262144
      
      $ sysctl -a | grep wmem_max
      
      results should be >= than: 
      
      net.core.wmem_max = 1048576
      
      $ sysctl -a | grep aio-max-nr
      
      results should be >= than: 
      
      fs.aio-max-nr = 1048576
      
    3. Make the changes permanent by editing the archive /etc/sysctl.conf file. This is given as an example only and does not reflect the results obtained above by the sysctl commands. Only add lines that are needed and do not change any values to be lower than the base installation might have assigned. In my case I only change the following settings on /etc/sysctl.conf:
    4. kernel.sem = 250 32000 100 128
      fs.file-max = 6815744
      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 = 1048576
      fs.aio-max-nr = 1048576
      
    5. Apply the changes now:
    6. $ sudo sysctl -p
      
Add the following lines to the "/etc/security/limits.conf" file.
oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536
Add the following line to the "/etc/pam.d/login" file, if it does not already exist (depending on the architecture):
session required /lib64/security/pam_limits.so
or
session required pam_limits.so
NOTE: be aware of the real location of pam_limits.so. It depens on the architecture and distro. On CentOS 6.2 64 bits /lib64/security/pam_limits.so
Disable secure linux by editing the "/etc/selinux/config" file, making sure the SELINUX flag is set as follows.
SELINUX=disabled
If SELinux is disabled after installation, the server will need a reboot for the change to take effect.

Выключение (настройка) iptables:
> ntsysv

Setup

If you have installed the suggested package groups during the installation, the majority of the necessary packages will already be installed. The following packages are listed as required, including the 32-bit version of some of the packages. The commented out packages should be installed already.
#yum install binutils
#yum install compat-libstdc++-33
yum install compat-libstdc++-33.i686
#yum install elfutils-libelf
yum install elfutils-libelf-devel
#yum install gcc
#yum install gcc-c++
#yum install glibc
#yum install glibc.i686
#yum install glibc-common
#yum install glibc-devel
#yum install glibc-headers
yum install glibc-devel.i686
yum install ksh
yum install libaio
yum install libaio.i686
yum install libaio-devel
yum install libaio-devel.i686
#yum install libgcc
#yum install libgcc.i686
#yum install libstdc++
yum install libstdc++.i686
#yum install libstdc++-devel
#yum install make
#yum install numactl
yum install numactl-devel
yum install sysstat
yum install unixODBC
yum install unixODBC.i686 (libtool-ltdl, ncurses-libs, readline)
yum install unixODBC-devel
yum install unixODBC-devel.i686
Проверка "установленности" пакета:
> rpm -qa | grep <rpm_name>
Например: > rpm -qa | grep gcc

Установка пакета:
> rpm -Uhv <rpm_name>
Например: > rpm -Uhv gcc-4.4.6-3.el6.x86_64

(если текущая папка с rpm-пакетами, то очень удобно использовать кнопку "TAB")

Create the new groups and users.
groupadd oinstall
groupadd dba
groupadd oper
groupadd asmadmin

useradd -g oinstall -G dba,oper,asmadmin oracle
passwd oracle
Note. We are not going to use the "asmadmin" group, since this installation will not use ASM.
Create the directories in which the Oracle software will be installed.
mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01
Login as root and issue the following command. (?)
xhost +<machine-name>
Edit the "/etc/redhat-release" file replacing the current release information "Fedora release 16 (Verne)" with the following.
redhat release 5
Login as the oracle user and add the following lines at the end of the ".bash_profile" file.
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_HOSTNAME=fedora16.localdomain; export ORACLE_HOSTNAME
ORACLE_UNQNAME=DB11G; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
ORACLE_SID=DB11G; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$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

 

Комментариев нет:

Отправить комментарий