// 注释 # root用户 $oracle用户
1. 关闭安全措施
  
# chkconfig iptables off // 永久关闭防火墙
# serviceiptables stop // 暂时关闭防火墙,重启系统后会自动打开
# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config // 关闭Selinux
 
2. 验证硬件
2.1 内存:
要求:内存最小1G,推荐2G或者更高。
查看命令:# grep MemTotal /proc/meminfo
 
2.2 Swap:
要求:
RAW
Swap
1G至2G 1.5倍
2G至16G 同RAW相等
16G以上 16G
查看命令:# grep SwapTotal /proc/meminfo
          # free
 
3. 验证软件
3.1 操作系统
  • Asianux Server 3 SP2
  • Oracle Linux 4 Update 7
  • Oracle Linux 5 Update 2 (with Red Hat Compatible Kernel)
  • Oracle Linux 5 Update 5
  • Oracle Linux 6
  • Oracle Linux 6 (with Red Hat Compatible Kernel)
  • Red Hat Enterprise Linux 4 Update 7
  • Red Hat Enterprise Linux 5 Update 2
  • Red Hat Enterprise Linux 5 Update 5 (with the Oracle Unbreakable Enterprise Kernel for Linux)
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 6 (with the Oracle Unbreakable Enterprise Kernel for Linux)
  • SUSE Linux Enterprise Server 10 SP2
  • SUSE Linux Enterprise Server 11
CentOS7本文按照Red Hat Enterprise Linux 6来配置。
 
# cat /proc/version // 查看版本
 
3.2 内核
  • On Oracle Linux 4 and Red Hat Enterprise Linux 4 2.6.9 or later
  • On Oracle Linux 5 Update 2 with Red Hat Compatible Kernel 2.6.18 or later
  • On Oracle Linux 5 Update 5 with Red Hat Compatible Kernel 2.6.18 or later
  • On Oracle Linux 5 Update 5 with Unbreakable Enterprise Kernel 2.6.32-100.0.19 or later
  • On Oracle Linux 6 2.6.32-100.28.5.el6.x86_64 or later
  • On Oracle Linux 6 with Red Hat Compatible Kernel 2.6.32-71.el6.x86_64 or later
  • On Red Hat Enterprise Linux 5 Update 2 2.6.18 or later
  • On Red Hat Enterprise Linux 5 Update 5 2.6.18 or later
  • On Red Hat Enterprise Linux 5 Update 5 with Unbreakable Enterprise Kernel 2.6.32 or later
  • On Red Hat Enterprise Linux 6 2.6.32-71.el6.x86_64 or later
  • On Red Hat Enterprise Linux 6 with Unbreakable Enterprise Kernel 2.6.32-100.28.5.el6.x86_64 or later
  • On Asianux Server 3 2.6.18 or later
  • On SUSE Linux Enterprise Server 10 2.6.16.21 or later
  • On SUSE Linux Enterprise Server 11 2.6.27.19 or later
# uname-r
 
3.3 验证需要的包:
# 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 // 验证命令26个包
  • 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
  • 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
#rpm -ivh 安装包名 // 安装程序包
 
4. 创建组和用户
# groupadd dba
# groupadd oinstall
# useradd -m -g oinstall -G dba oracle
# passwd oracle
// 如果nobody用户不存在(id nobody命令查看),则创建:
# useradd nobody
 
5. 配置内核
注:配置大于系统数据需要配置更改,否则不需要配置。
 
要求配置:
参数 最小值 文件 命令
semmsl
semmns
semopm
semmni
50
32000
100
128
/proc/sys/kernel/sem
# /sbin/sysctl -a | grep sem
shmall
2097152
/proc/sys/kernel/shmall
# /sbin/sysctl -a | grep shm
shmmax
4294967296
/proc/sys/kernel/shmmax
// 最大共享内存,官方文档建议是内存的1/2
// 我的服务器是8G内存,所以为4*1024*1024*1024
// 最小值为536870912(1G内存/2)
# /sbin/sysctl -a | grep shm
shmmni
4096
/proc/sys/kernel/shmmni
# /sbin/sysctl -a | grep shm
file-max
6815744
/proc/sys/fs/file-max
# /sbin/sysctl -a | grep file-max
ip_local_port_range
9000 65500
/proc/sys/net/ipv4/ip_local_port_range
# /sbin/sysctl -a | grep ip_local_port_range
rmem_default
262144 
/proc/sys/net/core/rmem_default
# /sbin/sysctl -a | grep rmem_default
rmem_max
4194304
/proc/sys/net/core/rmem_max
# /sbin/sysctl -a | grep rmem_max
wmem_default
262144
/proc/sys/net/core/wmem_default
# /sbin/sysctl -a | grep wmem_default
wmem_max 
1048576
/proc/sys/net/core/wmem_max
# /sbin/sysctl -a | grep wmem_max
aio-max-nr 1048576    
 
