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