前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【安装】CentOS7.7下图形化安装Oracle11gR2

【安装】CentOS7.7下图形化安装Oracle11gR2

作者头像
甚至熊熊
发布2021-04-22 17:16:12
9740
发布2021-04-22 17:16:12
举报
文章被收录于专栏:数据库学习笔记

安装数据库阶段是非常重要的一环,安装合理可以避免很多后续问题,当前生产环境基本都使用的CentOS7+Oracle11gR2的搭配,现将虚拟机环境下图形安装方式整理如下,内容包含:系统参数设置、数据库软件安装、监听配置及建库

一、准备工作

1、环境规划

设置

备注

内存

8G

交换分区(SWAP)

8G

物理内存16GB以内,SWAP的大小应该与物理内存相等;物理内存大于16GB时,SWAP的大小设置为16G

磁盘1

/oracle

软件安装盘,生产最小设置50G

磁盘2

/oradata

数据文件存放盘,根据业务情况设置大小

磁盘3

/backup

备份盘,考虑使用NFS

磁盘4

/archive

归档日志盘,根据业务情况设置大小

2、基本环境配置

2.1 系统检查和调整

  1. 检查hostname
代码语言:javascript
复制
hostname
--修改:hostnamectl set-hostname 主机名
  1. 检查操作系统版本
代码语言:javascript
复制
uname -a
cat /etc/redhat-release
  1. 检查磁盘分区情况
代码语言:javascript
复制
df -h
  1. 检查内存情况
代码语言:javascript
复制
free -h
  1. 检查网卡信息
代码语言:javascript
复制
ifconfig

2.2 修改hosts文件

将IP、主机名对应关系添加到host文件,示例:

代码语言:javascript
复制
echo "192.168.10.136  xktest" >> /etc/hosts
cat /etc/hosts
代码语言:javascript
复制
2.3 配置语言环境变量
代码语言:javascript
复制
echo "export LANG=en_US" >> ~/.bash_profile
source ~/.bash_profile

2.4 准备文件系统

代码语言:javascript
复制
fdisk -l 查看磁盘
代码语言:javascript
复制
pvcreate /dev/sdb /dev/sdc /dev/sdd /dev/sde

vgcreate oravg /dev/sdb
vgcreate datavg /dev/sdc
vgcreate backvg /dev/sdd
vgcreate archvg /dev/sde

lvcreate -n oralv -L 20000M oravg
lvcreate -n datalv -L 20000M datavg
lvcreate -n backuplv -L 20000M backvg
lvcreate -n archivelv -L 20000M archvg

--格式化为xfs格式
mkfs.xfs /dev/backvg/backuplv
mkfs.xfs /dev/archvg/archivelv
mkfs.xfs /dev/datavg/datalv
mkfs.xfs /dev/oravg/oralv
代码语言:javascript
复制
设置文件系统自动挂载
代码语言:javascript
复制
vi /etc/fstab
/dev/oravg/oralv  /oracle    xfs  defaults  0 0
/dev/datavg/datalv  /oradata  xfs  defaults  0 0
/dev/backvg/backuplv  /backup    xfs  defaults  0 0
/dev/archvg/archivelv  /archive  xfs  defaults  0 0

或者采用如下方式

代码语言:javascript
复制
echo "/dev/oravg/oralv  /oracle    xfs  defaults  0 0" >> /etc/fstab

创建挂载目录

代码语言:javascript
复制
mkdir /oracle
mkdir /oradata
mkdir /backup
mkdir /archive

挂载

代码语言:javascript
复制
mount /oracle
mount /oradata
mount /backup
mount /archive

2.5 关闭不必要的系统服务

  • 关闭防火墙
代码语言:javascript
复制
systemctl stop firewalld
systemctl disable firewalld

--关闭后查看状态
systemctl status firewalld
或 firewall-cmd --stat
  • 关闭selinux(重启生效)
代码语言:javascript
复制
--永久关闭
vi /etc/selinux/config
修改SELINUX参数为disabled

--临时关闭
setenforce 0
查看状态 getenforce

2.6 配置yum源

代码语言:javascript
复制
mount /dev/cdrom /mnt

备份原有文件

代码语言:javascript
复制
cd /etc/yum.repos.d
mkdir bak
mv *.repo bak/

生成配置文件

代码语言:javascript
复制
echo "[EL]" >> /etc/yum.repos.d/source.repo
echo "name=Linux 7.x DVD" >> /etc/yum.repos.d/source.repo
echo "baseurl=file:///mnt" >> /etc/yum.repos.d/source.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/source.repo
echo "enabled=1" >> /etc/yum.repos.d/source.repo

检查内容

代码语言:javascript
复制
cat /etc/yum.repos.d/source.repo

2.7 安装所需包

