ORACE APEX 18.2 之一(ORACLE 12.2安裝)
1. 分配给临时文件系统的磁盘空间
临时目录中至少有1 GB的空间。Oracle建议2 GB或更多
2. 交换相对于RAM的空间分配
4 GB到16 GB之间:等于RAM的大小
超过16 GB:16 GB
3. 验证共享内存(/dev/shm)是否已正确安装且大小足够
> SGA+PGA 或 =物理内存*50%
- 所需软件介绍
序号 | 类型 | 内容 |
---|---|---|
1 | 数据库 | linuxx64_12201_database.zip |
2 | 操作系统 | CentOS-7-x86_64-Minimal-1708.iso |
3 | 虚拟机软件 | VMware® Workstation 12 Pro 12.5.9 build-7535481 |
4 | 工具 | Xmanager Enterprise 5 |
5 | 工具 | rlwrap-0.42 (用于记录sqlplus、rman等命令的历史记录) |
- IP地址规划
主机名 | IP接口名稱 | 地址类型 | IP 地址 | 注册位置 |
---|---|---|---|---|
xag182 | xag182 | DB | 192.168.40.182 | /etc/hosts |
- 操作系统本地磁盘分区规划
序号 | 分区名称 | 大小 | 用途说明 |
---|---|---|---|
1 | /boot | 200MB | 引导分区 |
2 | /tmp | 3G | 临时空间 |
3 | /home | 1G | 所有用户的home目录 |
4 | swap | 8G | 交换分区(物理內存小於8G則 *2 反之 同物理內存 |
5 | / | 28G | 根分区 oracle和grid的安装目录 |
- 修改網卡配置文件
[root@xag182 ~]# cd /etc/sysconfig/network-scripts
[root@xag182 network-scripts]# vi ifcfg-ens33
[root@xag182 network-scripts]# cat ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
NAME="ens33"
UUID="53d05fdb-99d1-47b1-a26c-086fc4dc8e1a"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.40.182"
GATEWAY="192.168.40.2"
NETMASK="255.255.255.0"
DNS1="8.8.8.8"
[root@xag182 network-scripts]# service network restart
- 安裝基本工具
[root@xag182 ~]# yum -y install nano vim wget curl net-tools lsof zip unzip
#安裝rlwrap
[root@xag182 ~]# cd /usr/local/src
[root@xag182 src]# pwd
/usr/local/src
[root@xag182 src]# yum -y install perl autoconf
[root@localhost src]# wget http://www.rpmfind.net/linux/epel/6/x86_64/Packages/r/rlwrap-0.42-1.el6.x86_64.rpm
[root@xag182 src]# rpm -ivh rlwrap-0.42-1.el6.x86_64.rpm
- 修改主機名
[root@xag182 src]# hostname
xag182
[root@xag182 src]# cat /etc/hostname
xag182
[root@xag182 src]# vim /etc/sysconfig/network
[root@xag182 src]# cat /etc/sysconfig/network
# Created by anaconda
NETWORKING=yes
NOZEROCONF=yes
HOSTNAME=xag182
[root@xag182 src]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.40.182 xag182
- 修改防火墙
#安装centos7选择基本安装,配置完网络后首先要先关闭firewall:停止firewall
[root@xag182 /]# systemctl stop firewalld.service
#禁止firewall开机启动
[root@xag182 /]# systemctl disable firewalld.service
#安装iptables防火墙yum方式安装iptables
[root@xag182 /]# yum install iptables-services
#编辑防火墙配置文件
[root@xag182 /]#vim /etc/sysconfig/iptables
#添加下面三句话到默认的22端口这条规则的下面
[root@xag182 /]#
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1525 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1158 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 161 -j ACCEPT
#最后重启防火墙使配置生效
[root@xag182 /]# systemctl restart iptables.service
#查看防火墙状态
[root@xag182 /]# systemctl status iptables.service
#设置防火墙开机启动
[root@xag182 /]# systemctl enable iptables.service
8.关闭SELINUX 编辑selinux的配置文件
[root@xag182 /]# vim /etc/selinux/config
#注释掉下面两行
#SELINUX=enforcing
#SELINUXTYPE=targeted
#增加一行
SELINUX=disabled
#重启系统
[root@xag182 /]# reboot
9.安装系统需要的rpm包
[root@xag182 /]#
yum install gcc gcc-c++ binutils compat-libcap1 compat-libstdc++-33 glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libxcb libX11 libXau libXi libXtst make net-tools nfs-utils smartmontools sysstat xterm unixODBC unixODBC-devel libXp e2fsprogs e2fsprogs-libs elfutils-libelf-devel libXrender -y
- 添加oracle 用戶
[root@xag182 ]# groupadd oinstall
[root@xag182 ]# groupadd dba
[root@xag182 ]# groupadd oper
[root@xag182 ]# useradd -g oinstall -G dba,oper oracle
#oracle用户的登录密码,后续登录要用,记着。
[root@xag182 ]# echo "123456" | passwd --stdin oracle
#设置密码永不过期
[root@xag182 ~]# chage -M -1 oracle
[root@xag182 ~]# chage -l oracle
[root@xag182 ~]# id oracle
uid=1000(oracle) gid=1000(oinstall) groups=1000(oinstall),1001(dba),1002(oper)
- 修改系统对用户使用资源的限制
[root@xag182 ~]# cat /etc/security/limits.conf
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 3145728
oracle hard memlock 3145728
- 修改系统的参数
[root@xag182 ~]# getconf PAGE_SIZE
4096
[root@xag182 ~]# grep MemTotal /proc/meminfo
MemTotal: 7994076 kB
#計算方法如下
shmall = 7994076 * 1024 /4096 =1998519
shmmax = 7994076 * 1024 *0.9 =7367340440
[root@xag182 ~]# cat /etc/sysctl.conf
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1998519
kernel.shmmax = 7367340440
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
[root@xag182 ~]# sysctl -p
- 配置/etc/pam.d/login
[root@xag182 ~]# vim /etc/pam.d/login
#add
session required pam_limits.so
- 修改ulimit
[root@xag182 ~]# vim /etc/profile
#添加oracle 用户 limit:
if [ $USER = "oracle" ] ; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
[root@xag182 ~]# source /etc/profile
- 检查并卸载OpenJDK & 安裝JDK 1.8
[root@xag182 ~]# java -version
-bash: java: command not found
[root@xag182 ~]# rpm -qa | grep java
#存在则卸载,命令: rpm -e --nodeps 包名
#安装jdk
[root@xag182 ~]# mkdir /u01/java -p
[root@xag182 ~]# cd /u01/java/
[root@xag182 java]# ls
jdk1.8.0_181 jdk-8u181-linux-x64.tar.gz
[root@xag182 java]# tar -zxvf jdk-8u181-linux-x64.tar.gz
#设置环境变量
[root@xag182 java]# vim /etc/profile
在profile中添加如下内容:
#set java environment
JAVA_HOME=/u01/java/jdk1.8.0_181
JRE_HOME=/u01/java/jdk1.8.0_181/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
#让修改生效:
[root@xag182 java]# source /etc/profile
#输入java -version查看一下jdk版本信息:
[root@xag182 java]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
- 创建安装目录
[root@xag182 ]#
mkdir -p /u01/app/oracle/
mkdir -p /u01/tmp/
mkdir -p /u01/setup/
mkdir -p /u02/oradata/
mkdir -p /u03/fra/
chown -R oracle:oinstall /u01/app/
chown -R oracle:oinstall /u01/tmp/
chown -R oracle:oinstall /u01/setup/
chown -R oracle:oinstall /u02/oradata/
chown -R oracle:oinstall /u03/fra/
chmod -R 775 /u01/app/
chmod -R 775 /u01/tmp/
chmod -R 775 /u01/setup/
chmod -R 775 /u02/oradata/
chmod -R 775 /u03/fra/
- 配置/dev/shm大小
[root@xag182 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 29G 8.5G 21G 30% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.7M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 187M 120M 67M 65% /boot
/dev/mapper/centos-home 953M 33M 921M 4% /home
/dev/mapper/centos-tmp 2.8G 33M 2.8G 2% /tmp
tmpfs 781M 0 781M 0% /run/user/1000
vim /etc/fstab
修改/dev/shm的大小
修改/etc/fstab的这行: 默认的:
tmpfs /dev/shm tmpfs defaults 0 0
改成:
tmpfs /dev/shm tmpfs defaults,size=8G 0 0
size参数也可以用G作单位:size=1G。
重新mount /dev/shm使之生效:
# mount -o remount /dev/shm
马上可以用"df -h"命令检查变化。
[root@xag182 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 29G 8.5G 21G 30% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 8.0G 0 8.0G 0% /dev/shm
tmpfs 3.9G 8.7M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 187M 120M 67M 65% /boot
/dev/mapper/centos-home 953M 33M 921M 4% /home
/dev/mapper/centos-tmp 2.8G 33M 2.8G 2% /tmp
tmpfs 781M 0 781M 0% /run/user/1000
- 配置oracle用戶环境变量
[root@xag182 java]# su - oracle
[oracle@xag182 ~]$ java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
[oracle@xag182 ~]$ vim .bash_profile
[oracle@xag182 ~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
export DISPLAY=10.0.0.85:0.0
ORACLE_SID=MPAPEX;export ORACLE_SID
ORACLE_UNQNAME=MPAPEX;export ORACLE_UNQNAME
#JAVA_HOME=/u01/java/jdk1.8.0_181; export JAVA_HOME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1; export ORACLE_HOME
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="YYYY:MM:DD HH24:MI:SS"; export NLS_DATE_FORMAT
NLS_LANG=American_America.AL32UTF8; export NLS_LANG
TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN
ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11
PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
THREADS_FLAG=native; export THREADS_FLAG
export TEMP=/u01/tmp
export TMPDIR=/u01/tmp
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
#alias asmcmd='rlwrap asmcmd'
#设置环境变量,登录oracle会提示设置ORACLE_SID以免实例太多误操作
#/usr/local/bin/oraenv
#ORAENV_ASK=YES
#export ORAENV_ASK
umask 022
[oracle@xag182 ~]$ source .bash_profile
-bash: /usr/local/bin/oraenv: No such file or directory
19.开始安装
[oracle@xag182 setup]$ unzip linuxx64_12201_database.zip
[oracle@xag182 setup]$ cd database/
[oracle@xag182 database]$ ./runInstaller
- 附加說明
racle官方文档推荐:
MEMORY_TARGET=物理内存 x 80%
MEMORY_MAX_SIZE=物理内存 x 80%
对于OLTP系统:
SGA_TARGET=(物理内存 x 80%) x 80%
SGA_MAX_SIZE=(物理内存 x 80%) x 80%
PGA_AGGREGATE_TARGET=(物理内存 x 80%) x 20%
对于DSS系统:
SGA_TARGET=(物理内存 x 80%) x 50%
SGA_MAX_SIZE=(物理内存 x 80%) x 50%
PGA_AGGREGATE_TARGET=(物理内存 x 80%) x 50%
- kernel.shmmax & kernel.shmall 官方建议值
1. kernel.shmmax :
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,能在一个共享内存段下容纳下整个的 SGA , 设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及 ServerProcess 创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低 ( 在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响 ) ,但是其他时候都不会有影响。
官方建议值:
32 位 linux 系统:可取最大值为 4GB ( 4294967296bytes ) -1byte ,即 4294967295 。建议值为多于内存的一半,所以如果是 32 为系统,一般可取值为 4294967295 。 32 位系统对 SGA 大小有限制,所以 SGA 肯定可以包含在单个共享内存段中。
64 位 linux 系统:可取的最大值为物理内存值 -1byte ,建议值为多于物理内存的一半,一般取值大于 SGA_MAX_SIZE 即可,可以取物理内存 -1byte 。
内存为 12G 时,该值为 12*1024*1024*1024-1 = 12884901887
内存为 16G 时,该值为 16*1024*1024*1024-1 = 17179869183
内存为 32G 时,该值为 32*1024*1024*1024-1 = 34359738367
内存为 64G 时,该值为 64*1024*1024*1024-1 = 68719476735
内存为 128G 时,该值为 128*1024*1024*1024-1 = 137438953471
2. kernel.shmall :
该参数控制可以使用的共享内存的总页数。 Linux 共享内存页大小为 4KB, 共享内存段的大小都是共享内存页大小的整数倍。
一个共享内存段的最大大小是 16G ,那么需要共享内存页数是 16GB/4KB==4194304 (页),
当内存为 12G 时, kernel.shmall = 3145728
当内存为 16G 时, kernel.shmall = 4194304
当内次为 32G 时, kernel.shmall = 8388608
当内存为 64G 时, kernel.shmall = 16777216
当内存为 128G 时, kernel.shmall = 33554432