环境:

Centos7 需带有GUI图形界面

vmware虚拟机

IP:192.168.213.130


一 下载Oracle

官方下载地址:https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html


二 设置防火墙,关闭selinux

1.Oracle默认监听占用1521端口,让防火墙打开该端口

# firewall-cmd --add-port=1521/tcp --permanent

# firewall-cmd –reload


2.centos7中selinux默认开启,虚拟环境关闭即可。

# vim /etc/selinux/config

Centos7下安装Oracle 11gR2 数据库_第1张图片

# setenforce 0 修改为即时生效


三 创建运行Oracle数据库的用户和用户组

[root@oracle ~]# groupadd oinstall

[root@oracle ~]# groupadd dba

[root@oracle ~]# useradd -g oinstall -G dba -m oracle

[root@oracle ~]# passwd oracle

更改用户 oracle 的密码 。

新的 密码:

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。

[root@oracle ~]# id oracle

uid=1001(oracle) gid=1001(oinstall) 组=1001(oinstall),1002(dba)

[root@oracle ~]#


四 修改oracle用户限制

1.编辑/etc/security/limits.conf文件,修改操作系统对oracle用户资源的限制。

# vim /etc/security/limits.conf

在文件末尾添加以下内容

Centos7下安装Oracle 11gR2 数据库_第2张图片

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536



2.要使limits.conf文件配置生效,必须要确保pam_limits.so文件被加入到启动文件中。

# vim /etc/pam.d/login 加入以下语句:

Centos7下安装Oracle 11gR2 数据库_第3张图片

session required pam_limits.so


3.编辑 /etc/profile

# vim /etc/profile 将下列内容加入该文件。

Centos7下安装Oracle 11gR2 数据库_第4张图片


if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
    else
        ulimit -u 16384 -n 65536
    fi
fi


五 调整内核参数

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


fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
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



要使 /etc/sysctl.conf 更改立即生效,执行以下命令。 输入:sysctl -p 显示如下:

六 创建数据库软件目录和数据文件存放目录(目录的位置,根据自己的情况来定),并改变相应的权限


mkdir -p /opt/oracle/product
mkdir -p /opt/oracle/oradata
mkdir -p /opt/oracle/oraInventory
chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle/



七 配置oracle用户的环境变量

1.切换到新创建的oracle用户下:

[root@oracle ~]# su oracle
[oracle@oracle root]$ vim /home/oracle/.bash_profile



2.按i进入编辑模式,增加以下内容

export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.UTF8
export LANG=en_US.UTF8
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin
export PATH



3.执行命令source /home/oracle/.bash_profile,让配置立即生效。

[oracle@oracle root]$ source /home/oracle/.bash_profile



八、安装Oracle

1.使用Xftp将下载好的Oracle安装文件上传到CentOs上去,我这里放到了/home/oracle目录下

image.png

2.使用unzip命令解压oracle安装文件

[oracle@oracle ~]$ unzip linux.x64_11gR2_database_1of2.zip
[oracle@oracle ~]$ unzip linux.x64_11gR2_database_2of2.zip

Centos7下安装Oracle 11gR2 数据库_第5张图片


3.解压完成后进入其解压后的目录database,使用ls命令可以查看解压后database所包含的文件,如下图:

Centos7下安装Oracle 11gR2 数据库_第6张图片

4.执行安装,输入命令:./runInstaller -jreLoc /usr/lib/jvm/jre-1.8.0

执行安装前切换到图形化桌面,用oracle账号的登陆


5.取消选中这个界面上的I wish to receive security updates via My Oracle Support复选框,点击Next

Centos7下安装Oracle 11gR2 数据库_第7张图片

Centos7下安装Oracle 11gR2 数据库_第8张图片

6.在Select Installation Option(选择安装选项)界面上,选择Install database software only选项,点击Next

Create and configure a database(创建和配置数据库)  这个选项是默认的安装选项,它安装Oracle RAC二进制文件,并根据预先配置的模板创建一个数据库。这个选项对于初学者非常有用,因为Oracle为不同类型的工作量提供了不同模板,如用于OLTP和决策支持系统的不同模板。

