1. 程式人生 > >基於CentOS7系統安裝Oracle11gR2伺服器企業版

基於CentOS7系統安裝Oracle11gR2伺服器企業版

基礎準備

環境準備

  • 系統:CentOS7 (需要聯網,或配置本地源)
  • 終端神器 :MobaXterm 點選進入下載頁面(SSH連線、圖形轉發)
  • Oracle安裝包:linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip
  • 檢視當前核心(需要核心2.3.1以上)
# cat /proc/version 
Linux version 3.10.0-514.el7.x86_64 ([email protected].dev.centos.org) (gcc version 
4.8.5 20150623 (Red Hat 4.8
.5-11) (GCC) ) #1 SMP Tue Nov 22 16:42:41 UTC 2016

系統環境基礎配置

配置靜態IP

  • 配置靜態IP(192.168.233.99)
#cd /etc/sysconfig/network-scripts/     #切換路徑
#vi ifcfg-ens33                         #編輯你的網絡卡檔案
-----------以下為檔案中內容-----------
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"                 #設定靜態的IP
DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="51dd3e15-9ec2-4aeb-b1bf-f371da401511" DEVICE="ens33" ONBOOT="yes" #系統啟動時啟用網絡卡 IPADDR="192.168.233.99" #IP地址
PREFIX="24" #子網掩碼 GATEWAY="192.168.233.2" #閘道器地址 DNS1="192.168.233.2" #DNS地址 IPV6_PRIVACY="no"

修改hostname

  • 編輯hostname檔案,寫入centos
# vi /etc/hostname
-----------以下為檔案中內容-----------
centos

修改hosts

  • 編輯hosts檔案,寫入ip和hostname
# vi /etc/hosts
-----------以下為檔案中內容-----------
192.168.233.99 centos

修改系統標識

  • 檢視系統版本標識
# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core) 
  • 修改系統版本標識(將centos標識修改為redhat-7)
# vi /etc/redhat-release
-----------以下是檔案內容-----------
redhat-7

關閉防火牆

# systemctl stop firewalld.service  #臨時關閉防火牆
# systemctl disable firewalld.service  #禁止使用防火牆(重啟也是禁止的)

關閉selinux

# vi /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   #此處修改為disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

注:重啟系統使所有配置生效

依賴安裝

安裝基礎工具

# yum install -y net-tools vim* wget ntp telnet

安裝SSH X11轉發依賴

  • SSH X11 Forwarding 依賴
# yum -y install xorg-x11-xauth xclock 
  • 檢視SSH配置(一般情況下無需操作直接執行測試即可)
# cat /etc/ssh/sshd_config
X11Forwarding yes
X11UseLocalhost no -- 禁止將X11轉發請求繫結到本地迴環地址上
AddressFamily inet -- 強制使用IPv4通道
  • 測試:使用MobaXterm終端工具執行xclock程式(Win端彈出小時鐘)
# xclock

安裝Oracle必要依賴

  • 使用yum命令安裝最新的依賴
# yum install -y binutils compat-libcap1 compat-libstdc* gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc libstdc++ libstdc++-devel libXi libXtst make sysstat elfutils-libelf-devel unixODBC unixODBC-devel

Oracle Linux 7和Red Hat Enterprise Linux 7 必須安裝以下軟體包(或更高版本),官方是這麼說的:

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
gcc-4.8.2-3.el7.x86_64 
gcc-c++-4.8.2-3.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 
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 
make-3.82-19.el7.x86_64 
sysstat-10.1.5-1.el7.x86_64 

安裝前準備

組和使用者

# groupadd oinstall
# groupadd dba
  • 新建使用者oracle並指定組為oinstall和dba
# useradd -g oinstall -g dba -m oracle
# passwd oracle      #根據提示輸入密碼
  • 檢視oracle使用者基本資訊
# id oracle
uid=1002(oracle) gid=1003(dba) 組=1003(dba)

安裝目錄

  • 建立相關目錄
# mkdir -p /opt/data/oracle            #oracle資料庫安裝目錄
# mkdir -p /opt/data/oraInventory     #oracle資料庫配置檔案目錄
# mkdir -p /opt/data/database         #oracle資料庫軟體包解壓目錄
  • 將資料夾指定操作使用者oracle
# chown -R oracle:oinstall /opt/data/oracle/
# chown -R oracle:oinstall /opt/data/oraInventory/
# chown -R oracle:oinstall /opt/data/database

修改系統核心引數

  • 修改核心引數,以8G記憶體為例(配置時最好把內容中註釋去掉)
# vi /etc/sysctl.conf 
-----------將以下內容根據實際情況修改後貼上至檔案中------------
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744         #設定最大開啟檔案數
fs.aio-max-nr = 1048576
kernel.shmall = 2097152       #共享記憶體的總量,8G記憶體設定:2097152*4k/1024/1024
kernel.shmmax = 7730941132    #單個段允許使用的大小,設定為記憶體的90%如:8*1024*1024*1024*90%
kernel.shmmni = 4096          #整個系統共享記憶體端的最大數,預設值 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4埠範圍
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576
  • 使配置立即生效
# sysctl -p

