安装前准备工作:
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 //检查监听