基於CentOS7系統安裝Oracle11gR2伺服器企業版
阿新 • • 發佈:2019-01-01
基礎準備
環境準備
- 系統: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
安裝前準備
組和使用者
- 新建oinstall和dba組 官網參考
# 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