學習ORACLE-RHEL7安裝Oracle12cR2

把自己在RHEL7.0上安裝Oracle12c R2 的過程記錄下來

1.準備工作

1.0 設置本地域名解析

安裝時提示需要這個東西

[root@oracle12c ~]# echo '192.168.10.10 oracle12c' >> /etc/hosts
[root@oracle12c ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.10 oracle12c
[root@oracle12c ~]#

1.1 主機內存

文檔中對內存的要求是最小1G,推薦2G,查看本機內存爲4G,符合條件:

[root@oracle12c ~]# grep MemTotal /proc/meminfo
MemTotal:        4033904 kB

1.2 操作系統版本

文檔中要求範圍比較寬泛,Oracle linux [5|6|7] ,RHEL[5|6|7] 或其它發行版都可以,本機系統爲 RHEL7.0 符合條件:

[root@oracle12c ~]# uname -a
Linux oracle12c 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@oracle12c ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.0 (Maipo)

1.3 臨時目錄大小

臨時目錄要求最小1G,要求不是很嚴格

[root@oracle12c ~]# df -h /tmp
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   18G  2.9G   15G  17% /

1.4 Swap空間大小

文檔裏對Swap空間的大小要求依賴內存大小;
內存爲1~2G時,Swap應爲內存的1.5倍;內存爲2~16G時,Swap應等於內存大小;本機Swap大小2G,需增加:

[root@oracle12c ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          3939       1420       2519          9          0        320
-/+ buffers/cache:       1098       2840
Swap:         2047          0       2047

增加方法:
1.創建2G文件 /usr/swap

[root@oracle12c Desktop]# dd if=/dev/zero of=/usr/swap bs=1G count=2

2.設置交換分區

[root@oracle12c Desktop]# mkswap /usr/swap
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=b4fe13a0-89ea-4d71-8ada-6516f20cec8e

3.啓動交換分區

[root@oracle12c Desktop]# swapon /usr/swap
swapon: /usr/swap: insecure permissions 0644, 0600 suggested.
[root@oracle12c Desktop]# chmod 0644 /usr/swap

4.開機自動掛載

[root@oracle12c Desktop]# vim /etc/fstab
[root@oracle12c Desktop]# mount -a
[root@oracle12c Desktop]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sat Sep  1 20:22:34 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root   /                       xfs     defaults        1 1
UUID=ed8d7ba8-d900-4481-a7a6-7fcd3995c062 /boot                   xfs     defaults        1 2
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
/usr/swap swap swap defaults 0 0

之前使用UUID做自動掛載,結果安裝時沒有了,重新用文件名掛載,現Swap空間符合要求:

[root@oracle12c Desktop]# free -m
             total       used       free     shared    buffers     cached
Mem:          3939       2811       1127          9          0       1811
-/+ buffers/cache:       1000       2939
Swap:         4095          0       4095

1.5 安裝所需Packages

Item Requirements
Packages for Red HatEnterprise Linux 7 The following packages (or later versions) must be installed:
binutils-2.23.52.0.1-12.el7 (x86_64)
compat-libcap1-1.10-3.el7 (x86_64)
compat-libstdc+±33-3.2.3-71.el7 (i686)
compat-libstdc+±33-3.2.3-71.el7 (x86_64)
glibc-2.17-36.el7 (i686)
glibc-2.17-36.el7 (x86_64)
glibc-devel-2.17-36.el7 (i686)
glibc-devel-2.17-36.el7 (x86_64)
ksh
libaio-0.3.109-9.el7 (i686)
libaio-0.3.109-9.el7 (x86_64)
libaio-devel-0.3.109-9.el7 (i686)
libaio-devel-0.3.109-9.el7 (x86_64)
libgcc-4.8.2-3.el7 (i686)
libgcc-4.8.2-3.el7 (x86_64)
libstdc+±4.8.2-3.el7 (i686)
libstdc+±4.8.2-3.el7 (x86_64)
libstdc+±devel-4.8.2-3.el7 (i686)
libstdc+±devel-4.8.2-3.el7 (x86_64)
libxcb-1.9-5.el7 (i686)
libxcb-1.9-5.el7 (x86_64)
libX11-1.6.0-2.1.el7 (i686)
libX111.6.0-2.1.el7 (x86_64)
libXau-1.0.8-2.1.el7 (i686)
libXau-1.0.8-2.1.el7 (x86_64)
libXi-1.7.2-1.el7 (i686)
libXi-1.7.2-1.el7 (x86_64)
libXtst-1.2.2-1.el7 (i686)
libXtst-1.2.2-1.el7 (x86_64)
libXrender (i686)
libXrender (x86_64)
libXrender-devel (i686)
libXrender-devel (x86_64)
make-3.82-19.el7 (x86_64)
net-tools-2.0-0.17.20131004git.el7 (x86_64) (for Oracle RAC and Oracle Clusterware)
nfs-utils-1.3.0-0.21.el7.x86_64 (for Oracle ACFS)
smartmontools-6.2-4.el7 (x86_64)
sysstat-10.1.5-1.el7 (x86_64)

實際安裝的都能在系統光盤中找到,配置yum倉庫之後直接安裝,實際安裝如下:

[root@oracle12c ~]# yum -y install binutils-* compat-libcap1-* gcc-* gcc-c++-* glibc-*  glibc-devel-* ksh libaio-* libaio-devel-* libgcc-* libstdc++-* libstdc++-devel-* libXi-* libXtst-* make-*  sysstat-* unixODBC*

1.6 內核配置

文檔中給出的參數配置的建議:

Parameter Value File
semmsl
semmns
semopm
semmni
250
32000
100
128
/proc/sys/kernel/sem
shmall 40 percent of the size of physical memory in pages
Note: If the server supports multiple databases, or uses a large SGA, then set this parameter to a value that is equal to the total amount of shared memory, in 4K pages, that the system can use at one time.
/proc/sys/kernel/shmall
shmmax Half the size of physical memory in bytes
See My Oracle Support Note 567506.1 for additional information about configuring shmmax.
/proc/sys/kernel/shmmax
shmmni 4096 /proc/sys/kernel/shmmni
panic_on_oops 1 /proc/sys/kernel/panic_on_oops
file-max 6815744 /proc/sys/fs/filemax
aio-max-nr 1048576
Note: This value limits concurrent outstanding requests and should be set to avoid I/O subsystem failures.
/proc/sys/fs/aiomax-nr
ip_local_port_range Minimum: 9000
Maximum: 65500
/proc/sys/net/ipv4/ip_local_port_range
rmem_default 262144 /proc/sys/net/core/rmem_default
rmem_max 4194304 /proc/sys/net/core/rmem_max
wmem_default 262144 /proc/sys/net/core/wmem_default
wmem_max 1048576 /proc/sys/net/core/wmem_max

實際使用根據自己的系統去調整,以下是參考:

[root@oracle12c Desktop]# cat /etc/sysctl.conf 
# System default settings live in /usr/lib/sysctl.d/00-system.conf.
# To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file
#
# For more information, see sysctl.conf(5) and sysctl.d(5).

kernel.shmall = 2097152
kernel.shmmax = 976678912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.aio-max-nr = 1048576
fs.file-max = 6815744
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

[root@oracle12c Desktop]# sysctl -p
kernel.shmall = 2097152
kernel.shmmax = 976678912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.aio-max-nr = 1048576
fs.file-max = 6815744
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.shmall :該參數控制可以使用的共享內存的總頁數。Linux共享內存頁大小爲4KB,共享內存段的大小都是共享內存頁大小的整數倍。一個共享內存段的最大大小是16G,那麼需要共享內存頁數是16GB/4KB=16777216KB /4KB=4194304(頁),也就是64Bit系統下16GB物理內存,設置kernel.shmall = 4194304才符合要求(幾乎是原來設置2097152的兩倍)。這時可以將shmmax參數調整到16G了,同時可以修改SGA_MAX_SIZE和SGA_TARGET爲12G(您想設置的SGA最大大小,當然也可以是2G~14G等,還要協調PGA參數及OS等其他內存使用,不能設置太滿,比如16G);

kernel.shmmax:是核心參數中最重要的參數之一,用於定義單個共享內存段的最大值。設置應該足夠大,能在一個共享內存段下容納下整個的SGA ,設置的過低可能會導致需要創建多個共享內存段,這樣可能導致系統性能的下降。至於導致系統下降的主要原因爲在實例啓動以及ServerProcess創建的時候,多個小的共享內存段可能會導致當時輕微的系統性能的降低(在啓動的時候需要去創建多個虛擬地址段,在進程創建的時候要讓進程對多個段進行“識別”,會有一些影響),但是其他時候都不會有影響。

官方建議值:
32位linux系統:可取最大值爲4GB(4294967296bytes)-1byte,即4294967295。建議值爲多於內存的一半,所以如果是32爲系統,一般可取值爲4294967295。32位系統對SGA大小有限制,所以SGA肯定可以包含在單個共享內存段中。
64位linux系統:可取的最大值爲物理內存值-1byte,建議值爲多於物理內存的一半,一般取值大於SGA_MAX_SIZE即可,可以取物理內存-1byte。例如,如果爲12GB物理內存,可取1210241024*1024-1=12884901887,SGA肯定會包含在單個共享內存段中。
kernel.shmmni:該參數是共享內存段的最大數量。shmmni缺省值4096,一般肯定是夠用了。
kernel.sem:以kernel.sem = 250 32000 100 128爲例:
250是參數semmsl的值,表示一個信號量集合中能夠包含的信號量最大數目。
32000是參數semmns的值,表示系統內可允許的信號量最大數目。
100是參數semopm的值,表示單個semopm()調用在一個信號量集合上可以執行的操作數量。
128是參數semmni的值,表示系統信號量集合總數。
fs.aio-max-nr:此參數限制併發未完成的請求,應該設置避免I/O子系統故障。
fs.file-max:該參數決定了系統中所允許的文件句柄最大數目,文件句柄設置代表linux系統中可以打開的文件的數量。
net.ipv4.ip_local_port_range:表示應用程序可使用的IPv4端口範圍。
net.core.rmem_default:表示套接字接收緩衝區大小的缺省值。
net.core.rmem_max:表示套接字接收緩衝區大小的最大值。
net.core.wmem_default:表示套接字發送緩衝區大小的缺省值。
net.core.wmem_max:表示套接字發送緩衝區大小的最大值。

1.7 設置oracle用戶的shell限制

1.7.1 編輯配置文件limits.conf

[root@oracle12c ~]# vim /etc/security/limits.conf 
[root@oracle12c ~]# tail -n 10 /etc/security/limits.conf 
#@student        -       maxlogins       4
# End of file
oracle       soft    nproc    2047
oracle       hard    nproc    16384
oracle       soft    nofile   1024
oracle       hard    nofile   65536
oracle       soft    stack    10240
oracle       hard    stack    32768

參數解釋
oracle:被限制的用戶名,如果是限制組組名前面加@以用戶名區分;
soft: 當前系統生效的設置值
hard :系統中所能設定的最大值。soft 的限制不能比har 限制高。用 - 就表明同時設置了 soft 和 hard 的值
noproc :進程的最大數目
stack :最大棧大小
nofile :打開文件的最大數目

1.7.2 使配置文件生效(放入登錄驗證模塊)

[root@oracle12c ~]# echo 'session required pam_limits.so' >> /etc/pam.d/login 
[root@oracle12c ~]# tail -n 5 /etc/pam.d/login 
session    optional     pam_keyinit.so force revoke
session    include      system-auth
session    include      postlogin
-session   optional     pam_ck_connector.so
session required pam_limits.so

1.7.3 oracle用戶的登錄限制設置

[root@oracle12c ~]# vim /etc/profile
[root@oracle12c ~]# tail -n 15 /etc/profile
done

unset i
unset -f pathmunge

if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
       ulimit -u 16384 
       ulimit -n 65536
       ulimit -s 10240
    else
       ulimit -u 16384 -n 65536 -s 10240
    fi
umask 022
fi

1.8 關閉安全子系統

爲了省事,關閉安全子系統:

[root@oracle12c ~]# vim /etc/selinux/config 
[root@oracle12c ~]# cat /etc/selinux/config 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

1.9 創建用戶及用戶組

[root@oracle12c ~]# groupadd oinstall
[root@oracle12c ~]# groupadd dba
[root@oracle12c ~]# useradd -g oinstall -G dba oracle
[root@oracle12c ~]# echo 'oracle' | passwd --stdin oracle
Changing password for user oracle.
passwd: all authentication tokens updated successfully.
[root@oracle12c ~]# id oracle
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)

1.10 創建目錄並授權

由於裝系統時沒考慮到存儲問題,導致存儲有點小,所以另外掛了兩塊硬盤做lvm:

[root@oracle12c ~]# pvcreate /dev/sdb /dev/sdc
  Physical volume "/dev/sdb" successfully created
  Physical volume "/dev/sdc" successfully created
[root@oracle12c ~]# vgcreate oracle12c /dev/sdb /dev/sdc
  Volume group "oracle12c" successfully created
[root@oracle12c ~]# lvcreate -L 39G -n oracle oracle12c
  Logical volume "oracle" created
[root@oracle12c ~]# mkfs.xfs /dev/oracle12c/oracle 
meta-data=/dev/oracle12c/oracle  isize=256    agcount=4, agsize=2555904 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=10223616, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=4992, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@oracle12c ~]# mkdir /u01
[root@oracle12c ~]# vim /etc/fstab 
[root@oracle12c ~]# mount -a
[root@oracle12c ~]# df -h
Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root          18G  5.3G   13G  31% /
devtmpfs                      2.0G     0  2.0G   0% /dev
tmpfs                         2.0G  140K  2.0G   1% /dev/shm
tmpfs                         2.0G  8.8M  2.0G   1% /run
tmpfs                         2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda1                     497M  119M  379M  24% /boot
/dev/sr0                      3.5G  3.5G     0 100% /media/cdrom
/dev/mapper/oracle12c-oracle   39G   33M   39G   1% /u01
[root@oracle12c ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sat Sep  1 20:22:34 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root   /                       xfs     defaults        1 1
UUID=ed8d7ba8-d900-4481-a7a6-7fcd3995c062 /boot                   xfs     defaults        1 2
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
UUID=b4fe13a0-89ea-4d71-8ada-6516f20cec8e swap swap defaults 0 0
/dev/cdrom /media/cdrom iso9660 defaults 0 0
/dev/oracle12c/oracle /u01 xfs defaults 0 0

[root@oracle12c ~]# mkdir -p /u01/app/oracle
[root@oracle12c ~]# chown -R oracle:oinstall /u01
[root@oracle12c ~]# chmod -R 777 /u01

1.11 設置oracle用戶環境變量

[oracle@oracle12c Desktop]$ cd
[oracle@oracle12c ~]$ vim .bash_profile 
[oracle@oracle12c ~]$ source .bash_profile 
[oracle@oracle12c ~]$ echo $ORACLE_HOME
/u01/app/oracle/product/12.2.0/dbhome_1
[oracle@oracle12c ~]$ tail -n 15 .bash_profile
	. ~/.bashrc
fi

# User specific environment and startup programs
ORACLE_BASE=/u01/app/oracle;export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/12.2.0/dbhome_1;export ORACLE_HOME
ORACLE_SID=orcl;export ORACLE_SID
TMP=/tmp;export TMP
TMPDIR=$TMP;export TMPDIR
#NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8";export NLS_LANG
TNS_ADMIN=$ORACLE_HOME/network/admin;export TNS_ADMIN
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH;export PATH

PATH=$PATH:$HOME/.local/bin:$HOME/bin;export PATH

2.安裝

2.1 解壓並安裝

[oracle@oracle12c ~]$ mv linuxx64_12201_database.zip  /u01/app/oracle/
[oracle@oracle12c ~]$ cd /u01/app/oracle
[oracle@oracle12c oracle]$ ls
linuxx64_12201_database.zip
[oracle@oracle12c oracle]$ unzip linuxx64_12201_database.zip 
Archive:  linuxx64_12201_database.zip
   creating: database/
   creating: database/sshsetup/
  inflating: database/sshsetup/sshUserSetup.sh  

[oracle@oracle12c oracle]$ cd database/
[oracle@oracle12c database]$ ls
install  response  rpm  runInstaller  sshsetup  stage  welcome.html
[oracle@oracle12c database]$ ./runInstaller 
Starting Oracle Universal Installer...

2.2 軟件安裝過程截圖:

2.2.1 選擇不推送

反向勾選推送

2.2.2 只安裝數據庫軟件

在這裏插入圖片描述

2.2.3 單實例數據庫平臺

在這裏插入圖片描述

2.2.4 選擇版本

在這裏插入圖片描述

2.2.5 安裝位置確認

在這裏插入圖片描述

2.2.6 安裝目錄位置

在這裏插入圖片描述

2.2.7 系統組權限分配

在這裏插入圖片描述

2.2.8 安裝概覽

在這裏插入圖片描述

2.2.9 安裝

在這裏插入圖片描述

第一次安裝時系統不知道什麼原因重啓了。把文件全部刪掉重新安裝的。

使用root用戶執行兩個shell腳本
1./u01/app/oraInventory/orainsRoot.sh
1./u01/app/oracle/product/12.2.0/dbhome_1/root.sh

3.dbca安裝數據庫

[root@oracle12c ~]# dbca

第一次輸入沒有反應,發現是環境變量ORACLE_HOME與實際安裝不服,改一下就好了

3.1 選擇行爲-創建數據庫

在這裏插入圖片描述

3.2 選擇創建模式-高級配置

在這裏插入圖片描述

3.3 部署類型-單實例,通用,事務

在這裏插入圖片描述

3.4 數據庫身份-名字、ID、是否容器

在這裏插入圖片描述

3.5 存儲選項-文件系統位置、非OMF

在這裏插入圖片描述

3.6 指定快速恢復區

在這裏插入圖片描述

3.7 網絡配置-以後手動配置

在這裏插入圖片描述

3.8 配置Vault安全-忽略

在這裏插入圖片描述

3.9.1 配置內存管理

在這裏插入圖片描述

3.9.2 配置字符集

在這裏插入圖片描述

3.10 管理工具選擇–忽略

在這裏插入圖片描述

3.11 身份驗證-用戶密碼

在這裏插入圖片描述

3.12 創建選項-建庫、保留建庫腳本

在這裏插入圖片描述

3.13 建庫摘要

在這裏插入圖片描述

3.14 創建過程

在這裏插入圖片描述

3.15 完成

在這裏插入圖片描述

4.驗證登錄

[oracle@oracle12c ~]$ 
[oracle@oracle12c ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Sun Jan 13 21:22:46 2019

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production


SQL> select name,open_mode from v$database;

NAME	  OPEN_MODE
--------- --------------------
ORCL	  READ WRITE

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章