一、运行环境
注意:oracle11安装的SWAP需要在2.57G以上,因此在安装centos时候,确保swap大于2.57G
系统环境:centos 5.6 32位(图形安装)
硬盘分区: /boot 150M swap 4096M(最少要3G以上) / 10G /home 5G /tmp 5G /usr 10G /usr/local 10G /var 10G /opt 10G /data 剩余所有df -h
#同步时钟
yum -y install ntp ntpdate time.nist.gov echo "* */2 * * * /sbin/ntpdate time.nist.gov" >> /etc/crontab关闭服务:
iptables selinux portmap rpc.statd cupsd avahi-daemon sendmailkillall 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二、安装oracle 11gR2 依赖的组件包
#需要以下组件: Downloading Packages: (1/22): libaio-devel-0.3.106-5.i386.rpm | 12 kB (2/22): numactl-devel-0.9.8-11.el5.i386.rpm | 17 kB (3/22): elfutils-libelf-devel-0.137-3.el5.i386.rpm | 24 kB (4/22): elfutils-libelf-devel-static-0.137-3.el5.i386.rpm | 66 kB (5/22): libgomp-4.4.4-13.el5.i386.rpm | 72 kB (6/22): libgcc-4.1.2-50.el5.i386.rpm | 96 kB (7/22): nscd-2.5-58.el5_6.3.i386.rpm | 167 kB (8/22): sysstat-7.0.2-3.el5_5.1.i386.rpm | 170 kB (9/22): pdksh-5.2.14-36.el5.i386.rpm | 198 kB (10/22): compat-libstdc++-33-3.2.3-61.i386.rpm | 232 kB (11/22): libstdc++-4.1.2-50.el5.i386.rpm | 362 kB (12/22): glibc-headers-2.5-58.el5_6.3.i386.rpm | 603 kB (13/22): unixODBC-devel-2.2.11-7.1.i386.rpm | 739 kB (14/22): unixODBC-2.2.11-7.1.i386.rpm | 832 kB (15/22): kernel-headers-2.6.18-238.9.1.el5.i386.rpm | 1.1 MB (16/22): glibc-devel-2.5-58.el5_6.3.i386.rpm | 2.0 MB (17/22): cpp-4.1.2-50.el5.i386.rpm | 2.7 MB (18/22): libstdc++-devel-4.1.2-50.el5.i386.rpm | 2.8 MB (19/22): gcc-c++-4.1.2-50.el5.i386.rpm | 3.4 MB (20/22): gcc-4.1.2-50.el5.i386.rpm | 5.2 MB (21/22): glibc-2.5-58.el5_6.3.i686.rpm | 5.3 MB (22/22): glibc-common-2.5-58.el5_6.3.i386.rpmyum -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
/sbin/ldconfig三、调整内核参数
vi /etc/sysctl.conf fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 536870912 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#修改limits.conf
vi /etc/security/limits.conf #oracle settings oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536#修改系统版本(Redhat 5.×系列系统略过这步)
cp /etc/redhat-release /etc/redhat-release.bk vi /etc/redhat-release #修改内容为: Red Hat Enterprise Linux AS release 5 (Taroon)#修改/etc/pam.d/login
#添加以下内容: session required /lib/security/pam_limits.so session required pam_limits.so#修改/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#修改/etc/csh.login
vi /etc/csh.login #添加以下内容: if ( $USER == "oracle" ) then limit maxproc 16384 limit deors 65536 endif四、创建oracle用户
groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle passwd oracle #753951mkdir -p /data/oracle
mkdir -p /data/oralnventory mkdir -p /data/software chown -R oracle:oinstall /data/oracle chown -R oracle:oinstall /data/software chown -R oracle:oinstall /data/oralnventory#设置用户环境变量
#su - oracle $ vi .bash_profile #添加以下内容: ORACLE_SID=kerry; export ORACLE_SID ORACLE_BASE=/data/oracle; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin; export PATHORACLE_BASE下是admin和product
ORACLE_HOME下则是ORACLE的命令、连接库、安装助手、listener等等一系列的东东。 这只是ORACLE自己的定义习惯。ORACLE_HOME比ORACLE_BASE目录要更深一些。也就是说:ORACLE_HOME=$ORACLE_BASE/product/versionORACLE_BASE是oracle的根目录,ORACLE_HOME是oracle产品的目录。
简单说,你如果装了2个版本的oracle,那么ORACLE_BASE可以是一个,但ORACLE_HOME是2个全局数据库名用于区别分布式数据库各个不同机器上的实例。
SID用于区别同一台机器上的不同实例, 即一个用于外部区分。 一个用于内部区分。$source .bash_profile
五、安装oracle
#上传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 /data/software/database $./runInstaller #(到oracle安装文件所在目录执行该命令)注意:
1\需要安装yum install vnc* 并启动vncserver服务(chkconfig vncserver on),并执行xhost +,
如果不操作此命令,可能启动不了图形化
2\虚拟机要安装vmwaretools,否则图形化安装会不停地闪烁,影响安装
#方案口令:大写字母+数字+小写字母
#以root身份执行脚本
su -
/data/oralnventory/orainstRoot.sh /data/oracle/product/11.2.0/db_1/root.sh六、开机启动设置
#自动启动和关闭数据库实例和监听 vi /oracle/oracle/product/11.2.0/db_1/bin/dbstart ORACLE_HOME_LISTNER=$1 #修改为: ORACLE_HOME_LISTNER=$ORACLE_HOMEvi /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 Interfaceexport ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_SID=kerry 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 displaycase "$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}" exit 1 esac exit 0chmod 750 /etc/init.d/oracle
ln -s /etc/init.d/oracle /etc/rc1.d/K61oracle ln -s /etc/init.d/oracle /etc/rc3.d/S61oracle chkconfig --level 345 oracle on chkconfig --add oraclechkconfig --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 Interfaceexport ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_SID=kerry export PATH=$PATH:$ORACLE_HOME/bin ORA_OWNR="oracle"case "$1" in
start) echo -n $"Starting Oracle EM DB Console:" su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole" echo "OK" ;; stop) echo -n $"Stopping Oracle EM DB Console:" su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole" echo "OK" ;; *) echo $"Usage: $0 {start|stop}" esacchmod 750 /etc/init.d/oraemctl
#启动EM service oraemctl starthttp的管理地址:https://IP:1158/em ,默认账号:system,密码自己设置的
七、安装过程中排错总结
#1、机器CPU如果是AMD64位,装Linux32系统,再装32位Oracle会出现netca无法执行的错误,网上说,需要打p8670579_112010_LINUX.zip这个补丁就可以了 #下载地址:su - oracle
cd /data/software unzip p8670579_112010_LINUX.zip cd 8670579 /data/oracle/product/11.2.0/db_1/OPatch/opatch apply -invPtrLoc /data/oracle/product/11.2.0/db_1/oraInst.loc #其中/apps/oracle/product/11.2.0/db_1/为ORACLE_HOME,可使用$ORACLE_HOME代替
#补丁打好后,点击安装程序的retry,继续安装即可。
#2、libail程序包缺失
yum -y install libaio-devel libaio
/sbin/ldconfig#3、严重: 无法在指定的范围内为以下进程分配端口: JMS [5540-5559],RMI [5520-5539],Database Control [5500-5519],EM Agent [3938] | [1830-1849]
#主机名与IP不对导致
vi /etc/hosts