# 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
 
6. 创建安装目录
# mkdir -p /opt/oracle/product/11.2.0.1
# chown -R oracle:oinstall /opt/oracle
# mkdir /var/oracle
# chown oracle:oinstall  /var/oracle
# chmod 755 /var/oracle
 
7. 配置环境变量
vi /etc/profile
增加下面行:
if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
fi
 
使用Oracle用户登陆:
su - oracle
vi ~/.bash_profile
以下是配置文件的内容,里面已有的部分就不必在次添加了。
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
umask 022
# +--------------------------+
# | SETUP ORACLE ENVIRONMENT |
# +--------------------------+
TMP=/tmp
TMPDIR=/tmp
export TMP TMPDIR
# 如果安装出现相关问题请屏蔽下面5行,
# 安装好后再取消屏蔽这些环境变量设置
export ORACLE_HOME=/opt/oracle/product/11.2.0.1
export ORACLE_BASE=/opt/oracle
export ORACLE_SID=afcsc
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PATH=$PATH:$ORACLE_HOME/bin
# +--------------------------+
# | LINUX STUFF |
# +--------------------------+
export LANG=AMERICAN_AMERICA.ZHS16GBK
unset USERNAME
# +-------------+
# | "GREETINGS" |
# +-------------+
echo ".bash_profile executed"
 
执行:source ~/.bash_profile
 
8. 设置进程数和最大会话数
编辑文件:
# vi /etc/security/limits.conf 加入以下语句:
oracle           soft    nproc           2047
oracle           hard    nproc           16384
oracle           soft    nofile          1024
oracle           hard    nofile          65536
 
9. 关联设置
编辑文件:vi /etc/pam.d/login 加入以下语句:
session    required     pam_limits.so
(注意:根据最后一条session规则的注释,应该加在最后一条规则之前)

9. 解压缩
将linux.x64_11gR2_database_1of2.zip和linux.x64_11gR2_database_2of2.zip移动到移动到/tmp目录下进行解压缩。
$ cd /tmp
$ unzip linux.x64_11gR2_database_1of2.zip
$ unzip linux.x64_11gR2_database_2of2.zip
 
10. 安装
$ cd /tmp/database/
$ ./runInstaller
 
注意:
选择advance install
数据库home设置为/opt/oracle/product/11.2.0.1
数据库全局名称设置为afcsc
字符集选Simplified Chinese ZHS16GBK
 
检查后会运行图形化安装界面。
安装过程中连接库时会出现两个错误:
 
  • 第一个:

/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这个库。

解决办法:
修改/opt/oracle/product/11.2.0.1/sysman/lib/ins_emagent
$(MK_EMAGENT_NMECTL)
修改为:
$(MK_EMAGENT_NMECTL) -lnnz11
然后点击retry通过。
 
 
注:安装需要远程图形化连接安装oracle,具体方式和软件这里不说了。

