Centos7安装部署oracle11g

参考:https://blog.csdn.net/csgd2000/article/details/100224722

一、安装环境准备

服务器环境:VirtualBox+Centos7-64位

数据库版本:linux_11gR2_database

工具:Xshell(外部远程登录) + Xmanager6(提供可操作界面)

安装包及相关文件下载地址:

链接:https://pan.baidu.com/s/1OoFlJ5wA48TRF3OBCGwP5g
提取码:jogz

二、数据库安装

1.下载对应64位版本的oracle11g文件,上传至服务器目录;

2.解压

对于zip大文件的解压,可以采用

#jar xvf linux_11gR2_database_1of2.zip  linux_11gR2_database_2of2.zip

3.授权

授权之前,需要新建oracle服务器专属用户

#groupadd oinstall

#goupadd dba

#user -g oinstall -G dba -m oracle #创建oracle用户,归属oinstall和dba两个组

#id oracle

4.服务器环境配置

关闭防火墙和Selinux

# systemctl stop firewalld #临时关闭

# systemctl disable firewalld #永久关闭

# systemctl status firewalld #查看状态

# getenforce #Enforcing表示启动

# setenforce 0 #临时关闭

# vi /etc/selinux/config #将SELINUX=enforcing修改为"SELINUX=disabled" 永久关闭

5.创建目录

#mkdir -p /u01/app/oracle #oralce安装目录

#mkdir -p /u01/app/oraInventory  #安装日志存在目录

#mkdir -p /u01/app/oradata  #数据文件存在目录

#chown -R oracle:oinstall /u01/app/oracle

#chown -R oracle:oinstall /u01/app/oraInventory

#chown -R oracle:oinstall /u01/app/oradata

6.安装oracle所需组件

#yum -y install binutils compat compat-libstdc gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel

#yum -y groupinstall "GNOME Desktop" "Graphical Administration Tools"

7.修改系统内核等设置

将服务器名写入到hosts文件,可以测试ping sername 是否返回127.0.0.1

 

[root@oracledb ~] echo '127.0.0.1 oracledb localhost localhost.localdomain' >> /etc/hosts
[root@oracledb ~]$ ping -c 3 oracledb
PING oracledb (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.190 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.107 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.088 ms

 

--- oracledb ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.088/0.128/0.190/0.045 ms

 

修改内核(/etc/sysctl.conf),增加或修改以下内容

内核参数需要注意,shmall 和shmmax 的值由服务器内存决定。
kernel.shmall :
该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB/4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304 符合要求。
kernel.shmmax:
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,例如,如果为16GB物理内存,可取16*1024*1024*1024-1=17179869183。
kernel.shmmni:
该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。
kernel.sem = 250 32000 100 128 的意思是:
250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。
32000是参数semmns的值,表示系统内可允许的信号量最大数目。
100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。
128是参数semmni的值,表示系统信号量集合总数。

以下适用于8G内存左右服务器配置,12G或者16G以上建议调整

[root@oracledb ~] vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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

完成后使用命令

[root@oracledb ~] sysctl -p   

 

8.修改认证模块

[root@oracledb ~] vim /etc/security/limits.conf
oracle soft nproc 131072
oracle hard nproc 131072
oracle soft nofile 131072
oracle hard nofile 131072
oracle soft core unlimited
oracle hard core unlimited
oracle soft memlock 50000000
oracle hard memlock 50000000

 

9.修改用户登录认证

[root@oracledb ~] vim /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so

注意:有些网上写的是/lib/security/pam_limits.so ,若是64位系统需要设置为/lib64/security/pam_limits.so 否则重启服务器后就会出现命令行无法登录,但是通过桌面方式能登录的情况。

 

10.设置环境变量

[root@oracledb ~] vi  /etc/profile

添加以下内容

#oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export ORACLE_SID=orcl
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

[root@oracledb ~] source /etc/profile   #使修改生效

修改Oracle用户环境变量

[root@oracledb ~]  vim /home/oracle/.bash_profile

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

[root@oracledb ~] source /home/oracle/.bash_profile

11.通过桌面方式安装

[oracle@oracledb ~] cd /u01/database
[oracle@oracledb ~] ./runInstaller

常见问题:

1)安装界面无法弹出

参考内容:https://jingyan.baidu.com/article/375c8e19f77d8e25f2a229ee.html

  • 我是采用virtualbox虚拟机安装,需要在本地安装xmanager,采用xshell远程连接服务器直接安装,调用xmanager图形界面;
  • 起初采用Centos8操作系统安装oracle,vnserver(图形桌面共享系统)需要自行下载配置

