天天看点

Redhat 5.5 安装oracle 11G

安装前准备工作:

1、检查下列包是否安装,若未安装则要先安装:

binutils-2.17.50.0.6-2.el5

compat-libstdc++-33-3.2.3-61

elfutils-libelf-0.125-3.el5

elfutils-libelf-devel-0.125

glibc-2.5-12

glibc-common-2.5-12

glibc-devel-2.5-12

gcc-4.1.1-52

gcc-c++-4.1.1-52

libaio-0.3.106

libaio-devel-0.3.106

libgcc-4.1.1-52

libstdc++-4.1.1

libstdc++-devel-4.1.1-52.e15

make-3.81-1.1

sysstat-7.0.0

unixODBC-2.2.11

unixODBC-devel-2.2.11

检查发现以下软件包未安装:

libaio-devel-0.3.106-5.i386.rpm

sysstat-7.0.2-3.el5_5.1.i386.rpm

unixODBC-2.2.11-7.1.i386.rpm

unixODBC-devel-2.2.11-7.1.i386.rpm

安装软件包

rpm -ivh libaio-devel*.rpm sysstat-7.0.2-3*.rpm unixODBC-2.2.11-7.1.i386.rpm unixODBC-devel-2.2.11-7.1.i386.rpm

2> 检查内存与虚拟内存

[root@node1 opt]# free

             total       used       free     shared    buffers     cached

Mem:        681540     415396     266144          0       4612     310660

-/+ buffers/cache:     100124     581416

Swap:      2048276         84    2048192

3> 检查磁盘空间

[root@node1 opt]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda3              18G  5.3G   12G  33% /

/dev/sda1             190M   12M  169M   7% /boot

tmpfs                 333M     0  333M   0% /dev/shm

4> 查看系统版本

[root@node1 opt]# uname -a

Linux node1.cn1 2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:43 EDT 2010 i686 i686 i386 GNU/Linux

5> 配置主机名

[root@node1 /]# cat /etc/hosts

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1 localhost.localdomain localhost

::1  localhost6.localdomain6 localhost6

192.168.1.201 node1.cn node1

[root@node1 /]# cat /etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=node1.cn

GATEWAY=192.168.1.254

6> 创建安装用户与组 安装目录

[root@node1 /]# groupadd -g 1001 oinstall

[root@node1 /]# groupadd -g 1002 dba

[root@node1 /]# useradd -u 1001 -g oinstall -G dba oracle

[root@node1 /]# passwd oracle

Changing password for user oracle.

New UNIX password: 

BAD PASSWORD: it is based on a dictionary word

Retype new UNIX password: 

passwd: all authentication tokens updated successfully.

[root@node1 /]# mkdir -p /u01/app/oracle  //软件安装目录    

[root@node1 /]# chown -R oracle:oinstall /u01

# mkdir -p /opt/oradata                      //oracel 数据存放目录

# chown -R oracle:oinstall /opt

# chmod -R 775 /opt/

7> 修改系统内核参数:

[root@node1 opt]# vi /etc/sysctl.conf

===========================================

kernel.shmall = 2097152

kernel.shmmax = 536870912                        //物理内存1半

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.aio-max-nr = 1048576

fs.file-max = 65536

net.ipv4.ip_local_port_range = 1024 65000

net.core.rmem_default = 1048576                  //1M

net.core.rmem_max = 1048576

net.core.wmem_default = 262144                   //256K

net.core.wmem_max = 262144

[root@node1 opt]# /sbin/sysctl -p             //使内核参数即使生效

net.ipv4.ip_forward = 0

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.default.accept_source_route = 0

kernel.sysrq = 0

kernel.core_uses_pid = 1

net.ipv4.tcp_syncookies = 1

kernel.msgmnb = 65536

kernel.msgmax = 65536

kernel.shmall = 2097152                          //可用共享内存的总量,单位是页,在32位系统上一页等于4kB,也就是4096字节

kernel.shmmax = 536870912                        //单个共享内存段的最大值,此值一般为物理内存的一半,不过大一点也没关系

kernel.sem = 250 32000 100 128                   //设置的信号量,这4个参数内容大小固定

fs.file-max = 65536                              //文件句柄的最大数量。文件句柄表示在Linux系统中可以打开的文件数量

fs.aio-max-nr = 1048576                          //文件系统最大异步io

net.ipv4.ip_local_port_range = 9000 65500        //应用程序可使用的IPv4端口范围

net.core.rmem_default = 1048576

net.core.rmem_max = 1048576                      //接收套接字缓冲区大小的最大值

