灌溉梦想,记录脚步
« »
2009 年 12 月 07 日技术合集

Oracle 11g Software Installation on Linux—CentOS-5

  Introduction
  This paper takes a look at installing oracle 11g (11.1) on Linux (CentOS-5).You can read about CentOS at www.centos.org and be assured of its’ Enterprise-class quality. This paper will use oracle’s Quick Installation Guide for Linux x86 as its’ guide—noting where additional information may be obtained but getting oracle installed on Linux as fast as possible. We at thecheapdba.com have years of experience installing oracle—starting back with oracle 7. We will point out best practices so that you end up with a reliable database that provides exceptional performance. We will occasionally re-visit, edit, and post additions to this paper as we find further configuration best practices.
  This paper will not cover the installation of CentOS-5 as that can be acquired through the CentOS website and additional Linux guides. We will however point out those alterations to the Linux environment that pertains to getting oracle installed.
  Our goal is to provide you with the steps to properly install the oracle 11g software without having to read oracle’s installation guide from front to back cover. We will provide you the commands to execute (just cut-n-paste) and the desired outcome of those commands. If you get something other than what is expected it would be time for you to re-visit earlier steps in this process. So hold on, here we go.
  It is assumed that the installer of oracle software has access and is running on an X Window System workstation. Please consult X Server documentation if you need help. We at thecheapdba.com typically will use cygwin ( www.cygwin.com ) for all interfacing with our Linux distribution. It has an X Window System that works quite well—and as we always like is free.
  Checking Hardware Requirements
  Log into the CentOS-5 system as the root user.
  For setting up the system to be used by oracle there are a few prerequisites that must be checked and possibly changed by the root user. Log in as the root user and this document will tell you when it is time to switch from the root user to someone else.
  How much memory
  command: grep -i memtotal /proc/meminfo
  results: should be at least 1GB
  How much swap
  command: grep -i swaptotal /proc/meminfo
  results: should be 1.5 the size of memtotal if memtotal < 2GB
  should be equal to memtotal if memtotal is between 2GB and 8GB
  should be .75 the size of memtotal if memtotal > 8GB
  What processor type
  command: grep “model name” /proc/cpuinfo
  results: informational
  How much available RAM and swap
  command: free
  results: informational
  How much shared memory available
  command: df -k /dev/shm
  results: informational
  purpose: The shared memory should be sized to be at least the greater of MEMORY_MAX_TARGET and MEMORY_TARGET for each oracle instance on the computer.
  How much disk space in /tmp
  command: df -k /tmp
  results: should have at least 400MB available
  How much disk space for oracle binaries
  command: df -k
  results: Depending on installation type you should have between 1.5GB and 3.5GB
  Checking Software Requirements
  What distribution and version of Linux is installed
  command: cat /proc/version
  results: Linux version 2.6.18-8.1.15.el5 (mockbuild@builder6.centos.org)
  (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52))
  #1 SMP Mon Oct 22 08:32:04 EDT 2007
  What version of the kernel is installed
  command: uname -r
  results: 2.6.18-8.1.15.el5
  Are the following packages installed (assumes CentOS-5 and above distribution)
  command:rpm -q binutils \
  compat-libstdc++ \
  elfutils-libelf \
  elfutils-libelf-devel \
  glibc \
  glibc-common \
  glibc-devel \
  glibc-headers \
  gcc \
  gcc-c++ \
  libaio-devel \
  libaio \
  libgcc \
  libstdc++ \
  libstdc++ \
  make \
  sysstat \
  unixODBC \
  unixODBC-devel
  results: you will probably get quite a few packages that are not installed with a typical installation. You can investigate missing packages with the following command making sure you add/subtract from this list if necessary.
  yum list available “compat*” \
  ”elfutils*” \
  ”glibc*” \
  ”gcc*” \
  ”libaio*” \
  ”sysstat*” \
  ”unixODBC*”
  action : Our base installation left us needing to issue the following command to install missing packages.
  yum -y install compat-libstdc++-296.i386 \
  compat-libstdc++-33.i386 \
  elfutils-libelf-devel.i386 \
  glibc-devel.i386 \
  glibc-headers.i386 \
  gcc.i386 \
  gcc-c++.i386 \
  libaio-devel.i386 \
  sysstat.i386 \
  unixODBC.i386 \
  unixODBC-devel.i386
  Create oracle user and group
  Create groups oinstall & dba
  command: /usr/sbin/groupadd oinstall
  /usr/sbin/groupadd dba
  Create the oracle and change password
  command: /usr/sbin/useradd -g oinstall -G dba -s /bin/bash oracle
  /usr/bin/passwd oracle
  Validate the nobody user exists
  command: /usr/bin/id nobody
  results: this user is almost always created on a base CentOS installation
  action : if this user is not created use the following command to create
  /usr/sbin/useradd nobody
  Configuring 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 if the setting is lower than the recommendation given in the following table.
  You can make the changes by editing the /etc/sysctl.conf file and then rebooting the server. The following results are what we observed on our server and should not be expected on yours.
  shmmni
  4096
  shmall
  2097152
  shmmax
  2147483648
  semmsl
  250
  semmns
  32000
  semopm
  100
  semmni
  128
  file-max
  65536
  ip_local_port_range
  1024 – 65000
  rmem_default
  1048576
  rmem_max
  1048576
  wmem_default
  262144
  wmem_max
  262144
  command: /sbin/sysctl -a | grep kernel.sem
  results: kernel.sem = 250 32000 100 128
  command: /sbin/sysctl -a | grep kernel.shm
  results: kernel.shmmni = 4096
  kernel.shmall = 268435456
  kernel.shmmax = 4294967295
  command: /sbin/sysctl -a | grep file-max
  results: fs.file-max = 102440
  command: /sbin/sysctl -a | grep ip_local_port_range
  results: net.ipv4.ip_local_port_range = 32768 61000
  command: /sbin/sysctl -a | grep rmem_default
  results: net.core.rmem_default = 109568
  command: /sbin/sysctl -a | grep rmem_max
  results: net.core.rmem_max = 131071
  command: /sbin/sysctl -a | grep wmem_default
  results: net.core.wmem_default = 109568
  command: /sbin/sysctl -a | grep wmem_max
  results: net.core.wmem_max = 131071
  sample /etc/sysctl.conf file. This is given as an example only and does not reflect the results obtained above by the /sbin/sysctl commands. Only add lines that are needed and do not change any values to be lower than the base installation might have assigned.
  kernel.shmall = 2097152
  kernel.shmmax = 2147483648
  kernel.shmmni = 4096
  kernel.sem = 250 32000 100 128
  fs.file-max = 65536
  net.ipv4.ip_local_port_range = 1024 65000
  net.core.rmem_default = 4194304
  net.core.rmem_max = 4194304
  net.core.wmem_default = 262144
  net.core.wmem_max = 262144
  Setting shell limits for the oracle user
  Add the following lines to /etc/security/limits.conf
  oracle soft nproc 2047
  oracle hard nproc 16384
  oracle soft nofile 1024
  oracle hard nofile 65536
  Add the following lines to /etc/pam.d/login
  session required /lib/security/pam_limits.so
  session required pam_limits.so
  Add the following lines to /etc/profile
  if [ $USER = “oracle” ]; then
  if [ $SHELL = “/bin/ksh” ]; then
  ulimit -p 16384
  ulimit -n 65536
  else
  ulimit -u 16384 -n 65536
  fi
  fi
  Creating Directories to Install the oracle Software
  Validate you have enough space on disk and choose a directory to install
  command: df -k
  results: pick a mount point that has enough space—we have chosen /opt for the our.
  Create subdirectories and give permissions to the oracle user
  The following directory used is common for oracle installations. Note that we are creating all directories under /opt and that there are no other applications using /opt/app and below. This is very important as we are changing permissions with the following commands.
  command: mkdir -p /opt/app/oracle/product/11.1.0
  chown -R oracle:oinstall /opt/app
  chmod -R 775 /opt/app
  Switch to the oracle user
  Up to know we have been doing everything as the root user. It is now time to switch to the oracle user to actually install the oracle software.
  command: su – oracle
  Add the following line to $HOME/.bash_profile
  umask 022
  Execute oracle’s bash_profile to use new setting
  command: . ./.bash_profile
  Make sure the oracle user is using an X Windows System
  It is assumed you know how to set up an X Windows System as stated earlier in the document. Please verify it is working by issuing the xterm command and validating an X Terminal comes up. You may close the X Terminal if you wish.
  Set oracle environment for the installation
  Issue the following commands to set/unset particular oracle environments in preparation for the installation.
  command: export orACLE_BASE=/opt/app/oracle
  export orACLE_SID=orcl
  unset orACLE_HOME
  unset TNS_ADMIN
  Start oracle Installer
  This paper assumes you have downloaded the oracle software from the net and have unzipped the files. We have unzipped our software into /opt and the following commands will take you through starting the oracle installer form that mount point.
  command: cd /opt/database
  ./runInstaller
  From this point, oracle will do a few minor checks on the operating system and then put up the oracle Installation screen. Our particular configuration did not throw any errors at this point but it should be noted, as it can be helpful, that sometimes the oracle installer will complain at this very early stage about various Linux system configurations. If this is the case you might be able to bypass them by adding an additional argument to the runInstaller command. Please only use this as a last resort to the normal installation path.
  command: ./runInstaller -ignoreSysPrereqs
  From this point on we will walk through each of the prompts one at a time to give you a simple feel for a full installation of the oracle software.
  Select installation method
  This screen is very busy to say the least. We are not going to create any databases at this point as it is not required nor is it suggested to do at this point. We like to create databases separately through the Database Creation Assistant (DBCA) and not confuse the software installation process.
  1. Choose basic installation
  1. verify oracle Base of ‘/opt/app/oracle’
  2. verify oracle Home of ‘/opt/app/oracle/product/11.1.0/db_1’
  3. verify installation type of ‘Enterprise Edition’
  4. verify dba group of ‘dba’
  2. Un-check “Create Starter Database”
  3. Un-check “Advanced Installation”
  4. Click
  Specify Inventory directory and credentials
  1. verify path of inventory directory of ‘/opt/app/oraInventory’
  2. verify group name for install of ‘oinstall’
  3. Click
  Product-Specific Prerequisite Checks
  This screen, the installer will verify the system environment and report on any issues it may find. If all goes well you will get the status of ‘Succeeded’ for every check. Scroll through and make sure nothing has failed or look at the status box at the bottom of the screen and verify you get the following:
  ’Check complete. The overall result of this check is: Passed’
  1. verify all statuses
  2. Click
  Summary
  This screen give a summary of the installation you are about to perform. It can be interesting to click and expand the products being installed to give you an idea of the what product and version is going to be installed.
  1. validate ‘Global Settings’ for directories
  2. validate ‘Space Requirements’
  3. Click
  Install
  This screen gives a status of what is being installed. If all system settings have been properly set and all packages been installed properly then this should proceed without error. The status bar gives some indication of what is being installed at a particular point and the amount of work to be performed. But as all status bars you never really know how long in the process it is.
  1. Note the time it takes for specific products. If you notice one hanging or taking a long amount of time (greater than 10 minutes) you could have a condition that requires a pre-installation patch. Don’t stop the installer yet but instead start looking for a bug / patch for the oracle 11g installation process and the actual product being installed.
  2. Execute Configuration scripts
  1. open up a different terminal window
  2. login as the root user
  3. run /opt/app/oraInventory/orainstRoot.sh
  4. run /opt/app/oracle/product/11.1.0/db_1/root.sh
  1. accept default of /usr/local/bin
  5. Click
  3. Click
  4. Click
  Cleanup
  1. If you downloaded the software from the net you can now remove .zip file and the complete directory structure you unzipped it to. That particular command is not given here as it can be quite disastrous if executed from the wrong directory.
  2. Add the following lines to oracle’s $HOME/.bash_profile file. This will allow you to execute various oracle binaries to create databases, configure network settings, and generally manage the oracle database environment.
  export orACLE_HOME=/opt/app/oracle/product/11.1.0/db_1
  export PATH=$ORACLE_HOME/bin:$PATH
  Installation is complete
  Congratulations on a successful installation of the oracle software. This paper hopefully was also successful in its attempt to guide you down a more simplistic path—giving you the commands to execute and working past the minor hurdles encountered during installation. Obviously this paper can not predict all the issues that you may encounter but if you have a relatively current system with ample memory and disk space there is no reason not to believe your installation wouldn’t run smoothly.

日志信息 »

该日志于2009-12-07 18:02由 kevin 发表在技术合集分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过RSS 2.0订阅这个日志的所有评论。

没有评论

发表评论 »