Oracle是甲骨文公司的一款关系数据库管理系统。系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。相信每一位IT大神都对ORACLE不陌生,我这里就针对oracle-11g版本的ORACLE数据库的安装进行展示,也作为自己的备忘。
ORACLE数据库的安装分有两种方式:静默安装、图形化安装。
一般情况下我们都会采用图形化方式安装,更直观和清晰,对于静默安装,小编也不是很精通,所以就不能给大家介绍了,如果有兴趣的朋友自行去百度或谷歌吧。

一、安装前的准备

1、准备一台安装图像界面的centos(小编这里准备的是centos6)

小编这里使用的是centos6,并准备了在centos6上可执行的安装前脚本,如果是在centos7上进行安装的朋友,请自行更改脚本,或者找适合centos7运行的脚本。 安装前需要声明,ORACLE数据库的安装对内存和磁盘空间的大小是有要求的,内存大小不能低于1.2G。所以建议将内存调大。数据库存放的磁盘空间也不能太小,尽量调大一点。

2、下载安装中需要的安装包
  • 下载ORACLE-11g版本的安装包 地址:链接:https://pan.baidu.com/s/1qY7MqN6 密码:c2oz 其中有:

    p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip (这两个是ORACLE-11g的安装包)

    pdksh-5.2.14-30.x86_64.rpm rlwrap-0.37-1.el6.x86_64.rpm (该包是在登录数据库的时候在登录命令前加上rlwrap就可以在sql命令行下进行上下翻,进行删除等。示例: rlwrap sqlplus / as sysbda) (这两个是在安装的过程中需要安装的软件包) orainst_11g.sh (这是安装ORACLE前执行的脚本)

    3、如果是在虚拟机中操作,需要将虚拟机的图形界面调整到全屏,这里需要安装VMware Tools

大家可能有疑问,安装VMware Tools干嘛? 我们是采用图形化安装,其中图形化界面比较大,如果不全屏的话,我们不能正常的点击按钮,所以还是将界面配置大点比较好。

在开启的虚拟机上方的菜单栏点击‘虚拟机’,选择‘安装VMware Tools’

会在虚拟机中弹出:

这个时候进入命令行页面,使用df命令会显示:

接下来进行包的解压与安装:
进入:cd /media/VMware Tools
解压:tar xvf VMwareTools-10.0.10-4301679.tar.gz –C /tmp
进入目录:cd /tmp/vmware-tools-distrib/
执行安装脚本:./vmware-install.pl
在安装过程中基本是创建一些目录复制一些文件,一路回车就好了。
故障:
	如果在安装VMware-tools的时候出现:
 what is the location of the "ifconfig"program on your machine?
	这个时候是安装不了的,这是因为缺少/sbin/ifconfig工具,先退出VMware tools的安装,需要安装一个工具。
前提是我们的yum源仓库已经配好了,否则是不能安装工具的
执行:yum install httpd-tools```
> 这个包提供了ifconfig命令,安装成功后再重新执行刚才我们执行的安装脚本,就可以了。安装后退出本次登录,重新登录进入使其生效,点击全屏就可以进入全屏了。

# 二、安装过程
	1、安装前的配置工作
需要配置yum源仓库:
如果主机可以联网,则使用自带的网上的源仓库就可以,如果主机不能联网,手动配置本地仓库源,确保可以通过yum可以安装包。
在CD/DVD设置中,将安装系统的镜像包连上,并确保已经连接:
![](http://i2.51cto.com/images/blog/201712/17/a7388cc7118d2fa292fd2631f5b66c72.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)


	配置yum源仓库:
	设置可以联网,配置网上的yum源仓库:

Vim /etc/yum.repos.d/base-epel.repo [base] name=jiake.base baseurl= https://mirrors.aliyun.com/centos/6.9/os/x86_64/ gpgcheck=0 enabled=1 [epel] name=jiake.epel baseurl= https://mirrors.aliyun.com/epel/6/x86_64/ gpgcheck=0 enabled=1

配置静态的网卡地址:
	将当前的主机的地址在网卡配置文件中设置为静态地址:
	在/etc/sysconfig/network-scripts/ifcfg-eth0(示例)
	将BOOTPROTO=dhcp,改为:BOOTPROTO=none
	并在该项的下方加上:
	IPADDR=192.168.11.108
	PREFIX=24```
保存退出,重新启动network:service network restart