net.core.wmem_default = 262144

net.core.wmem_max = 262144                       //发送套接字缓冲区大小的最大值

8> 设置oracle使用的文件数权限

[root@node1 opt]# vi /etc/security/limits.conf 

oracle  soft    nproc   2047

oracle  hard    nproc   16384

oracle  soft    nofile  1024

oracle  hard    nofile  65536

9> 用户界面安全设置

[root@node1 opt]# vi /etc/pam.d/login

session    required     /lib/security/pam_limits.so

session    required     pam_limits.so

10> 用户访问端口范围设置

[root@node1 opt]# 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

11> 设置用户环境变量

[root@node1 opt]# su - oracle

[oracle@node1 ~]$ vi .bash_profile

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11g

export ORACLE_SID=orcl

export ORACLE_OWNER=oracle

export ORACLE_TERM=vt100

export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib

export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib

export CLASSPATH

[oracle@node1 ~]$ source .bash_profile     //使环境变量即使生效

12> 准备进入界面安装程序

[root@node1 /]# xhost +

access control disabled, clients can connect from any host

[root@node1 /]# su - oracle

[oracle@node1 database]$ cd /opt/database/               //进入安装文件存储目录

[oracle@node1 database]$ ls

doc  install  response  rpm  runInstaller  sshsetup  stage  welcome.html

[oracle@node1 database]$ ll                              //查看安装文件是否有执行权限

total 40

drwxr-xr-x 12 root root 4096 Aug 17  2009 doc

drwxr-xr-x  4 root root 4096 Aug 14  2009 install

drwxrwxr-x  2 root root 4096 Aug 14  2009 response

drwxr-xr-x  2 root root 4096 Aug 14  2009 rpm

-rwxr-xr-x  1 root root 4352 Aug 14  2009 runInstaller

drwxrwxr-x  2 root root 4096 Aug 14  2009 sshsetup

drwxr-xr-x 14 root root 4096 Aug 14  2009 stage

-rw-r--r--  1 root root 5400 Aug 18  2009 welcome.html

[oracle@node1 database]$ ./runInstaller                   //执行安装程序包

.............

[oracle@node1 /]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Fri Sep 16 13:49:49 2011

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup

ORACLE instance started.

Total System Global Area  418484224 bytes

Fixed Size      1336932 bytes

Variable Size    276826524 bytes

Database Buffers   134217728 bytes

Redo Buffers      6103040 bytes

Database mounted.

Database opened.

SQL> select instance_name,status from v$instance;

INSTANCE_NAME  STATUS

---------------- ------------

ora11g   OPEN

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

设置 Oracle11g 自动随系统启动

[oracle@node1 /]$ vi/etc/oratab 

ora11g:/u01/app/oracle/11g:y           //重启动标志设置成 'Y'

[oracle@node1 /]$vi /u01/app/oracle/11g/bin/dbstart 

ORACLE_HOME_LISTNER=$1    修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME  

[oracle@node1 /]$vi /u01/app/oracle/11g/bin/dbshut

ORACLE_HOME_LISTNER=$1    修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME

创建一个oracle启动文件:

[root@node1 ~]# cat /etc/init.d/oracle 

#!/bin/sh

# chkconfig: 345 61 61              //这里头4项的设置与添加到系统服务有关系,设置不正确会导致找不到服务

# description: Oracle 11g AutoRun Services

# /etc/init.d/oracle

#

# Run-level Startup script for the Oracle Instance, Listener, and

# Web Interface

export ORACLE_HOME=$ORACLE_BASE/11g

export ORACLE_SID=ora11g

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

# 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."

 reload|restart)

     $0 stop

     $0 start

 *)

     echo $"Usage: `basename $0` {start|stop|reload|reload}"

esac

exit 0

[root@node1 ~]#chmod 750 /etc/init.d/oracle             //赋于文件执行的权限

[root@node1 ~]#ln -s /etc/init.d/oracle /etc/rc1.d/K61oracle   

[root@node1 ~]#ln -s /etc/init.d/oracle /etc/rc3.d/S61oracle

[root@node1 ~]#chkconfig --level 345 oracle on          //设置启动

[root@node1 ~]#chkconfig --add oracle                   //将程序添加到系统服务

[root@node1 ~]#chkconfig --list oracle

ora11g          0:off 1:off 2:off 3:on 4:on 5:on 6:off

[root@node1 ~]#reboot                                   //重启测试

[root@node1 ~]# ps -ef |grep ora                        //检查进程情况 或者直接登录数据库

[root@node1 ~]$lsnrcl status                            //检查监听