對oracle使用者設定限制

  • 對oracle使用者設定限制,提高軟體執行效能
# vi /etc/security/limits.conf 
-----------將以下內容根據實際情況修改後貼上至檔案中------------
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

配置使用者的環境變數

  • 配置oracle相關環境變數(配置時最好把內容中註釋去掉)
# vi /home/oracle/.bash_profile
-----------將以下內容根據實際情況修改後貼上至檔案中------------
export ORACLE_BASE=/data/oracle #oracle資料庫安裝目錄
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #oracle資料庫路徑
export ORACLE_SID=orcl #oracle啟動資料庫例項名
export ORACLE_TERM=xterm #xterm視窗模式安裝
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #新增系統環境變數
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #新增系統環境變數
export LANG=C #防止安裝過程出現亂碼
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK  #設定Oracle客戶端字符集,必須與Oracle安裝時設定的字符集保持一致,如:ZHS16GBK,否則出現數據匯入匯出中文亂碼問題
  • 使環境變數立即生效
# source /home/oracle/.bash_profile 

通過MobaXterm上傳檔案

將Oracle兩個安裝包
linux.x64_11gR2_database_1of2.zip  
linux.x64_11gR2_database_2of2.zip
上傳至/usr/local/src/ 路徑中

解壓並對oracle使用者授權

  • 解壓檔案1和檔案2
# cd /usr/local/src/               #切換到檔案上傳路徑
# unzip linux.x64_11gR2_database_1of2.zip -d /opt/data
# unzip linux.x64_11gR2_database_2of2.zip -d /opt/data
  • 將此解壓路徑授權給oinstall組中oracle使用者
# chown -R oracle:oinstall /opt/data/database

安裝Oracle資料庫

以Oracle使用者登陸

  • 檢查database、oraInventory、oracle許可權是否為oinstall組和oracle使用者
[oracle@centos ~]$ cd /opt/data/
[oracle@centos data]$ ls -al
total 0
drwxr-xr-x  5 root   root      56 Sep  4 17:32 .
drwxr-xr-x. 4 root   root      32 Sep  4 17:31 ..
drwxr-xr-x  8 oracle oinstall 128 Sep  4 19:00 database
drwxr-xr-x  2 oracle oinstall   6 Sep  4 17:31 oraInventory
drwxr-xr-x  2 oracle oinstall   6 Sep  4 17:31 oracle
  • 測試:使用MobaXterm終端工具執行xclock程式(Win端彈出小時鐘)
# xclock

注:彈出小時鐘在繼續執行,如不彈出,使用MobaXterm直接以oracle使用者登陸(使用su - oracle 切換可能某些變數不生效會報錯導致無法彈出視窗)

  • 執行安裝命令
# cd /opt/data/database       #切換到安裝檔案路徑下
# ./runInstaller 

安裝完成之後執行指令碼

  • 執行一下兩個指令碼(根據自己配置的路徑調整)
#/opt/data/oraInventory/orainstRoot.sh
#/opt/data/oracle/product/11.2.0/db_1/root.sh

服務與監聽隨系統啟動

配置/etc/oratab

  • 以root身份登入到linux系統,編輯/etc/oratab檔案
    (如oratab檔案不存在,新增即可)
# vi /etc/oratab

orcl:/opt/data/oracle/product/11.2.0/db_1:N
改為
orcl:/opt/data/oracle/product/11.2.0/db_1:Y 

注:orcl為例項名/opt/data/oracle/product/11.2.0/db_1為安裝的$ORACLE_HOME,根據情況自行修改。

編輯dbstart和dbshut

  • 以oracle身份登入到linux系統,編輯dbstart檔案
$ vi $ORACLE_HOME/bin/dbstart

ORACLE_HOME_LISTNER=$1
改為
ORACLE_HOME_LISTNER=$ORACLE_HOME
  • 以oracle身份登入到linux系統,編輯dbshut檔案
$ vi $ORACLE_HOME/bin/dbshut

ORACLE_HOME_LISTNER=$1
改為
ORACLE_HOME_LISTNER=$ORACLE_HOME

配置 rc.local 檔案

  • 以root身份登入到linux系統,編輯/etc/rc.d/rc.local檔案,將dbstart命令寫入檔案
# vi /etc/rc.d/rc.local
------------將以下內容寫入檔案末尾--------------
su oracle -lc dbstart
  • 執行以下命令,對rc.local檔案授予執行許可權
# chmod +x /etc/rc.d/rc.local
  • 該檔案預設是沒有執行許可權的,檢視/etc/rc.d/rc.local檔案說明:
# cat /etc/rc.d/rc.local
-------------------------------------------------

#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
----------------------------------------------------
翻譯一下:
這個檔案是為了相容性的目的而新增的,
建議建立自己的systemd服務或udev規則來在開機引導時執行指令碼而不是使用這個檔案。 
與以前的版本引導時的並行執行相比較,這個指令碼將不會在其他所有的服務後執行。 
請記住,你必須執行“chmod +x /etc/rc.d/rc.local”來確保確保這個指令碼在引導時執行。

重啟並檢視監聽與服務

  • 以oracle使用者登入,並檢視監聽與服務狀態
$ lsnrctl status
$ ps -ef | grep ora