[1]安装Oracle必需的依赖包(用户为root)[root@db01 ~]# yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 ksh elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 make sysstat unixODBC unixODBC-devel
(用户为root)[root@db01 ~]# vi /etc/sysctl.conf
用#号注释掉下面3句:
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
在文件结尾处增加下面内容:
net.ipv4.ip_local_port_range = 9000 65500
fs.file-max=6815744
kernel.shmall=10523004
kernel.shmmax=6465333657
kernel.shmmni=4096
kernel.sem=250 32000 100 128
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_max=1048576
fs.aio-max-nr=1048576
内核参数立即生效:
[root@db01 ~]# sysctl -p
为Oracle创建用户和组(用户为root)[root@db01 ~]# groupadd -g 200 oinstall
[root@db01 ~]# groupadd -g 201 dba
[root@db01 ~]# useradd -u 440 -g oinstall -G dba -d /usr/oracle oracle
设置oracle这个用户的密码,此用户用于安装和运行Oracle数据库。
[root@db01 ~]# passwd oracle
添加认证库:
[root@db01 ~]# vi /etc/pam.d/login
在第14行附近增加红色内容:
session required pam_selinux.so open
session required pam_namespace.so
session required pam_limits.so
session optional pam_keyinit.so force revoke
session include system-auth
-session optional pam_ck_connector.so
[root@db01 ~]# vi /etc/security/limits.conf
在文件尾部添加:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
[root@db01 ~]# 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
[oracle@db01 ~]$ chmod 755 /usr/oracle
[oracle@db01 ~]$ mkdir /usr/oracle/app
[oracle@db01 ~]$ chmod 775 /usr/oracle/app
[oracle@db01 ~]$ mkdir /usr/oracle/oradata
[oracle@db01 ~]$ chmod 775 /usr/oracle/oradata
[oracle@db01 ~]$ mkdir /usr/oracle/tmp
[oracle@db01 ~]$ vi ~/.bash_profile
在文件尾部添加:
umask 022
export ORACLE_BASE=/usr/oracle/app
[5]使用oracle用户登陆,解压缩拷贝到该用户home目录下的安装包
[oracle@db01 ~]$ cd ~/tmp
[oracle@db01 tmp]$ unzip linux.x64_11gR2_database_1of2.zip
[oracle@db01 tmp]$ unzip linux.x64_11gR2_database_2of2.zip
[oracle@db01 tmp]$ ./database/runInstaller
[6]忽略email和oracle官网密码,直接next
[7]选择 "Install database software only"
[8]选择 "Single Instance Database installation"
[9]产品语言选择English
[10]数据库版本选择"Enterprise Edition",随后一路next
[11]oracle依赖库检测,选择ignore All,随后一路next
[12]提示执行配置脚本,另开一个Terminal,su 到root用户身份,执行提示的两个脚本,回车确认即可。
[root@db01 tmp]# /usr/oracle/oraInventory/orainstRoot.sh
[root@db01 tmp]# /usr/oracle/app/product/11.2.0/dbhome_1/root.sh
[13]配置oracle用户的环境变量(用户为oracle)[oracle@db01 ~]$ vi ~/.bash_profile
在文件尾部添加:
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
[oracle@db01 ~]$ source ~/.bash_profile
[oracle@db01 ~]$ rm -rf tmp
[14]配置oracle网络监听器,用于接受远程的客户端连接。随后一路next
[oracle@db01 ~]$ netca
如果在设置1521端口的时候,提示该端口被占用,可能设置无效,是否继续时,选择是。
随后一路next,结束。
[15]修正oracle网络监听器的配置文件。
[oracle@db01 ~]$
vi /usr/oracle/app/product/11.2.0/dbhome_1/network/admin/listener.ora
修改HOST的值,红色部分是修改后的样子:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dbserver.localdomain)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /usr/oracle/app
[oracle@db01 ~]$ vi /etc/hosts
在文件尾部添加:
192.168.100.64 dbserver.localdomain
[17]重新启动oracle 网络监听器
[oracle@db01 ~]$ lsnrctl stop
[oracle@db01 ~]$ lsnrctl start
[18]安装数据库
[oracle@db01 ~]$ dbca
随后一路next
在设置全局数据库名和SID(远程客户端连接的必要参数)界面时:
Grobal Database name :hcorcl
SID:hcorcl
[19] 在设置密码界面时,为4个用户选择统一密码管理(例如:orcl):
[20] 选择字符编码界面时,选择Use Unicode(AL32UTF8):
(WE8MSWIN1252是西文字符集,如果OS是英文的,oracle默认的就是WE8MSWIN1252,如果出现中文,就会是乱码)
随后一路next
[21]设置oracle开机自动启动
[oracle@db01 ~]$ vi /etc/oratab
修改前:
db01:/usr/oracle/app/product/11.2.0/dbhome_1:N
修改后
db01:/usr/oracle/app/product/11.2.0/dbhome_1:Y
[oracle@db01 ~]$ vi ~/.bash_profile
在文件尾部添加:
export ORACLE_SID=hcorcl
注:hcorcl就是在dbca安装时设置的SID
创建开机启动的脚本,要用root用户身份:
[root@db01 ~]# vi /etc/rc.d/init.d/oracle
将下面红色内容添加进去:
#!/bin/bash
# oracle: Start/Stop Oracle Database 11g R2
#
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
#
# processname: oracle
. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
ORACLE_HOME=/usr/oracle/app/product/11.2.0/dbhome_1
ORACLE_USER=oracle
case "$1" in
'start')
if [ -f $LOCKFILE ]; then
echo $0 already running.
exit 1
fi
echo -n $"Starting Oracle Database:"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch $LOCKFILE
;;
'stop')
if [ ! -f $LOCKFILE ]; then
echo $0 already stopping.
exit 1
fi
echo -n $"Stopping Oracle Database:"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f $LOCKFILE
;;
'restart')
$0 stop
$0 start
;;
'status')
if [ -f $LOCKFILE ]; then
echo $0 started.
else
echo $0 stopped.
fi
;;
*)
echo "Usage: $0 [start|stop|status]"
exit 1
esac
exit 0
将该脚本配置为开机自动:
[root@db01 ~]# chmod 755 /etc/rc.d/init.d/oracle
[root@db01 ~]# chkconfig --add oracle
[root@db01 ~]# chkconfig oracle on
注:以后在Terminal就可以用oracle start|stop 等命令来开启或关闭oracle的数据库服务。