代码语言:javascript
复制
yum -y install binutils compat-libstdc++-33 gcc gcc-c++ glibc glibc-common  glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat openssh-clients compat-libcap1   xorg-x11-utils xorg-x11-xauth elfutils unixODBC unixODBC-devel libXp elfutils-libelf elfutils-libelf-devel smartmontools

单独安装

代码语言:javascript
复制
rpm -ivh compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm

2.8 修改资源限制参数

代码语言:javascript
复制
vi /etc/security/limits.conf

# ORACLE SETTING
oracle     soft    nproc   16384             
oracle     hard    nproc   16384
oracle     soft    nofile  16384
oracle     hard    nofile  65536
oracle     soft    stack   10240
oracle     hard    stack   32768
oracle     soft    memlock   8000000      --根据实际物理内存设置,单位KB,略低于物理内存,示例中内存8G
oracle     hard    memlock   8000000      --根据实际物理内存设置,单位KB,略低于物理内存,示例中内存8G

vi /etc/security/limits.d/20-nproc.conf 
* soft  nproc 16384

说明:

  • soft代表软件限制,hard代表硬件限制
  • 软件限制到了会报警,硬件限制到了会报错
  • nproc参数:操作系统级别对每个用户创建的进程数的限制
  • nofile参数:文件描述符(句柄)一个进程能够打开文件的次数,也就是一个进程能打开多少文件,影响应用的并发度
  • stack参数:堆大小
  • memlock参数:限制锁定内存的大小,单位KB,略低于物理内存

2.9 配置内核参数

代码语言:javascript
复制
vi /etc/sysctl.conf

# ORACLE 
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 1258291
kernel.shmmax = 5153960755
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 = 1048586
#kernel.panic_on_oops = 1
vm.nr_hugepages = 2600

sysctl -p 生效

参数

说明

fs.aio-max-nr

可以拥有的异步IO请求数,避免IO系统故障,默认

fs.file-max

允许的文件句柄最大数目,默认

kernel.shmall

控制共享内存页数=shmmax/PAGESIZE;getconf PAGESIZE 查看PAGESIZE

kernel.shmmax

单个共享内存段最大值,让数据库在一个共享段里容纳整个SGA。举例:假设有8G内存,数据库最大使用内存,不要超过物理内存的80%(SGA+PGA),所以8G内存情况下,SGA要小于4.8G,PGA要小于1.6G,计算shmmax值最大为4.8Gx1024x1024x1024=5153960755

kernel.shmmni

共享内存段的最大数量,默认

kernel.sem

空格不能去掉,信号参数,默认

net.ipv4.ip_local_port_range

oracle本地ipv4端口范围

net.core.rmem_default

默认

net.core.rmem_max

默认

net.core.wmem_default

默认

net.core.wmem_max

默认

kernel.panic_on_oops

CentOS7需要加上该参数,避免12cbug

vm.nr_hugepages

大内存页,默认4K/页,数据库建议用2M/页,该参数一定要大于SGA。计算方式:sga_max_size/2M+100~500M。8G内存情况下SGA最大4.8G,(4.8x1024)/2=2457.6,加一点得2600

检查大页情况

代码语言:javascript
复制
cat /proc/meminfo | grep Huge

2.10 创建用户、组及目录

创建组

代码语言:javascript
复制
/usr/sbin/groupadd -g 60001 oinstall
/usr/sbin/groupadd -g 60002 dba
/usr/sbin/groupadd -g 60003 oper

创建oracle用户

代码语言:javascript
复制
useradd -u 61001 -g oinstall -G dba,oper oracle
passwd oracle

注意:不建议使用echo “oracle” | passwd --stdin oracle 命令设置,该方式使用history可以看到密码,另有符号问题可能会导致bug

创建目录

代码语言:javascript
复制
mkdir -p /oracle
mkdir -p /oracle/app/oracle/product/11.2.0
mkdir -p /oracle/app/oraInventory

注意:不建议使用/u01作为目录,使用/oracle清晰避免误操作

修改所属组及授权

代码语言:javascript
复制
chown -R oracle:oinstall /oracle
chown -R oracle:oinstall /oradata
chown -R oracle:oinstall /backup
chown -R oracle:oinstall /archive

chmod -R 775 /oracle
chmod -R 775 /oradata
chmod -R 775 /backup
chmod -R 775 /archive

2.11 关闭透明大页

rac环境下会导致节点重启及性能问题 查看设置前情况

代码语言:javascript
复制
cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]

cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]

修改设置

代码语言:javascript
复制
vi /etc/rc.d/rc.local

if test -f /sys/kernel/mm/transparent_hugepage/enabled;then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag;then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

chmod +x /etc/rc.d/rc.local

设置后需要重启系统

2.12 修改numa功能

