1.硬件需求:
内存:
grep -i memtotal /proc/meminfo 官方要求至少1G内存
swap 交换分区 grep -i swaptotal /proc/meminfo
如果你的内存小于2G,那么交换分区为内存的 1.5倍
如果内存介于2G - 8G 之间,那么交换分区应该等于内存的大小
如果内存大于8G,那么交换分区应该为内存的 0.75 倍
注:以上交换分区只是建议的大小,实际安装时不强制要求这样设置
硬盘:df -k
企业版4.5G,那么安装的话,硬盘空间至少应该5G以上
2.安装前准备
创建oracle账号和用户组,并创建安装目录
编辑/etc/sysctl.conf和/etc/security/limits.conf修改系统参数
编辑/etc/profile,/home/oracle/.bash_profile,/home/oracle/.bashrc修改oracle用户配置文件
创建/etc/oraInst.loc文件设置oracle inventory
可以用以下脚本自动设置(OS:RHEL6.2)
#!/bin/bash
yum -y install binutils compat-libcap1 compat-libstdc++ gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio sysstat libaio-devel elfutils-libelf-devel unixODBC unixODBC-devel
#unzip linux.x64_11gR2_database_1of2.zip
#unzip linux.x64_11gR2_database_2of2.zip
#find database/ -name "db_install.rsp" | xargs -i cp {} .
ORACLE_BASE=/DataBase/oracle
ORACLE_PASSWORD="oracle_admin"
groupadd oinstall
groupadd dba
useradd -m -g oinstall -G dba oracle
echo "oracle:$ORACLE_PASSWORD" | chpasswd
mkdir -p $ORACLE_BASE
chown -R oracle:oinstall $ORACLE_BASE
chmod -R 775 $ORACLE_BASE
cat >> /etc/sysctl.conf <<EOF
fs.aio-max-nr = 3145728
fs.file-max = 6815744
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.shmmni = 4096
kernel.sem = 250 32000 100 142
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
EOF
cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2048
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
cat >> /etc/profile <<EOF
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
EOF
cat >> /home/oracle/.bash_profile <<EOF
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=$(hostname)
export ORACLE_BASE=/DataBase/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib:/usr/lib64:/usr/local/lib64
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_ASSUME_KERNEL=2.6.18
export NLS_LANG="american_america.UTF8"
export NLS_LANG="AMERICAN_AMERICA.US7ASCII"
EOF
cat >> /home/oracle/.bashrc <<EOF
alias sysdba='sqlplus "/ as sysdba"'
EOF
cat >> /etc/oraInst.loc <<EOF
inventory_loc=$ORACLE_BASE/oraInventory
inst_group=oinstall
EOF
chmod 664 /etc/oraInst.loc
sysctl -p
3. 准备oracle软件应答文件
根据rsp模板创建
su - oracle
cp /tmp/database/response/db_install.rsp ./
//假定oracle安装文件解压到/tmp目录下
vi db_install.rsp
//参考文件内说明修改,也可以参考http://loofeer.blog.51cto.com/707932/1119713
chmod 640 db_install.rsp
//避免文件被非授权访问
4.准备创建数据库应答文件
cp /tmp/database/response/dbca.rsp ./
//假定oracle安装文件解压到/tmp目录下
vi dbca.rsp 修改以下内容
GDBNAME = "ora11g"
SID = "ora11g"
SYSPASSWORD = "oracle11"
SYSTEMPASSWORD = "oracle11"
如果需要使用Oracle Enterprise Manager,则还需要修改以下参数如下:
EMCONFIGURATION="LOCAL"
SYSMANPASSWORD = "oracle11"
DBSNMPPASSWORD = "oracle11"
5.准备监听应答文件
cp /tmp/database/response/netca.rsp ./
//假定oracle安装文件解压到/tmp目录下
vi netca.rsp修改以下内容
INSTALL_TYPE=""custom""
6.安装oracle11g
cd /tmp/database
./runInstaller -silent -responseFile /home/oracle/db_install.rsp
安装说明:
a. 选项-silent表示静默安装,免安装交互,大部分安装信息也不输出
b. 选项-responseFile指定应答文件,要求用绝对路径
c. 执行./runInstaller -help可以查看安装帮助
d. 若忽略-silent选项,将会允许交互,对于应答文件中未设置的项可以再手工指定
e. 若添加-noconfig选项,可以忽略应答文件中的安装类型,而仅安装数据库软件
安装后运行
/DataBase/oracle/product/11.2.0/dbhome/root.sh
7.创建数据库
cd
dbca -silent -cloneTemplate -responseFile ./dbca.rsp
8.创建监听
netca /silent /responseFile /home/oracle/netca.rsp
9.开启oracle监听
lsnrctl start
dbstart $ORACLE_HOME
10.创建oracle服务脚本(可以看情况修改)
vi /etc/init.d/oracle
#!/bin/bash
#### 2013.1.18 by larry ####
# chkconfig: 35 90 10
# description: Oracle Database Service Daemon.
ORCL_BASE="/DataBase/oracle"
ORACLE_HOME=/DataBase/oracle/product/11.2.0/dbhome
ORACLE_OWNER=oracle
case "$1" in
start)
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start" #//.....
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" #//.......
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole" #//..OEM...
;;
stop)
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole" #//..OEM...
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" #//.......
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop" #//.....
;;
status)
if(pgrep "tnslsnr" && netstat -anpt | grep ":1521") &> /dev/null
then
echo "Oracle 11g Net Listener is running."
else
echo "Oracle 11g Net Listener is not running."
fi
if(netstat -anpt | grep ":1158" && netstat -anpt | grep ":5520") &> /dev/null
then
echo "Oracle 11g Enterprise Manager is running."
else
echo "Oracle 11g Enterprise Manager is not running."
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
11.为系统添加服务
chkconfig --add oracle
12. 通过脚本控制Oracle服务
service oracle status/stop/start/restart