配置/etc/hosts文件,使主机能够根据地质解析到主机名: 在该文件的最小方添加上自己的本机地址,空格后加上主机名 示例:

	192.168.11.108  jiake.centos.com```
	
	2、安装数据库软件
将安装ORACLE数据库所需的软件都放置到该主机下。
解压:

p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip unzip p13390677_112040_Linux-x86-64_1of7.zip;unzip p13390677_112040_Linux-x86-64_2of7.zip

创建ORACLE系统用户:

useradd oracle

> 在刚才解压的两个包,会自动生成一个database的目录,该目录中时安装的文件。需要移动到oracle家目录下。
	安装ORACLE数据库需要在oracle用户的登录环境下,所有安装的时候需要切换到oracle用户,不过这些都不用担心,为了简化安装的过程,小编将会执行一个脚本,该脚本会自行检测并通过yum安装需要的软件,并且自动切换oracle用户,在该用户下执行刚才解压的安装包中的安装脚本,会自动弹出一个安装的图形化界面。脚本在本博客的最后呈上。
移动database到oracle用户的家目录下:
mv database/ /home/oracle/```
(这里有个注意事项,如果home目录挂载的分区太小的话是移动不成功的,需要调到home目录挂载的分区大小,即使移动过去了,如果空间太小,在安装数据库的过程中还是会报错。)

执行小编的安装脚本:

./orainst_11g.sh```
如图:
![](http://i2.51cto.com/images/blog/201712/17/3b3f32175f756432fbeaeda556aebde7.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

	接下来都是图形界面的安装,请跟随小编的脚步来进行操作。
![](http://i2.51cto.com/images/blog/201712/17/787fc42383fbe48b1db160fe68d229a0.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/f782acf536d6c51779efe241da14b859.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/91ca24fb57aa129db3147c123e29f432.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/6f3d2ec0707311c8f830d2928503a608.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/146cee2a41c4e21f383c1f7ca52da9ef.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/c25fe450226d1e95a057ff6e9e9d5ebb.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/daa72b6f1d15da5856162808d4daf928.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/f0dc62b61e1dd043b681eede30dc1a3e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/b37c7aaa2e6fd10653c5a90fcf18e097.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

	出现以上的问题,需要安装一个pdksh的包,并且调整shmmax的大小,执行操作如下:
![](http://i2.51cto.com/images/blog/201712/17/e594faa43d2c7f7192977789f19aaba9.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/e2bf844b659ce739c8d8d0eca74150c5.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

	编辑好配置文件后要执行以下:sysctl –p 让配置生效,否则是不会生效的。

![](http://i2.51cto.com/images/blog/201712/17/86f6c7b93a9d1f0e515334ed44c90673.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)


![](http://i2.51cto.com/images/blog/201712/17/7b7e9c809f71583232e1d0feb2682200.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

	安装完后提示执行两个脚本,该脚本在目录下已经创建,所以只需要执行就好了:
![](http://i2.51cto.com/images/blog/201712/17/75d0ed864c68416f0e0d66b7acba2ea2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

	执行完后点击ok。就安装成功了!注意,这里我们只是安装成功了数据库软件,并没有创建数据库。所以接下来需要创建数据库。

	

3、安装数据库
需要切换到oracle用户下进行操作,具体的步骤详情见图示:
![](http://i2.51cto.com/images/blog/201712/17/4e58dabed8a3771ee298d30d7ce28b41.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/9afe35e4f9889a1ea9850e79ce113923.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/0d6bd32a66203af55db63283d90cc78e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/bcc0eefb3a9e3c76225cb12206578d1c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/4e314774bbff5d39b9a1026bc9e7729e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/6e2cf6e1b251065ad8f10f13b5836d6d.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

	执行该命令需要在oracle用户下,否则是不能执行的!如下图:
![](http://i2.51cto.com/images/blog/201712/17/c0a44dab6c893b075828db39f8c0559f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/e27dba326674ad94b7a02c0f2847e283.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/65a742b9a29b98630070e9365c89732a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/718250966cc2f3b9c3d2cc01281fa924.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/4dd57cb6db78c3dbc16e67a751966cb2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/1acf7087cb509fcb1fdcb52a025074f1.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/459af6b8dff8262724783e8b0a46b7b3.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/cb2e2ddb619d1b4a663aec0974e7568f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/a460afc128c63ac98dbf7a0812fed968.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

![](http://i2.51cto.com/images/blog/201712/17/d50302a44a2906ed0db9c1a5e9fa70ca.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

	4、启动或关闭数据库
根据以上的步骤安装完成后,第一次默认是自行启动的,但是今后再使用的时候就不行了,所以我们还要知道怎么进行启动和关闭数据库。
ORACLE数据库的启动分为三个阶段:
> - 第一阶段:启动实例
		启动实例命令:startup nomount; 加载参数文件来启动实例
- 第二阶段:装载数据库
		装载数据库的命令:alter database mount;
		通过参数文件中记载的控制文件的位置来加载控制文件
- 第三阶段:打开数据库
 	打开数据库的的命令:alter database open;
	通过控制文件中记载的数据文件、日志文件的位置来加载打开数据库文件、日志文件

	但是我们可以通过一条命令进行打开: startup
该命令依次自动执行以上三个阶段的操作。
ORACLE数据库的关闭分为以下几种关闭方式:
	shutdown normal :(默认)禁止新的连接,等待所有的连接结束
	shutdown transactional:禁止新的连接,等待所有事务完成
	shutdown immediate:禁止新的连接,将没有进行提交的事务强制回滚
	shutdown abort:禁止新的连接,不进行一致性检查,直接强制关闭数据库。```