[oracle@oracle root]$ vncserver
vncserver has been replaced by a systemd unit.
Please read /usr/share/doc/tigervnc/HOWTO.md for more information

这里搞了好久都没解决,后来只好用Centos7安装

  • 需要直接登录oracle账号执行./runInstaller,而非su oracle , 否则也无法正常弹出安装界面,因为使用su 切换账号,但是系统环境还未完全切换

2)界面中文乱码

新建一个目录,上传字体包zysong.ttf到新建的目录,命令如下:

#mkdir –p /usr/share/fonts/zh_CN/TrueType

#cd /usr/share/fonts/zh_CN/TrueType

#chmod –R  75 zysong.ttf

配置系统变量为zh_CN.UTF-8

#export LANG=zh_CN.UTF-8

注意:需要添加zysong.ttf文件可执行权限

#chmod +x zysong.ttf

2)安装过程提示错误1,如下图:

 

 

找到$ORACLE_HOME/sysman/lib /ins_emagent.mk文件,将

$(MK_EMAGENT_NMECTL)

替换为

$(MK_EMAGENT_NMECTL) -lnnz11

然后在安装过程中点击Retry即可

3)安装过程提示错误2

Error in invoking target 'install' of makefile '/data/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk'. See '/data/oraInventory/logs/installActions2019-06-12_10-53-05AM.log' for details.

问题:glibc是2.17的库,连接找的是2.14的库。

解决办法1(未验证):改成静态链接。

查看 /usr/lib64/libc.a是否存在。

修改oracle安装目录下:ORACLEHOME/ctx/lib/insctx.mkctxhx:(CTXHXOBJ)
(LINKCTXHX)(CTXHXOBJ) (INSOLINK)修改为:ctxhx:(CTXHXOBJ)
-static (LINKCTXHX)(CTXHXOBJ) $(INSO_LINK) /usr/lib64/libc.a

然后点击retry通过

解决办法2(亲测有效):替换libstdc++.so.5   libstdc++.so.5.0.7文件

 

12.静默安装(未测试过)

[root@oracledb ~] ./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq
## 安装期间可以使用tail命令监看oracle的安装日志
[root@oracledb ~] tail -f /db/app/oracle/oraInventory/logs/installActions2019-05-25_10-38-29AM.log

13.安装完成后创建数据库

[Oracle@localhost ~]$ dbca //创建数据库实例orcl

14.配置监听

[Oracle@localhost ~]$ netca //配置监听
[Oracle@localhost ~]$ lsnrctl status //查看监听状态

我安装完成后,监听已配置完成,就无须再次配置

配置监听程序开机自启动

参考内容:https://www.cnblogs.com/lishuangjiang/archive/2013/08/28/3287055.html

  • [[root@oracledb~]$dbstart

ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
Usage: /u01/app/oracle/oracle/product/10.2.0/db_1/bin/dbstart ORACLE_HOME

错误原因是:dbstart和dbshut脚本文件中ORACLE_HOME_LISTNER的设置有问题,分别打开两个文件找到:ORACLE_HOME_LISTNER=$1,修改为

ORACLE_HOME_LISTNER=$ORACLE_HOME,命令如下:

[root@oracledb~]$ vi $ORACLE_HOME/bin/dbstart

[root@oracledb~]$ vi $ORACLE_HOME/bin/dbshut 

  • [root@oracledb~]$ vi /etc/oratab

    找到:accp:/u01/oracle:N   修改为: accp:/u01/oracle:Y

  •  [root@oracledb~]$ vi /etc/rc.d/rc.local  (755权限)

添加

su oracle -lc  'lsnrctl start'

su oracle -lc  'dbstart'

监听程序及数据库开机自启动设置完成。

15.防火墙端口设置

[root@oracledb~]$firewall-cmd --zone=public --add-port=1521/tcp --permanent   # 开放1521端口

[root@oracledb~]$firewall-cmd --reload   # 配置立即生效

[root@oracledb~]$firewall-cmd --state  #查看防火墙状态

[root@oracledb~]$netstat -lnpt  #查看监听的端口

[root@oracledb~]$systemctl enable firewalld.service  #永久开启防火墙

至此,可以在外部通过pl/sql工具配置连接。

 

posted @ 2021-05-23 17:17  李大风  阅读(856)  评论(0)    收藏  举报