代码语言:javascript
复制
vi /etc/default/grub

在GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet numa=off" 这一行加上numa=off

--重新编译
grub2-mkconfig -o /etc/grub2.cfg

参考:

  1. https://www.thegeekdiary.com/how-to-disable-numa-in-centos-rhel-67/
  2. https://www.cnblogs.com/wjoyxt/p/4804081.html

2.13 共享内存段

代码语言:javascript
复制
vi /etc/fstab
没有的话加入下一行
none    /dev/shm    tmpfs  defaults,size=8G  0    0

--生效
mount -o remount    /dev/shm

2.14 配置环境变量

代码语言:javascript
复制
su - oracle
vi ~/.bash_profile
代码语言:javascript
复制
export PATH
#左侧显示
PS1="[`whoami`@`hostname`:"'$PWD]'
export TMP=/tmp
export LANG=en_US
export TMPDIR=$TMP
export ORACLE_UNQNAME=xktest
export ORACLE_SID=xktest
export ORACLE_BASE=/oracle/app/oracle;
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1;
export NLS_DATA_FORMAT="yyyy-mm-dd HH24:MI:SS";
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;
#线程标志
export THREADS_FLAG=native;
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
#终端类型
export ORACLE_TERM=xterm;
#代表使用oracle用户创建的文件都是755权限,此处是反码
umask=022

注意:等号前后不能有空格

二、安装Oracle软件

1、安装包上传解压

代码语言:javascript
复制
cd /tmp

--使用终端工具将压缩包上传
p13390677_112040_Linux-x86-64_1of7.zip
p13390677_112040_Linux-x86-64_2of7.zip
代码语言:javascript
复制
su - oracle
unzip 解压
解压缩完成后出现database文件夹 用户是oracle 组是oinstall

2、软件安装

代码语言:javascript
复制
cd database

CentOS7下安装11gR2有bug,需要执行如下安装命令

代码语言:javascript
复制
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0

注意:虚拟机环境无法打开图形化界面需要执行

代码语言:javascript
复制
export DISPLAY=192.168.10.1:0.0
上面IP为本机IP

安装前检查问题解决:

  • /tmp目录空间不足,清理空间即可,对实际安装无影响
  • 内核参数shmall不符合要求,勾选后点击【Fix&Check Again】,在root执行脚本解决
  • 缺少安装包,安装即可,pdksh包在7环境下不需要可选择ignore

安装到86%报错,这里为CentOS7下安装11gR2的bug,处理方式: /oracle/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk 先备份,再修改 搜索NMECTL这一行 在括号后面加上 -lnnz11 修改保存

再点击retry

root下执行脚本

到此软件安装完毕

三、配置监听

代码语言:javascript
复制
su - oracle
netca

完成,查看1521端口是否被监听

代码语言:javascript
复制
netstat -an | grep 1521

查看监听状态

代码语言:javascript
复制
lsnrctl status

四、DBCA建库

Database Name设置与SID相同,要与.bash_profile文件中ORACLE_SID相同

不安装EM

按照图示选择,数据文件路径设置为/oradata

不启动闪回区,先不启用归档

选择Custom,参数设置要符合2.7小节说明 另外不要使用AMM,与内存大页不兼容

注意:在step 10 if 11这一步,需要设置

  1. 控制文件多路复用
  2. system、sysaux、TEMP、UNDOTBS1 生产环境设置至少20G(20480M)
  3. USERS表空间设置5G即可,
  4. 重做日志至少5组,至少200M/组

建库完毕

代码语言:javascript
复制
--查看监听状态
lsnrctl status
--登陆数据库查看
sqlplus / as sysdba

五、总结

  1. 以上为系统参数设置、数据库软件安装、监听配置及建库过程,后续还有补丁安装、参数优化步骤
  2. 部分设置,如numa还需深入了解原理,实际验证
  3. 生产环境一般使用静默安装方式,后续另开一篇
  4. 安装、分区、建库等都可通过shell脚本简化流程,该部分需要加强
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据库学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、准备工作
    • 1、环境规划
      • 2、基本环境配置
        • 2.1 系统检查和调整
        • 2.2 修改hosts文件
        • 2.4 准备文件系统
        • 2.5 关闭不必要的系统服务
        • 2.6 配置yum源
        • 2.7 安装所需包
        • 2.8 修改资源限制参数
        • 2.9 配置内核参数
        • 2.10 创建用户、组及目录
        • 2.11 关闭透明大页
        • 2.12 修改numa功能
        • 2.13 共享内存段
        • 2.14 配置环境变量
    • 二、安装Oracle软件
      • 1、安装包上传解压
        • 2、软件安装
        • 三、配置监听
        • 四、DBCA建库
        • 五、总结
        相关产品与服务
        数据库
        云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档