环境:

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

image.png

# 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

在文件末尾添加以下内容

image.png

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 加入以下语句:

image.png

session required pam_limits.so


3.编辑 /etc/profile

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

image.png


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

image.png


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

image.png

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

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


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

image.png

image.png

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数据库进行升级。

image.png


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

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

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

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

image.png


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

image.png


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

image.png


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

image.png


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

image.png

image.png


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

image.png


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

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

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

image.png

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


image.png


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


14在Summary界面,点击Finish

image.png


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

image.png

过程中遇到第一个报错

image.png


注意到日志有以下错误:

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“,遇到第二个报错

image.png

解决方法:在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个脚本

image.png

[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。结束安装。