第二十四章 Centos下的Oracle 11g安装

Oracle安装文档

本次安装是在自己所建的虚拟机上安装的,用到了视图链接工具VNC

1.本次所用安装包:

linux.x64_11gR2_database_1of2.zip、linux.x64_11gR2_database_2of2.zip

2.参考链接如下:

Oracle安装参考链接:http://www.linuxidc.com/Linux/2015-02/113222.html
VNC安装参考链接:http://www.linuxidc.com/Linux/2015-01/112326.html
Oracle 11G CentOS 6.5:
http://www.aiplaypc.com/229.html
http://blog.csdn.net/cafardhaibin/article/details/25071249

3.安装前的配置:

(1)安装前的基本准备工作:

  1. 安装VMware Workstation
  2. 安装CentOS,主机命名为:oracledb
  3. 磁盘需要大于30G(经验值)
  4. 内存必须大于1G(官方要求)
  5. 操作系统swap分区大于2G(如果物理内存小于2G,则需要设置,设置值为物理内存的1-2倍,如果物理内存大于2G,则无需设置。)
  6. 虚拟机网络连接方式:桥接模式(B)直接连接物理网络
  7. 安装完成后设置虚拟机网络(ipv4)为固定IP地址(system-config-network)
  8. 进行网络测试OK,则操作系统环境准备完毕
  9. 安装虚拟机时一定要选择:先创建虚拟机后安装操作系统
  10. 为了安装Oracle,故选择安装类型为:桌面版本。
  11. 安装SSH Secure Shell Client并连接主机

