centos7安装oracle11gR2

1.安装前验证

  • 内存最小1G,推荐2G或者更高。# grep MemTotal /proc/meminfo # free
  • 内存为1-2g,swap是内存的1.5倍左右。# grep SwapTotal /proc/meminfo # free
  • 验证相关包是否安装。# rpm -qa binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers glibc-static kernel-headers pdksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel libstdc++-static make numactl-devel sysstat unixODBC unixODBC-devel
    • kernel-headers-3.10.0-123.el7.x86_64
    • gcc-c++-4.8.2-16.el7.x86_64
    • numactl-devel-2.0.9-2.el7.x86_64
    • glibc-headers-2.17-55.el7.x86_64
    • glibc-common-2.17-55.el7.x86_64
    • binutils-2.23.52.0.1-16.el7.x86_64
    • unixODBC-devel-2.3.1-10.el7.x86_64
    • libaio-0.3.109-12.el7.x86_64
    • make-3.82-21.el7.x86_64
    • elfutils-libelf-0.158-3.el7.x86_64
    • elfutils-libelf-devel-0.158-3.el7.x86_64
    • sysstat-10.1.5-4.el7.x86_64
    • glibc-static-2.17-55.el7.x86_64
    • glibc-devel-2.17-55.el7.x86_64
    • glibc-2.17-55.el7.x86_64
    • elfutils-libelf-devel-static-0.158-3.el7.x86_64
    • libaio-0.3.109-12.el7.i686 gcc-4.8.2-16.el7.x86_64
    • gcc-4.8.2-16.el7.x86_64
    • libgcc-4.8.2-16.el7.i686
    • libstdc++-static-4.8.2-16.el7.x86_64
    • libaio-devel-0.3.109-12.el7.x86_64
    • libstdc++-4.8.2-16.el7.x86_64
    • libaio-devel-0.3.109-12.el7.i686
    • unixODBC-2.3.1-10.el7.x86_64
    • libstdc++-devel-4.8.2-16.el7.x86_64
    • compat-libstdc++-33-3.2.3-71.el7.x86_64
    • libgcc-4.8.2-16.el7.x86_64
    • libgomp-4.8.2-16.el7.x86_64
    • #yum 安装包名

2.创建组和用户

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba -m oracle
echo oracle | passwd --stdin oracle

3.创建oracle数据库安装目录

mkdir -p /data/oracle
mkdir -p /data/oraInventory
mkdir -p /data/database
chown -R oracle:oinstall /data/*

4.关闭并禁用防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

5.关闭selinux

vi /etc/selinux/config

修改内容
这里写图片描述

6.配置内核参数

配置要求,配置大于系统数据需要配置更改,否则不需要配置:
这里写图片描述

vi /etc/sysctl.conf
修改
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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
使配置生效
/sbin/sysctl -p

7.对oracle用户设置限制,提高软件运行性能

vi /etc/security/limits.conf
修改
oracle           soft    nproc           2047
oracle           hard    nproc           16384
oracle           soft    nofile          1024
oracle           hard    nofile          65536

8.配置用户变量

vi /home/oracle/.bash_profile
修改
export ORACLE_BASE=/data/oracle #oracle数据库安装目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl #oracle启动数据库实例名
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK
使文件生效
source /home/oracle/.bash_profile

9.解压缩,安装oracle

unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
#为了避免安装过程出现乱码,输入命令:export LANG=en_US.UTF-8
cd database
./runInstaller

部分截图如下:
这里写图片描述
这里写图片描述
出现上述问题解决方法:
/lib64/libstdc++.so中memcpy@GLIBC_2.4找不到。
问题:glibc是2.17的库,连接找的是2.14的库。
解决办法:改成静态链接。
查看 /usr/lib64/libc.a是否存在。
修改oracle安装目录下:$ORACLE_HOME/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通过。
这里写图片描述
出现上述问题解决方法:
问题:undefinied reference symbol’B_DestroyKeyObject’,查看日志,实际就是没有找到nnz11这个库。
解决办法:
修改$ORACLE_HOME/sysman/lib/ins_emagent

$(MK_EMAGENT_NMECTL)

修改为:

$(MK_EMAGENT_NMECTL) -lnnz11

然后点击retry通过。
这里写图片描述
执行:

sh /data/oraInventory/orainstRoot.sh
sh /data/oracle/product/11.2.0/dbhome_1/root.sh 

这里写图片描述

10.连接数据库时出现ORA-12170 TNS连接超时的问题,可以修改监听文件内容解决

# listener.ora Network Configuration File: /data/oracle/product/11.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )

  )

ADR_BASE_LISTENER = /data/oracle

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME =  /data/oracle/product/11.2.0/db_1)    
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)       
      (ORACLE_HOME = /data/oracle/product/11.2.0/db_1)        
      (SID_NAME = orcl)            
    )
  )

11.如果出现plsql连接linux虚拟机中数据库建立连接速度慢,可尝试以下方式:

$ORACLE_HOME/network/admin/listener.ora
$ORACLE_HOME/network/admin/tnsnames.ora

保证listener.ora和tnsnames.ora中host必须一样
/etc/resolv.conf
该文件的内容注释掉
注意:注释掉之后会造成无法通过域名访问外网

12.重启出现错误:ORA-00845: MEMORY_TARGET not supported on this system

在oracle 11g中新增的内存自动管理的参数MEMORY_TARGET,它能自动调整SGA和PGA,这个特性需要用到/dev/shm共享文件系统,而且要求/dev/shm必须大于MEMORY_TARGET,如果/dev/shm比MEMORY_TARGET小就会报错

可尝试以下命令:

mount -o remount,size=10G /dev/shm

为了确保操作系统重启之后能生效,需要修改/etc/fstab文件

shmfs /dev/shm tmpfs size=7g 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值