CentOS6.4安装Oracle11g
1、下载软件
Oracle 11g R2(Linux x86-64)
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
2、检查操作系统的核心
2.6.32-358.2.1.el6.x86_64
# uname -r 检查一下
一般都是没有问题的。
3、包需求
我已经将上面包写成安装一个命令了,除非人品不好,不然应该一次成功
#yum install \
binutils \
compat-libcap1 \
compat-libstdc++-33 \
compat-libstdc++-33*.i686 \
elfutils-libelf-devel \
gcc \
gcc-c++ \
glibc*.i686 \
glibc \
glibc-devel \
glibc-devel*.i686 \
ksh \
libgcc*.i686 \
libgcc \
libstdc++ \
libstdc++*.i686 \
libstdc++-devel \
libstdc++-devel*.i686 \
libaio \
libaio*.i686 \
libaio-devel \
libaio-devel*.i686 \
make \
sysstat \
unixODBC \
unixODBC*.i686 \
unixODBC-devel \
unixODBC-devel*.i686
安装libXp
#yum -y install libXp
4、selinux,防火墙,不必要服务,机器名
1)selinux 关掉吧(不建议)
#vi /etc/sysconfig/selinux
SELINUX=enforcing改成SELINUX=disabled
然后执行命令setenforce 0,使其立即生效
2)防火墙
iptables
ip6tables
关闭
chkconfig iptables off
检查是否关闭
Chkconfig iptables --list
3)不必要的服务
cups 打印机
chkconfig cups off
postfix
chkconfig postfix off
4)机器名
#hostname
/etc/sysconfig/network中的hostname要与/etc/hosts中的一致
#vim /etc/hosts
127.0.0.1 localhost dbserver
::/ www.centos.company_name localhost
5、建立用户,组,安装目录
#groupadd oinstall
#groupadd dba
#groupadd oper
#useradd -g oinstall -G dba,oper oracle
#passwd oracle
#mkdir /home/oracle/orabase
#mkdir /home/oracle/orabase/orahome
chown -R oracle:oinstall /home/oracle/orabase
6、修改系统环境变量
1)内核参数
#vi /etc/sysctl.conf ##添加如下内容
kernel.shmall = 2097152
kernel.shmmax = 1073741824 #最小大于内存的一半
kernel.shmmni = 8192
kernel.sem = 250 32000 100 128 #数字间有空格
fs.file-max=6815744
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=10488576
关键语句解释如下:
kernel.sem:表示系统信号量和系统调用操作数
kernel.shmmax:表示最大共享内存值,建议大小设置为:共享内存值(一般为物理内存的一般)*1024*1024,如2G物理内存,则建议设置为1024*1024*1024=1073741824
还有特别注意sysctl.conf中shmmax ,shmall 已经有了,要注释掉,大于推荐值的,不需要更改
改好后,使之生效
sysctl -p
2)修改进程数和最大会话数
vim /etc/security/limits.conf
在文件后的末尾增加
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
注意:修改此文件是即时生效的,但可能要重登录后再看
ulimit -Sn
ulimit -Hn
ulimit -Su
ulimit -Hu
ulimit –Ss
ulimit –Hs
3) 关联设置
vi /etc/pam.d/login
如果是32位操作系统,在文件的末尾增加,64位操作系统不需要增加
#session required /lib/security/pam_limits.so
session required pam_limits.so
4)修改/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
5)设置oracle用户环境变量
cd /home/oracle
vi .bash_profile
ORACLE_BASE=/home/oracle/orabase
ORACLE_HOME=$ORACLE_BASE/orahome
--下面的配置是安装oracle后新建的oracle实例的名字,建议最多5位
ORACLE_SID=orcl 或 ora11g
PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
Export NLS_LANG=”SIMPLIFIED CHINESE_CHINA”.ZHS16GBK
7、设置系统
系统只支持Red Hat Enterprise Linux 6,CentOS 6其实就是RHEL6,但Oracle不认,所以要改一下
vi /etc/redhat-release
#CentOS release 6.4 (Final)这行注释掉,加上下面的
Red Hat Enterprise Linux 6
8、开始安装
1)以root用户登录
export DISPLAY=:0
再执行xhost +命令,xhost空格+,使得所有客户端都可以访问
返回信息为:
access control disabled clientscan connect from an host
挂载系统光盘
#mount –t iso9660 /dev/cdrom/media/cdrom
或#mount/dev/cdrom /media/cdrom
#df
显示光盘已挂载。
这时可以复制文件到本机并解压
#unzip file_name –ddirectory_name
用oracle用户进入Linux
#su –oracle
进入终端
$sh /media/cdrom/runInstaller
安装过程是图形界面,按照提示一直安装就行,安装过程中会要求你用root用户身份执行命令root.sh和orainsRoot.sh,自己照着提示的完整路径做就是,还有会要求制定一个inventory目录,随便哪个位置都行。
先决条件检查时,会提示缺少软件包,都是32位的
Liaio-0.3.106 compat-libstdc++-33-3.2.3 libaio-devel-0.3.105 libgcc-3.4.6 libstdc++-3.4.6 unixODBC-2.2.11 unixODBC-devel-2.2.11 pdksh-5.2.14 除了pdksh外,其他都已安装过,再次安装也不行。
运行netca创建listener
运行dbca创建数据库ora11g
此时需要注意字符集的选择,对于含有中文数据的数据库来说,可以选择Unicode编码(如果字符集选择不对,后面再修必时非常麻烦)。或者选择ZHS16GBK-GBK
2)系统重启后启动oracle过程
在oracle用户下,进入终端输入
sqlplus
SQL*Plus: Release 11.2.0.1.0 Production on MonFeb 20 22:46:00 2012
Copyright (c) 1982, 2009, Oracle. Allrights reserved.
Enter user-name: sys as sysdba
Enter password:
输入正确的用户名和密码,注意sys用户登录的话必须加上 as sysdba
然后启动oracle服务:
sql> startup
sql> exit
再启动oracle监听程序
[oracle@Ajita 桌面]$ cd $ORACLE_HOME/bin
[oracle@Ajita bin]$ lsnrctl start
如果想启动em服务,还要输入
[oracle@Ajita bin]$emctl start dbconsole
然后访问地址:https://localhost:1158/em/console/logon/logon
注:oracle11g是没有isqlplus的
3)测试
重新打开一个终端,如下输入:
$ sqlplus sys as sysdba @localhost :1521/orcl
输入密码,进入到oracle的sqlplus命令行下,执行一个最简单的查询:
SQL> select table_name from user_tables;
9、sqlplus环境中按方向键乱码解决方法
在centos6.4下安装了oracle11g,进入sqlplus后按方向键会出现“^[[D^[[D”乱码,解决方法如下:
1) 先安装以下几个安装包,除了rlwrap包其他都能在系统iso文件中找到。
可使用如下命令
#yuminstall file_name 包括32位和64位
readline-6.0-4.el6.i686.rpm
readline-devel-6.0-4.el6.i686.rpm
ncurses-devel-5.7-3.20090208.el6.i686.rpm
compat-libtermcap-2.0.8-49.el6.i686.rpm
compat-readline5-5.2-17.1.el6.i686.rpm
rlwrap-0.37-1.el5.i386.rpm
下载rlwrap-0.37.tar.gz,然后上传到
/tmp目录下。
2)解压缩安装
[root@localhosttmp]#tar -zxvf rlwrap-0.37.tar.gz
[root@localhosttmp]#cd rlwrap-0.37
[root@localhostrlwrap-0.37]#ls
[root@localhostrlwrap-0.37]#./configure
[root@localhostrlwrap-0.37]#make
[root@localhostrlwrap-0.37]#makeinstall
3) 修改 .bash_profile文件
修改oracle用户下的 .bash_profile文件,在最后添加如下两行:
aliassqlplus="rlwrap sqlplus"
aliasrman="rlwrap rman"
退出重进oracle用户即可
10、启动流程
这时启动Oracle 的流程如下
1)以root登录
2)export DISPLAY=:0
3)vncserver启动VNC服务
4)xhost +
5)su oracle切换用户
6)cd ~
7)source .bash_profile
8)lsnrctl start
9)sqlplus / as sysdba
10)startup open;
11、配置Oracle随系统启动,必须先创建数据库
1) 以root登录,修改oratab
#vi /etc/oratab
xx:/opt/oracle/11.2.0:Y (将N改为Y)
2) 以oracle登录,修改dbstart、dbshut
$vi /opt/oracle/11.2.0/bin/dbstart
ORACLE_HOME_LISTENER=$ORACLE_HOME (原来是$1)
保存
$vi /opt/oracle/11.2.0/bin/dbshut
ORACLE_HOME_LISTENER=$ORACLE_HOME (原来是$1)
保存
3) 以root登录
#cd /etc/rc.d/init.d
#vi oracle11g
#!/bin/bash
#chkconfig:35 61 61
#decription: Oracle11g AutoRun Service
#/etc/rc.d/init.d/oracle11g
export ORACLE_SID=ora11g
exportORACLE_HOME=/home/oracle/orabase/orahome
export PATH=$PATH:$ORACLE_HOME/bin
case “$1” in
start)
echo “Starting Oracle Database:’
su – oracle –c $ORACLE_HOME/bin/dbstart
;;
stop)
echo “Shutting down Oracle Database:”
su – oracle –c $ORACLE_HOME/bin/dbshut
;;
reload|restart)
$0 stop
$o start
;;
*)
echo “Usage:{start|stop|reload|restart}”
exit 1
esac
exit 0
保存后
#chkconfig –add oracle
查看是否已启动
#chkconfig –list oracle11g
授权
#chmod 750 /etc/rc.d/init.d/oracle11g
4) 测试运行
#cd /etc/rc.d/init.d
#./oracle11g start
#./oracle11g stop