5、查看数据库启动状态并查询测试
查看启动的进程:

登录进行查询测试:
登录必须是在oracle用户下登录!

三、安装中注意事项及故障处理

** 1、注意事项 **

  • 在安装前的准备中一定要将地址改为静态地址,并且可以通过该地址解析出本机的主机名,所以要将修改后的静态地址和主机名对应的写入/etc/hosts文件中。
  • 配置yum源的目的是在执行安装脚本的时候检测到需要的包没有安装,可以通过yum方式进行安装,所以一定要保证yum仓库可以正常使用。
  • 不要忘记系统中要创建一个oracle用户
  • 在进行数据库的安装和登录数据库的时候都要在oracle用户下进行。
  • 注意在配置数据库名字的时候,需要与脚本中的一致,因为小编的脚本中定义的参数:export ORACLE_SID=orcl,如果想创建多个实例,要将给参数暂时去掉,想创建什么名字的实例的时候,在创建前手动执行:export ORACLE_SID=instrance_name。 ** 2、故障处理 **
  • 脚本不能正常执行? 请确保系统用户已经创建,确保解压的两个安装包生成的database正常且完全的移动到了oracle用户的家目录下。如果该数据文件总是不能全部完整的移动到oracle用户的家目录下,参考下一个:
  • 解压安装包后生成的database目录下的文件,在移动到oracle用户的家目录的时候总是少一些文件? 这种情况也会导致小编给的脚本不能正常执行,安装包的文件不能完全移动到家目录下,这是因为/home目录挂载的分区空间太小导致的。 在移动database之前和移动后,最好查看一下移动的文件是否缺少了,这样便于及时察觉到错误。 解决方法:将/home目录挂载的分区容量扩大 (1)重新分一个分区将/home挂载。 (2)如果是逻辑卷可以进行逻辑卷扩容。 (3)如果根足够大,可以暂时将/home目录卸载,/home目录就自动挂载对应到根的空间了,但是,这种方式不建议。
  • 在安装数据库软件的时候,进行prerequisite check检测的时候显示swap分区空间不够的警告? 这是因为Swap空间与数据库运行所需的空间不符,需要进行扩容swap分区。 解决办法:扩容swap分区 方法一、创建swap文件,将该文件作为swap分区使用 方法二、重新添加分区,格式化为swap分区,添加到swap上。 从读写上的性能考虑,建议采用第二中方式:
(1)分区
fdisk /dev/sda
n -> 回车 -> +2G -> 回车 -> t -> 选最后一个分区 -> 82 ->回车 –> w
partx –a /dev/sda  #重新加载分区信息 
(2)格式化分区
Mkswap /dev/sdax
(3)添加到Swap分区中
Swapon /dev/sdax
Free   #查看添加的swap是否添加上
  • 在启动数据库的时候执行startup报错? 启动不起来可能是内存分配不能满足ORACLE数据库的启动要求,所以需要调整系统的内存,也可以调整共享内存的大小,最好是调整系统的内存,并将共享内存调大: 解决: (1)调到物理内存 (2)调大共享内存
Vim /etc/fstab
tmpfs   /dev/shm   tmpfs  defaults,size=4G  0 0

(3)再次登录数据库进行逐步启动

startup unmount;
alter database mount;
alter database open;

(4)查看数据库的启动东进程

Ps –aux |grep ora_
登录数据库查看数据库的启动状态:
select status from v$instance;
  • 在安装的过程中遇到的问题在图中都已经进行指出了,可能并不全面,如有其它的问题,请朋友们自行百度吧。