Linux(CentOS 7.0)安装Oracle11g R2的更多相关文章

  1. 【转发】【linux】【ftp】CentOS 7.0安装配置Vsftp服务器

    adduser -d /var/www/android -g ftp -s /sbin/nologin ftp2 一.配置防火墙,开启FTP服务器需要的端口 CentOS 7.0默认使用的是firew ...

  2. centos7远程安装oracle11g R2详细教程-解决一切问题

    相关链接与资源: sqldevelper(各种操作系统的oracle客户端) http://www.oracle.com/technetwork/cn/developer-tools/sql-deve ...

  3. Linux CentOS 编绎安装Python 3.5

    Linux CentOS 编绎安装Python 3.5 先决条件(若无安装,则不能编绎使用idle3):yum install tk-devel xz -d Python-3.5.0.tar.xzta ...

  4. Red hat Linux(Centos 5/6)安装R语言

    Red hat Linux(Centos 5/6)安装R语言1 wget http://cran.rstudio.com/src/base/R-3/R-3.0.2.tar.gz2 tar xzvf R ...

  5. Linux Centos 系统上安装BT客户端 Transmission

    Linux Centos 系统上安装BT客户端 Transmission   Transmission是一种BitTorrent客户端,特点是一个跨平台的后端和其上的简洁的用户界面,以MIT许可证和G ...

  6. CentOS 7.0安装配置Vsftp服务器

    一.配置防火墙,开启FTP服务器需要的端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop fi ...

  7. Linux CentOS 6.6安装JDK1.7

    Linux CentOS 6.6安装JDK1.7 目录 1.下载JDK 2.卸载JDK 3.安装JDK 3.1..rpm后缀格式JDK安装方式 3.2..tar.gz后缀格式JDK安装方式 4.验证安 ...

  8. CentOS 7.0安装配置LAMP服务器(Apache+PHP+MariaDB)

    CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.service #停止fir ...

  9. Linux(CentOS)系统下安装好apache(httpd)服务后,其他电脑无法访问的原因

    原文:Linux(CentOS)系统下安装好apache(httpd)服务后,其他电脑无法访问的原因 今天试了下在虚拟机上利用CentOS系统的yum命令安装好了httpd(apache2.4.6), ...

随机推荐

  1. English trip V2 - A 1. Fastival Teacher:Julia Key:

    In this lesson you will learn to talk about dates and times. 课上内容(Lesson) Tell your tutor about a fe ...

  2. @RequestBody注解的参数仅仅读取一次的问题解决。

    最近在写日志管理,想着使用拦截器加注解的方式,但是遇到了一个问题,就是如果使用@RequestBody注解接收的参数只能读取一次,造成了我在拦截器中如果接收了参数,在Controller层就接收不到了 ...

  3. 『Python CoolBook:Collections』数据结构和算法_collections.deque队列&yield应用

    一.collections.deque队列 deque(maxlen=N)构造函数会新建一个固定大小的队列.当新的元素加入并且这个队列已满的时候,最老的元素会自动被移除掉. 如果你不设置最大队列大小, ...

  4. 算法-最通俗易懂的KMP算法详解

    有些算法,适合从它产生的动机,如何设计与解决问题这样正向地去介绍.但KMP算法真的不适合这样去学.最好的办法是先搞清楚它所用的数据结构是什么,再搞清楚怎么用,最后为什么的问题就会有恍然大悟的感觉.我试 ...

  5. .net Monitor产生SynchronizationLockException异常的原因

    有时在使用Monitor进行并发同步编程时,会产生SynchronizationLockException异常,抛出的异常内容是"Object synchronization method ...

  6. 高性能场景下,HashMap的优化使用建议

    1. HashMap 在JDK 7 与 JDK8 下的差别 顺便理一下HashMap.get(Object key)的几个关键步骤,作为后面讨论的基础. 1.1 获取key的HashCode并二次加工 ...

  7. centos重置密码

    重置root密码:   法一:                1.开机按e                2.将linux 16后的ro改为rw init=/sysroot/bin/          ...

  8. 网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络(转)

     reference:https://www.cnblogs.com/kevingrace/p/5909719.html https://www.cnblogs.com/awkflf11/p/9190 ...

  9. JAVA条件语句:if;switch case

    if(布尔表达式) { //如果布尔表达式为true将执行的语句 }   如果布尔表达式为true 执行里面的代码 if...else语句: if(布尔表达式){ //如果布尔表达式的值为true } ...

  10. Netty的ByteToMessageDecoder/LengthFieldBasedFrameDecoder

    是个inbound handler,channelRead方法里面,用一个bytebuf(cumulation)来把下一个数据包和当前这一个拼在一起,以免同一个请求被拆包.然后callDecode,里 ...