wangluo010 发表于 2018-9-13 11:53:35

CentOS 5.10安装Oracle 11G R2

  操作系统:CentOS 5.10 64位
  数据库:Oracle 11G R2(版本号为11.02)
  安装操作系统的时候,注意交换分区的大小不得低于2G
  1.同步时钟及修改/etc/hosts
  yum -y install ntp
  ntpdate time.nist.gov
  echo "* */2 * * * /sbin/ntpdate time.nist.gov >/dev/null 2>&1" >> /etc/crontab
  修改/etc/hosts
  将机器名称加入,我这里的是node1,则,可以使用
  echo "127.0.0.1 $HOSTNAME" >>/etc/hosts

  2.关闭服务:
  iptables
  selinux
  portmap
  rpc.statd
  cupsd
  avahi-daemon
  sendmail
  killall iptables
  chkconfig --level 2345 iptables off
  killall portmap
  chkconfig --level 2345 portmap off
  killall avahi-daemon
  chkconfig --level 2345 avahi-daemon off
  killall sendmail
  chkconfig --level 2345 sendmail off
  如果是新服务器,可以执行:
  for a in `chkconfig --list|grep 3:on|awk '{print $1}'`; do chkconfig $a off;done
  for a in sshd crond network syslog messagebus haldaemon; do chkconfig $a on;done
  3.安装oracle 11gR2 依赖的组件包
  yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh numactl-devel glibc-headers libaio-devel libaio libXp libXt compat-libcap1 unzip
  /sbin/ldconfig
  注意:如果你的系统是CentOS 6以上的话,需要单独安装pdksh
  rpm -ivh http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
  如果出错,可能是因为安装了mksh冲突了,rpm -e --nodeps mksh
  yum -y install libXt.i686 libXtst.i686 libXp libXp.i686 glibc-devel.i686 libaio-devel.i686 libstdc++.i686 libgcc.i686 compat-libstdc* unixODBC-devel.i686 compat-libstdc++-33.i686
  4.调整内核参数
  vi /etc/sysctl.conf
  fs.file-max = 6815744
  kernel.shmall = 2097152
  kernel.shmmax = 1048842240
  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 = 1048576
  fs.aio-max-nr = 1048576
  #让内核参数生效
  sysctl -p
  CentOS 6安装Oracle 10G R2在启动数据库的时候
  RMAN > startup nomount;
  RMAN-04014: startup failed: ORA-27125: unable to create shared memory segment
  Linux-x86_64 Error: 1: Operation not permitted
  处理过程

  $>  id oracle
  uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)
  echo "vm.hugetlb_shm_group = 501">>/etc/sysctl.conf
  sysctl -p
  5.修改limits.conf
  vi /etc/security/limits.conf
  #oracle settings
  oracle         soft    nproc   2047
  oracle         hard    nproc   16384
  oracle         soft    nofile1024
  oracle         hard    nofile65536
  6.改/etc/pam.d/login
  #添加以下内容:
  session    required   /lib64/security/pam_limits.so
  session    required   pam_limits.so
  注意:如果使用的是32位的操作系统,则上面要写成
  session    required   /lib/security/pam_limits.so
  session    required   pam_limits.so
  7.修改/etc/profile
  vi /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
  8.改/etc/csh.login
  vi /etc/csh.login
  #添加以下内容:
  if ( $USER == "oracle" ) then
  limit maxproc 16384
  limit deors 65536
  endif
  9.创建oracle用户
  groupadd oinstall
  groupadd dba
  useradd -g oinstall -G dba oracle
  passwd oracle
  mkdir -p /opt/oracle
  mkdir -p /opt/oraInventory
  mkdir -p /opt/software
  chown -R oracle:oinstall /opt/oracle
  chown -R oracle:oinstall /opt/software
  chown -R oracle:oinstall /opt/oraInventory
  10.设置用户环境变量
  #su - oracle
  $ vi .bash_profile
  #添加以下内容:
  ORACLE_SID=luke; export ORACLE_SID
  ORACLE_BASE=/opt/oracle; export ORACLE_BASE
  ORACLE_HOME=$ORACLE_BASE/product/11.2.0; export ORACLE_HOME
  PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin; export PATH
  stty erase ^H
  stty kill^U
  说明:
  ORACLE_BASE下是admin和product
  ORACLE_HOME下则是ORACLE的命令、连接库、安装助手、listener等等一系列的东东。
  这只是ORACLE自己的定义习惯。ORACLE_HOME比ORACLE_BASE目录要更深一些。也就是说:ORACLE_HOME=$ORACLE_BASE/product/version
  ORACLE_BASE是oracle的根目录,ORACLE_HOME是oracle产品的目录。
  简单说,你如果装了2个版本的oracle,那么ORACLE_BASE可以是一个,但ORACLE_HOME是2个
  全局数据库名用于区别分布式数据库各个不同机器上的实例。
  SID用于区别同一台机器上的不同实例,
  即一个用于外部区分。
  一个用于内部区分。
  $source .bash_profile
  11.安装oracle
  #可以使用winscp上传oracle安装文件到/data/software目录下,并解压
  cd /data/software
  unzip linux_11gR2_database_1of2.zip
  unzip linux_11gR2_database_2of2.zip
  xhost +   (这里使用root用户执行,一定要执行以下2步,如果没有执行,将无法启动图形安装界面)
  xhost + localhost
  su - oralce
  cd /opt/software/database
  $./runInstaller#(到oracle安装文件所在目录执行该命令)
  安装过程省略
  12.开机启动设置
  #自动启动和关闭数据库实例和监听
  vi /opt/oracle/product/11.2.0/db_1/bin/dbstart
  ORACLE_HOME_LISTNER=$1
  #修改为:
  ORACLE_HOME_LISTNER=$ORACLE_HOME
  vi /opt/oracle/product/11.2.0/db_1/bin/dbshut
  ORACLE_HOME_LISTNER=$1
  #修改为:
  ORACLE_HOME_LISTNER=$ORACLE_HOME
  vi /etc/init.d/oracle
  #!/bin/sh
  # chkconfig: 345 61 61
  # description: Oracle 11g AutoRun Services
  # /etc/init.d/oracle
  #
  # Run-level Startup script for the Oracle Instance, Listener, and
  # Web Interface
  export ORACLE_BASE=/opt/oracle
  export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
  export ORACLE_SID=luke
  export PATH=$PATH:$ORACLE_HOME/bin
  ORA_OWNR="oracle"
  # if the executables do not exist -- display error
  if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
  then
  echo "Oracle startup: cannot start"
  exit 1
  fi
  # depending on parameter -- startup, shutdown, restart
  # of the instance and listener or usage display
  case "$1" in
  start)
  # Oracle listener and instance startup
  su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
  echo "Oracle Start Succesful!OK."
  ;;
  stop)
  # Oracle listener and instance shutdown
  su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
  echo "Oracle Stop Succesful!OK."
  ;;

  >  $0 stop
  $0 start
  ;;
  *)
  echo $"Usage: `basename $0` {start|stop|reload|reload}"
  exit 1
  esac
  exit 0
  chmod 750 /etc/init.d/oracle
  chkconfig --level 345 oracle on
  chkconfig --add oracle
  #启动oracle
  service oracle start
  自动启动和关闭 EM
  vi /etc/init.d/oraemctl
  #!/bin/sh
  # chkconfig: 345 61 61
  # description: Oracle 11g AutoRun Services
  # /etc/init.d/oraemctl
  #
  # Run-level Startup script for the Oracle Instance, Listener, and
  # Web Interface
  export ORACLE_BASE=/opt/oracle
  export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
  export ORACLE_SID=luke
  export PATH=$PATH:$ORACLE_HOME/bin
  ORA_OWNR="oracle"
  case "$1" in
  start)
  echo -n $"Starting Oracle EM DB Console:"
  su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole"
  echo "OK"
  ;;
  stop)
  echo -n $"Stopping Oracle EM DB Console:"
  su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole"
  echo "OK"
  ;;
  *)
  echo $"Usage: $0 {start|stop}"
  esac
  chmod 750 /etc/init.d/oraemctl
  #启动EM
  service oraemctl start
  本文参考http://kerry.blog.51cto.com/172631/568220只是修正了一些错误

页: [1]
查看完整版本: CentOS 5.10安装Oracle 11G R2