(2)基本的主机配置

  1. 以下步骤中的命令太长的可通过:SSH Secure Shell Client 直接复制进行
  2. vi基本命令:i—编辑状态 退出编辑并保存时先按ESC键,再按符合“:wq”或者”:x”即可
  3. 注意每个步骤时的当前用户,是root还是oracle
  1. step-1#修改主机名
  2. [root@oracledb ~]# sed -i "s/HOSTNAME=localhost.localdomain/HOSTNAME=oracledb/" /etc/sysconfig/network
  3. [root@oracledb ~]# hostname oracledb
  4. step-2#添加主机名与IP对应记录
  5. [root@oracledb ~]# vi /etc/hosts
  6. 192.168.1.8 oracledb
  7. step-3#关闭防火墙Selinux
  8. [root@oracledb ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
  9. [root@oracledb ~]# setenforce 0

修改网络配置

  1. 1.修改网卡配置 编辑:vi /etc/sysconfig/network-scripts/ifcfg-eth0
  2. DEVICE=eth0 #描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为eth0
  3. #设置网卡获得ip地址的方式,可能的选项为static,dhcp或bootp,分别对应静态指定的 ip地址,通过dhcp协议获得的ip地址,通过bootp协议获得的ip地址
  4. BOOTPROTO=static
  5. BROADCAST=192.168.0.255 #对应的子网广播地址
  6. HWADDR=00:07:E9:05:E8:B4 #对应的网卡物理地址
  7. IPADDR=192.168.1.147 #如果设置网卡获得 ip地址的方式为静态指定,此字段就指定了网卡对应的ip地址
  8. NETMASK=255.255.255.0 #网卡对应的网络掩码
  9. NETWORK=192.168.1.0 #网卡对应的网络地址
  10. 2.修改网关配置
  11. 编辑:vi /etc/sysconfig/network 修改后如下: 
  12. NETWORKING=yes(表示系统是否使用网络,一般设置为yes。如果设为no,则不能使用网络,而且很多系统服务程序将无法启动)
  13. HOSTNAME=centos(设置本机的主机名,这里设置的主机名要和/etc/hosts中设置的主机名对应)
  14. GATEWAY=192.168.0.1(设置本机连接的网关的IP地址。)
  15. 我在修改这里打开编辑时前三项已经默认有了所以只增加了GATEWAY
  16. 3.修改DNS 配置
  17. 编辑:vi /etc/resolv.conf 修改后如下: 
  18. nameserver 即是DNS服务器IP地址,第一个是首选,第二个是备用。
  19. 4.重启网络服务
  20. 执行命令:
  21. service network restart     /etc/init.d/network restart

(3)安装以下RPM软件包(加32bit括号注解的是32位版本的软件包,对应同名未加注解的则是64位版本的该软件包。在64位版本平台上,两种版本都要安装)

binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
compat-libstdc++-33-3.2.3 (32 bit)
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-2.5-24 (32 bit)
glibc-common-2.5
glibc-devel-2.5
glibc-devel-2.5 (32 bit)
glibc-headers-2.5
ksh-20060214
libaio-0.3.106
libaio-0.3.106 (32 bit)
libaio-devel-0.3.106
libaio-devel-0.3.106 (32 bit)
libgcc-4.1.2
libgcc-4.1.2 (32 bit)
libstdc++-4.1.2
libstdc++-4.1.2 (32 bit)
libstdc++-devel 4.1.2
make-3.81
sysstat-7.0.2

直接执行以下的yum安装命令,若已安装会有提示

yum install -y binutils
yum install -y compat-libstdc

yum install -y elfutils-libelf
yum install -y gcc

yum install -y glibc
yum install -y ksh

yum install -y libaio
yum install -y libgcc

yum install -y libstdc
yum install -y make

yum install -y sysstat
yum install libXp
-y
yum install -y glibc-kernheaders

或者通过以下方法更加快一些:

  1. yum install gcc libaio libaio-devel libstdc++ libstdc++-devel libgcc elfutils-libelf-devel glibc-devel glibc-devel gcc-c++ compat-libstdc++-33 unixODBC unixODBC-devel

有一个rpm包需要独立下载pdksh-5.2.14-37.el5_8.1.x86_64,然后rpm -ivh安装即可。下载地址:pdksh-5.2.14-37.el5_8.1.x86_64

(4)调整内核参数及用户限制

以root用户进行配置文件的编辑

Ⅰ.编辑/etc/sysctl.conf文件,设置相关参数的系统默认值。如果该文件中已有相关参数的设置,则确保参数值不小于如下对应值;如果还没有相关参数的设置,则按照如下格式添加相应的参数设置行

  1. [root@oracledb ~]#vim /etc/sysctl.conf
  2. fs.aio-max-nr = 1048576
  3. fs.file-max = 6815744
  4. kernel.shmall = 2097152
  5. kernel.shmmax = 536870912
  6. kernel.shmmni = 4096
  7. kernel.sem = 250 32000 100 128
  8. net.ipv4.ip_local_port_range = 9000 65500
  9. net.core.rmem_default = 262144
  10. net.core.rmem_max = 4194304
  11. net.core.wmem_default = 262144
  12. net.core.wmem_max = 1048586
  13. [root@oracledb ~]# sysctl -p (备注:用于输出配置后的结果,如果有错误会提示)

Ⅱ.编辑/etc/security/limits.conf文件,修改操作系统对oracle用户资源的限制。在该文件中添加如下行

  1. [root@localhost ~]#vim /etc/security/limits.conf
  2. oracle soft nproc 2047
  3. oracle hard nproc 16384
  4. oracle soft nofile 1024
  5. oracle hard nofile 65536
  6. oracle hard stack 10240

(5)目录结构及空间规划可查看参考链接

http://www.linuxidc.com/Linux/2015-02/113222.htm

(6)数据库安装用户和组的创建

使用root用户,进行如下操作:
创建oinstall组

  1. [root@localhost ~]#groupadd -g 5000 oinstall

创建dba组

  1. [root@localhost ~]#groupadd -g 501 dba

创建oracle用户

  1. [root@localhost ~]#useradd -g oinstall -G dba oracle(执行后会在/home目录下创建oracle次目录)

(7)创建相应的文件系统(或安装目录)并改变相应的权限(记住路径,方便之后的查找)

  1. [root@localhost ~]# cd /home/oracle
  2. [root@localhost oracle]# mkdir -p /home/oracle/app/oracle
  3. [root@localhost oracle]# chown -R oracle:oinstall /home/oracle/*
  4. [root@localhost oracle]# chmod -R 775 /home/oracle/*
  5. [root@localhost oracle]#

(执行命令后将Oracle安装包用Xftp导入到/home/oracle目录下解压)

(8)数据库安装用户的profile文件的设置

使用oracle用户进行如下操作

假设数据库(实例)名为powerdes。编辑/home/oracle/.bash_profile(./bash_profile文件是解压包解压后生成),插入以下内容(数据库实例名可以自己设置,但是要记住。.bash_profile文件是主要配置环境变量的文件,如果出现执行文件没有找到的情况,很有可能就是里边的path写错了)。

  1. export ORACLE_BASE=/home/oracle/app/oracle #这个路径为(5)中的你创建的目录
  2. export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1
  3. export ORACLE_SID=powerdes #数据库实例名。实例名必须记住,创数据库时会用到
  4. export PATH=$ORACLE_HOME/bin:$PATH #非常重要!涉及的所有的可执行的文件都在PATH下边
  5. export ORACLE_TERM=xterm
  6. export TNS_ADMIN=$ORACLE_HOME/network/admin
  7. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/oracm/lib:$ORACLE_HOME/lib
  8. export CLASSPATH=$CLASSPATH:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/jlib:$ORACLE_HOME/network/lib
  9. export LANG=en_US.gbk
  10. export NLS_LANG=american_america.ZHS16GBK
  11. export EDITOR=vi

(9)准备VNC远程连接linux桌面

参考链接:http://www.linuxidc.com/Linux/2015-01/112326p2.html

Ⅰ.在Windows上安装VNC

Ⅱ.在linux上安装VNC

先检查一下服务器是否已经安装了VNC服务。检查服务器是否安装VNC的命令如下:

  1. [root@localhost ~]# rpm -qa | grep vnc
  2. [root@localhost ~]#

如果没有安装vnc可以使用下面命令进行安装:

yum install -y tigervnc tigervnc-server

顺利安装完,检查一下

  1. [root@localhost ~]# rpm -qa|grep vnc
  2. tigervnc-1.1.0-16.el6.CentOS.x86_64
  3. tigervnc-server-1.1.0-16.el6.centos.x86_64
  4. libvncserver-0.9.7-4.el6.x86_64
  5. [root@localhost ~]#

Ⅲ.配置VNC

编辑/etc/sysconfig/vncservers配置文件(这是设置VNC用户的文件),在该文件里编辑以下内容:

  1. vim /etc/sysconfig/vncservers
  2. VNCSERVERS="1:root" #配置远程桌面登录的用户名,如果两个用户,则使用VNCSERVERS="1:user1 2:user2"(VNCSERVERS="usernumber:myusername")
  3. VNCSERVERARGS[1]="-geometry 800x600" #设置分辨率,连接上服务器后也可以更改

Ⅳ.设置VNC密码

使用下面的命令为VNC设置密码(需要使用su命令切换到需要设置VNC密码的用户上,例如:
su - oracle,其中oracle就是在上面配置文件内写的帐号)

  1. [root@localhost ~]# vncpasswd
  2. Password:
  3. Password must be at least 6 characters - try again
  4. Password:
  5. Verify:
  6. [root@localhost ~]#

注意:密码至少为6个字符

Ⅴ.建立VNC链接

配置VNC完成后,需要执行命令service vncserver restart重新启动VNC。然后打开安装在Windows中的VNC,输入要连接的服务器IP。注意冒号后边对应的是你设置的VNC用户对应的用户名编号。如下图所示

第十九章 Centos下的Oracle安装 - 图1

注意:直接连接会发现连接超时。如下图所示:

第十九章 Centos下的Oracle安装 - 图2

解决方法:开启防火墙VNCServer端口
首先编辑/etc/sysconfig/iptables文件

  1. #vim /etc/sysconfig/iptables

在“-A INPUT -m state —state NEW -m tcp -p tcp —dport 22 -j ACCEPT”下面添加一行“-A INPUT -m state —state NEW -m tcp -p tcp —dport 5901 -j ACCEPT”,然后重启iptables服务。

  1. #/etc/init.d/iptables restart

连接成功后会显示出虚拟机的桌面。然后点击system下的preferences下的display

第十九章 Centos下的Oracle安装 - 图3

点击display后会弹出如下图所示的窗口,根据自己的需求更改分辨率

第十九章 Centos下的Oracle安装 - 图4

然后新打开一个终端,在命令行中执行
export DISPLAY=localhost:1.0(要连接服务器IP:vnc用户对应的编号)命令与xhost +命令

  1. [root@powerlong4 rlwrap-0.37]# xhost +
  2. access control disabled, clients can connect from any host
  3. [root@powerlong4 rlwrap-0.37]#

表示linux下视窗环境已经准备OK,可以进行oracle安装。如下图

第十九章 Centos下的Oracle安装 - 图5

4.安装过程

FAQ问题—用oracle用户安装报错

1.用oracle用户安装报错

  1. Checking monitor: must be configured to display at least 256 colors Failed <<<<
  2. >>> Could not execute auto check for display colors using command /usr/X11R6/bin/xdpyinfo. Check if the DISPLAY variable is set.

解决方法:

  1. 1root 下先执行#xhost +
  2. 2su oracle
  3. 3export DISPLAY=:0.0

(1)开始安装oracle

切换oracle用户然后cd到你解压完安装包的database下,执行./runInstaller。
然后vnc就会弹出安装界面窗口。过程如下各图:
不建议填写email,下边的创建密码选项可以不选,点击next(填写有可能卡死在这个地方)

第十九章 Centos下的Oracle安装 - 图6

选择i want to remain……..,点击continue

第十九章 Centos下的Oracle安装 - 图7

选择第二个仅安装数据库软件,点击next

第十九章 Centos下的Oracle安装 - 图8

选择第一个,点击next

第十九章 Centos下的Oracle安装 - 图9

选择如下图所示的languages,点击next

第十九章 Centos下的Oracle安装 - 图10

选择第一个,点击next

第十九章 Centos下的Oracle安装 - 图11

默认点击next

第十九章 Centos下的Oracle安装 - 图12

默认点击next

第十九章 Centos下的Oracle安装 - 图13

按下图选择组名,点击next

第十九章 Centos下的Oracle安装 - 图14

由于CentOS版本较高,所以Oracle11g在check的时候不识别高版本lib包,选择lgnore All,点击next

第十九章 Centos下的Oracle安装 - 图15

点击finish开始安装

第十九章 Centos下的Oracle安装 - 图16

安装快结束时,会弹出一个窗口通知要执行两个脚本,点击OK,再点击close结束安装

第十九章 Centos下的Oracle安装 - 图17

执行之前提示的两个脚本,分别cd进入相应的路径下,执行sh orainstRoot.sh和sh root.sh如下图

第十九章 Centos下的Oracle安装 - 图18

第十九章 Centos下的Oracle安装 - 图19

至此oracle安装已经完成

(2)数据库建库

注意:以下命令都是在oracle用户下执行的。
在执行以下所需的命令时,如果不能弹出相应的设置窗口,可以执行命令service vncserver restart将VNC重新启动一下,然后再将视图环境重新设置一遍:执行

export DISPLAY=localhost:1.0
xhost +

显示如下图:

第十九章 Centos下的Oracle安装 - 图20

然后再执行相应的执行命令。

在建库前首先创建监听器,切换用户oracle,cd到安装时配置环境变量中的export ORACLE_HOME下的bin中,执行./netca,会在vnc上弹出添加监听器的窗口。需要注意的是在选定监听程序的协议的时候,选择TPC协议,选择标准端口1521(可以参考下列各图)

选择Listener configuration,点击next

第十九章 Centos下的Oracle安装 - 图21

默认选择Add,点击next

第十九章 Centos下的Oracle安装 - 图22

设置监听器名称,点击next

第十九章 Centos下的Oracle安装 - 图23

默认选择TCP,点击next

第十九章 Centos下的Oracle安装 - 图24

默认选择Use the standard port number of 1521,点击next

第十九章 Centos下的Oracle安装 - 图25

默认选择No,点击next

第十九章 Centos下的Oracle安装 - 图26

点击next

第十九章 Centos下的Oracle安装 - 图27

点击next后点击finish完成监听器创建。创建完监听器后执行./dbca文件创建数据库。

点击Next

第十九章 Centos下的Oracle安装 - 图28

选择Create a Database,点击Next

第十九章 Centos下的Oracle安装 - 图29

选择Custom Database,点击Next

第十九章 Centos下的Oracle安装 - 图30

Global Database Name框:输入前面设定的数据库名
SID框:自动出现和数据库名相同的内容作为数据库实例名,单实例情况下不作改动
点击Next

注意:下图的global database name必须跟之前.bash_profile里边设的ORACLE_SID的名字相同。

第十九章 Centos下的Oracle安装 - 图31

默认所选,点击Next

第十九章 Centos下的Oracle安装 - 图32

Use Different Administrative Passwords表格的Password和Confirm Password列中分别为User Name列SYS、SYSTEM、DBSNMP和SYSMAN用户输入口令并重复一次输入(如密码设置过于简单,下一步前会有弹出窗口提示确认接受安全风险)sys和system密码设置可以在数据库建立后修改。
这里选择使用相同密码。点击Next

第十九章 Centos下的Oracle安装 - 图33

提示设置的密码过于简单存在安全风险是否继续

第十九章 Centos下的Oracle安装 - 图34

按照图示选择,点击Next

第十九章 Centos下的Oracle安装 - 图35

默认所选,点击Next

第十九章 Centos下的Oracle安装 - 图36

默认所选,点击Next

第十九章 Centos下的Oracle安装 - 图37

默认所选,点击Character Sets

第十九章 Centos下的Oracle安装 - 图38

按照图示选择兼容utf8的选项,点击Next

第十九章 Centos下的Oracle安装 - 图39

在File Location Variables里可以看到一些基础参数信息。点击Next

第十九章 Centos下的Oracle安装 - 图40

选择Generate Database Creation Scripts,默认为/home/oracle/app/oracle/admin/powerdes/scripts,点击Finish

第十九章 Centos下的Oracle安装 - 图41

点击OK

第十九章 Centos下的Oracle安装 - 图42

点击OK

第十九章 Centos下的Oracle安装 - 图43

等待创建

第十九章 Centos下的Oracle安装 - 图44

点击Exit完成创建

第十九章 Centos下的Oracle安装 - 图45

创建完数据库后启动数据库
如果在切换用户进入数据库时,执行lsnrctl start或是执行sqlplus “/ as sysdba ”报出如下错误

bash:lsnrctl:command not found.
bash:sqlplus:command not found.

可能是因为在切换oracle用户时没有加“-”,如#su - oracle。

注:su 和 su - 的区别
su是不更改环境变量的,而su -是要更改环境变量的。也就是说su只是获得了oracle的权限,su -是切换到oracle并获得oracle的环境变量及执行权限。

(3)Linux下操作数据库的步骤:

Ⅰ.以oracle用户登录
Ⅱ.执行:lsnrctl start (启动监听)
Ⅲ.执行:sqlplus /nolog
Ⅳ.执行:sql>conn /as sysdba
Ⅴ.执行:sql>startup
Ⅵ.进行数据库操作
Ⅶ.执行:sql>shutdown
Ⅷ.执行:sql>quit
Ⅸ.执行:lsnrctl stop(关闭监听)

注意:如果执行sql>conn /as sysdba时出现Connected to an idle instance.那么先执行sql>startup,后执行sql>conn /as sysdba

(4)创建Oracle的启动脚本

复制以上脚本内容,在/etc/init.d目录下创建一个名为oracle的文件,然后黏贴进去,保存退出,然后chmod +x 给它执行权限,别忘了chkconfig添加开机启动以及防火墙规则的添加,到此数据库就安装完成了。

chkconfig参考:http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796873.html

  1. #!/bin/bash
  2. # chkconfig: 2345 90 10
  3. export ORACLE_BASE=/home/oracle/app/oracle
  4. export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1
  5. export ORACLE_SID=powerdes
  6. export PATH=$PATH:$ORACLE_HOME/bin
  7. ORCL_OWN="oracle"
  8. # if the executables do not exist -- display error
  9. if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
  10. then
  11. echo "Oracle startup: cannot start"
  12. exit 1
  13. fi
  14. # depending on parameter -- start, stop, restart
  15. # of the instance and listener or usage display
  16. case "$1" in
  17. start)
  18. # Oracle listener and instance startup
  19. echo -n "Starting Oracle: "
  20. su - $ORCL_OWN -c "$ORACLE_HOME/bin/dbstart"
  21. touch /var/lock/subsys/oradb
  22. su - $ORCL_OWN -c "$ORACLE_HOME/bin/emctl start dbconsole"
  23. echo "OK"
  24. ;;
  25. stop)
  26. # Oracle listener and instance shutdown
  27. echo -n "Shutdown Oracle: "
  28. su - $ORCL_OWN -c "$ORACLE_HOME/bin/emctl stop dbconsole"
  29. su - $ORCL_OWN -c "$ORACLE_HOME/bin/dbshut"
  30. rm -f /var/lock/subsys/oradb
  31. echo "OK"
  32. ;;
  33. reload|restart)
  34. $0 stop
  35. $1 start
  36. ;;
  37. *)
  38. echo "Usage: 'basename $0' start|stop|restart|reload"
  39. exit 1
  40. esac
  41. exit 0