Install database software only(仅安装数据库软件)  这个选项在集群中的所有服务器上安装Oracle RAC软件。数据库管理员大多使用这一选项,这样,在安装了Oracle RAC二进制文件之后,他们可以使用数据库配置助手来创建数据库,从而拥有更大的灵活性。

Upgrade an existing database(升级已有数据库)  这一选项对集群中的已有Oracle RAC数据库进行升级。

Centos7下安装Oracle 11gR2 数据库_第9张图片


7.在Grid Installation Options(网格安装选项)界面上,可以选择以下2种选项之一:

Single instance database installation(单实例数据库安装)  这一选项允许仅在本地节点上安装单实例数据库软件。

Real Application Clusters database installation(Oracle RAC数据库安装)  这一选项允许在集群中的选定节点上选择和安装Oracle RAC二进制文件。

在这个界面上,选择Single instance database installation选项,点击Next

Centos7下安装Oracle 11gR2 数据库_第10张图片


8.在Select Product Languages界面,选择安装语言(默认情况下选择英文),点击Next

Centos7下安装Oracle 11gR2 数据库_第11张图片


9.在Select Database Edition(选择数据库版本)界面,选择企业版,点击Next

Centos7下安装Oracle 11gR2 数据库_第12张图片


10.在Specify Installation Location界面,为Oracle Base和Software Location指定存储位置,点击Next

Centos7下安装Oracle 11gR2 数据库_第13张图片


11.选择清单目录、指定清单组名称,点击Next

Centos7下安装Oracle 11gR2 数据库_第14张图片

Centos7下安装Oracle 11gR2 数据库_第15张图片


12.在Privileged Operating System Groups界面,从提供的值列表中选择数据库管理员和数据库操作员操作系统组,点击Next

Centos7下安装Oracle 11gR2 数据库_第16张图片


13.安装到这一步,可以看到,检查到有很多的包报错

切换到root用户,然后使用命令一个一个的安装,例如:yum install -y libaio*

(针对pdksh找不到的问题,安装ksh即可。据说oracle使用新的ksh了,但是检查脚本中还使用的是pdksh)

Centos7下安装Oracle 11gR2 数据库_第17张图片

当所有包都安装完成后,点击"Check  Again"


Centos7下安装Oracle 11gR2 数据库_第18张图片


可以看到还是有错,有些系统报错是因为现有的包的版本比检测的要高,Oracle 11g check的时候不识别高版本lib包,我们把右上角的"Ignore All"勾选上,然后点击Next


14在Summary界面,点击Finish

Centos7下安装Oracle 11gR2 数据库_第19张图片


15.安装过程需要点时间,我们耐心等候,安装完成后点击close,结束

过程中遇到第一个报错

Centos7下安装Oracle 11gR2 数据库_第20张图片


注意到日志有以下错误:

INFO: /lib64/libstdc++.so.5: undefined reference to `memcpy@GLIBC_2.14'

INFO: collect2: error: ld returned 1 exit status

INFO: make: *** [ctxhx] Error 1

网上说是glibc的版本2.17过高所致(高于2.14),先安装软件包glibc-static-2.17-55.el7.x86_64,该软件包包含一个静态链接库:/usr/lib64/libc.a

修改文件

[root@oracle database]# vim /opt/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk


将:

ctxhx: $(CTXHXOBJ)
    $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)


修改为:

ctxhx: $(CTXHXOBJ)
    -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/libc.a


修改完后保存,回到安装页面点“Retry“,遇到第二个报错

Centos7下安装Oracle 11gR2 数据库_第21张图片

解决方法:在makefile中添加链接libnnz11库的参数

修改文件

[root@oracle database]# vim /opt/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk


$(MK_EMAGENT_NMECTL)


修改为:

$(MK_EMAGENT_NMECTL) -lnnz11


点击Retry继续安装。


16.执行提示的2个脚本

Centos7下安装Oracle 11gR2 数据库_第22张图片

[root@oracle database]# sh /opt/oracle/oraInventory/orainstRoot.sh 
[root@oracle database]# sh /opt/oracle/product/11.2.0/dbhome_1/root.sh


运行完成后点击ok,最后点击close。结束安装。