CentOS7安裝Oracle11gR2


一、安裝CentOS-7_x86_64

1、CentOS7:帶GUI的服務器(FTP服務器、JAVA平台、兼容性程序庫、開發工具、安全性工具、系統管理工具);

2、安裝位置:

  /  /boot  swap(建2個,每個物理內存大小)  /oracle  /data

3、系統升級:

[root@IT202 /]# yum -y update
[root@IT202 /]# yum -y upgrade

4、修改/dev/shm的大小(size的值物理內存80%):

[root@IT202 etc]# vi /etc/fstab
tmpfs /dev/shm                                        tmpfs   defaults,size=51G           0 0

修改/etc/fstab后,重新mount /dev/shm

[root@IT202 etc]# umount /dev/shm
[root@IT202 etc]# mount /dev/shm
[root@IT202 etc]# df -hl

 

二、安裝Oracle前准備:

1、創建運行oracle數據庫的系統用戶和用戶組:

# 創建用戶組oinstall
[root@IT202 /]# groupadd oinstall
 
# 創建用戶組dba
[root@IT202 /]# groupadd dba

# 創建oracle用戶,並加入到oinstall和dba用戶組
[root@IT202 /]# useradd -g oinstall -g dba -m oracle

# 設置用戶oracle的登陸密碼
[root@IT202 /]# passwd oracle

# 查看新建的oracle用戶
[root@IT202 /]# id oracle
uid=1002(oracle) gid=1003(dba) groups=1003(dba)

2、修改操作系統核心參數:

1)、修改OS系統標識:

# 備份源文件
[root@IT202 etc]# cp /etc/redhat-release /etc/redhat-release-bak

[root@IT202 etc]# vi /etc/redhat-release
redhat-7

 2)、修改用戶的SHELL的限制,修改/etc/security/limits.conf文件:

# 備份源文件
[root@IT202 security]# cp /etc/security/limits.conf /etc/security/limits.conf-bak

[root@IT202 security]# vi /etc/security/limits.conf
oracle           soft    nproc           2047
oracle           hard    nproc           16384
oracle           soft    nofile          1024
oracle           hard    nofile          65536

3)、修改/etc/pam.d/login 文件:

# 備份源文件
[root@IT202 pam.d]# cp /etc/pam.d/login /etc/pam.d/login-bak

[root@IT202 pam.d]# vi /etc/pam.d/login
session    required     /lib/security/pam_limits.so
session    required     pam_limits.so

4)、修改linux內核,修改/etc/sysctl.conf文件:

# shmall=是全部允許使用的共享內存大小,shmmax 是單個段允許使用的大小。這兩個可以設置為內存的 70%。

# 例如 64G 內存,64*1024*1024*1024*70% = 48103633715,shmall 的大小為 48103633715/4k(getconf PAGESIZE可得到) = 11744051

# kernel.sem

  kernel.sem是指 semmsl,semmns,semopm,semmni這4個參數 

  semmsl 指每個線號集的最大信號數,Oracle建議是設置為oracle的最大進程數+10

  semmni 指整個系統的信號集的最大數量

  semmns 指整個系統的信號總數,也就是semmni*semmsl的結果

  semopm 指每個semop系統調用可以執行的信號操作的最大數量

  oracle默認設置

  semmsl=250

  semmns=3200

  semopm=100

  semmni=128

  即kernel.sem= 250 3200 100 128

  例:在oracle ora.init文件參數中設置PROCESSES參數為5000

  則semmsl=5010,semmni=128,semmns=semmsl* semmni=641280

  另外semopm建議設置等於semmsl值即5010

  那么kernel.sem=5010 641280 5010 128

# 備份源文件
[root@IT202 etc]# cp /etc/sysctl.conf /etc/sysctl.conf-bak

[root@IT202 etc]# vi /etc/sysctl.conf

net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536

kernel.shmmax = 48103633715
kernel.shmall = 11744051

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 5010 641280 5010 128
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 = 1048576

#redis
vm.overcommit_memory = 1
net.core.somaxconn = 1024

 【使 /etc/sysctl.conf 更改立即生效】

[root@IT202 etc]# sysctl -p

5)、編輯 /etc/profile:

# 備份源文件
[root@IT202 etc]# cp /etc/profile /etc/profile-bak


[root@IT202 etc]# vi /etc/profile
if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
    else
        ulimit -u 16384 -n 65536
    fi
fi
生效/etc/profile
[root@IT202 etc]# source /etc/profile

 6)、創建數據庫軟件目錄和數據文件存放目錄:

# oracle數據庫配置文件目錄
[root@IT202 /]# mkdir -p /oracle/oraInventory

# oracle數據庫軟件包解壓目錄
[root@IT202 /]# mkdir -p /data/database

# 設置目錄所有者為oinstall用戶組的oracle用戶
[root@IT202 /]# chown -R oracle:oinstall /oracle
[root@IT202 /]# chown -R oracle:oinstall /data

# 生成數據DBF環境
[root@IT202 database]# mkdir -p /data/oradata/ora11g
[root@IT202 /]# chown -R oracle:oinstall /data
[root@IT202 /]# chmod 777 -R /data

7)、配置oracle用戶的環境變量:

[root@IT202 /]# su - oracle
[oracle@IT202 ~]$ vi .bash_profile

# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin:/bin:/sbin

export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=ora11g
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.ZHS16CGB231280

8)、配置firewall作為防火牆:

【防火牆打開Oracle監聽器的默認端口1521、EM的默認端口1158】

[root@IT202 /]# firewall-cmd --zone=public --add-port=1521/tcp --permanent
[root@IT202 /]# firewall-cmd --zone=public --add-port=1158/tcp --permanent
[root@IT202 /]# firewall-cmd --reload

# 查看所有打開的端口
[root@IT202 /]# firewall-cmd --zone=public --list-ports
1521/tcp 1158/tcp

 9)、安裝oracle數據庫所需要的軟件包

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

10)、將安裝包移動到/data/database路徑下   (以oracle用戶把2個安裝zip文件FTP到/home/oracle目錄下)

[oracle@IT202 oracle]$ cp /home/oracle/linux.x64_11gR2_database_*.zip /data/database

# 解壓
[oracle@IT202 database]$ unzip /data/database/linux.x64_11gR2_database_1of2.zip
[oracle@IT202 database]$ unzip /data/database/linux.x64_11gR2_database_2of2.zip

#進入管理員權限,設置目錄所有者為oinstall用戶組的oracle用戶,執行安裝腳本
[root@IT202 /]# chown -R oracle:oinstall /data/database/database/

 

三、安裝Oracle11gR2:

1)、以oracle用戶登錄系統,安裝Oracle11gR2軟件:

[oracle@IT202 ~]$ LANG=en
[oracle@IT202 database]$ cd /data/database/database
[oracle@IT202 database]$ ./runInstaller
1、==++Configure Security Updates++==
去掉 I wish to receive security updates via My Oracle Support.
點擊 "Next >"

2、==++Installation Option++==
選擇第二項 Install database software only
點擊 "Next >"

3、==++Grid Options++==
選擇單例模式 Single instance database installation
點擊 "Next >"

4、==++Product Languages++==
選擇添加簡體中文
點擊 "Next >"

5、==++Database Edition++==
選擇Enterprise Edition
點擊 "Next >"


6、==++Installation Location++==
確定數據軟件的安裝路徑,自動讀取前面Oracle環境變量中配置的值
點擊 "Next >",
之后也是選擇默認,不做修改,直接點擊"Next >"

7、==++Create Inventory++==
/oracle/oraInventory
點擊"Next >"

8、==++Prerequisite Checks++==
勾上右上角的“ignore all”。單擊“next”,再單擊“finish”開始安裝。
安裝過程中連接庫時,會出現兩個錯誤:(84%)
1)ins_ctx.mk編譯錯誤:  
修改/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk,
將ctxhx: $(CTXHXOBJ)
       $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
修改為:
ctxhx: $(CTXHXOBJ)
       -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/libc.a
點擊Retry繼續安裝。
2)”Error in invoking target 'agent nmhs' of makefile '/data/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk.' 
解決方法:在makefile中添加鏈接libnnz11庫的參數
修改/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk,
將$(MK_EMAGENT_NMECTL)
修改為:$(MK_EMAGENT_NMECTL) -lnnz11
點擊Retry繼續安裝。

9、最后等進度在100%的時候,按照里面的提示以root權限進入提示的地址,運行上面提示的兩個sh文件。
[root@IT202 oraInventory]# cd /oracle/oraInventory
[root@IT202 oraInventory]# ./orainstRoot.sh

[root@IT202 db_1]# cd /oracle/product/11.2.0/db_1
[root@IT202 db_1]# ./root.sh

2)、配置網絡監聽器:

[oracle@IT202 bin]$ cd /oracle/product/11.2.0/db_1/bin
[oracle@IT202 bin]$ ./netca

#啟動監聽器:
[oracle@IT203 bin]$ lsnrctl start

 3)、手工安裝數據庫:

[oracle@IT202 bin]$ cd /oracle/product/11.2.0/db_1/bin
[oracle@IT202 bin]$ ./dbca
1)Create a Database
2)Custom Database
3)SID= ora11g
4)Memory Size 70%
5) Processes = 5000
6) Database Character Set: ZHS16CGB231280
7) USERS表空間為128M;SYSTEM表空間為2G,SYSAUX表空間為4G;
8)redo log一般設置3-5組,每組2個成員,每個成員大小可以從100M到1G,建議為200M。

 4)、Oracle11g設置開機自啟動【root】:

【編輯/etc/oratab文件】

[root@IT202 etc]# vi /etc/oratab
ora11g:/oracle/product/11.2.0/db_1:Y

【配置/etc/rc.d/rc.local】

[root@IT202 rc.d]# vi /etc/rc.d/rc.local
# add oracle start
su oracle -lc "/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su oracle -lc /oracle/product/11.2.0/db_1/bin/dbstart
# add end

【在/etc/init.d/下創建Oracle服務啟動腳本】

[root@IT202 init.d]# vi /etc/init.d/oracle

#!/bin/sh
# chkconfig: 345 61 61
# description: Oracle 11g R2 AutoRun Servimces
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface

export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=ora11g
export PATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="oracle"

# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
case "$1" in
start)
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
su $ORA_OWNR -lc "$ORACLE_HOME/bin/emctl start dbconsole"
echo "Oracle Start Succesful!OK."
;;
stop)
su $ORA_OWNR -lc "$ORACLE_HOME/bin/emctl stop dbconsole"
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
echo "Oracle Stop Succesful!OK."
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo $"Usage: `basename $0` {start|stop|reload|reload}"
exit 1
esac
exit 0

【將oracle腳本文件賦予執行權限】

[root@IT202 init.d]# chmod 755 /etc/init.d/oracle

【配置Oracle監聽開機自啟動服務】

# 修改dbstart和dbshut啟動、關閉腳本,使其啟動數據庫的同時也自動啟動監聽器(即啟動數據庫時啟動監聽器,停止數據庫時停止監聽器):

# 備份源文件
[oracle@IT202 bin]$ cp /oracle/product/11.2.0/db_1/bin/dbstart /oracle/product/11.2.0/db_1/bin/dbstart-bak
[oracle@IT202 bin]$ cp /oracle/product/11.2.0/db_1/bin/dbshut /oracle/product/11.2.0/db_1/bin/dbshut-bak
[oracle@IT202 bin]$ vi /oracle/product/11.2.0/db_1/bin/dbstart 
# 修改為
ORACLE_HOME_LISTNER
=$ORACLE_HOME

[oracle@IT202 bin]$ vi /oracle/product/11.2.0/db_1/bin/dbshut
# 修改為
ORACLE_HOME_LISTNER=$ORACLE_HOME

【加入自動啟動服務】

[root@IT202 /]# ln -s /etc/rc.d/init.d/oracle /etc/rc2.d/S61oracle
[root@IT202 /]# ln -s /etc/rc.d/init.d/oracle /etc/rc3.d/S61oracle
[root@IT202 /]# ln -s /etc/rc.d/init.d/oracle /etc/rc4.d/S61oracle
[root@IT202 /]# ln -s /etc/rc.d/init.d/oracle /etc/rc0.d/K61oracle
[root@IT202 /]# ln -s /etc/rc.d/init.d/oracle /etc/rc6.d/K61oracle

【將 oracle服務加入到系統服務】

[root@IT202 /]# chkconfig --level 234 oracle on
[root@IT202 /]# chkconfig --add oracle

# 檢查 oracle服務是否已經生效
[root@IT202 /]# chkconfig --list  oracle
oracle             0:關    1:關    2:開    3:開    4:開    5:開    6:關

 四、CentOS7添加靜態路由:

 【添加永久路由】

[root@IT202 /]# cd /etc/sysconfig/network-scripts/

# 獲取網路接口名稱
[root@IT202 network-scripts]# netstat -r
Destination     Gateway         Genmask         Flags     MSS Window   irtt Iface
default         gateway         0.0.0.0         UG        0   0        0    enp4s0f0

【編輯或新建/etc/sysconfig/network-scripts/route-interface文件】

[root@IT202 network-scripts]# vi /etc/sysconfig/network-scripts/route-enp4s0f0

10.76.0.0/16 via 192.168.18.4 dev enp4s0f0
10.78.0.0/16 via 192.168.18.4 dev enp4s0f0
10.80.0.0/16 via 192.168.18.4 dev enp4s0f0

 五、CentOS7安裝rlwrap:

sqlplus環境里使用上下左右箭頭和刪除鍵

【查看系統是否安裝了readline】

[root@IT202 /]# rpm -qa|grep readline
readline-devel-6.2-10.el7.x86_64
readline-6.2-10.el7.x86_64

[root@IT202 /]# yum install readline-devel
[root@IT202 /]# yum install readline

【FTP軟件】

[root@IT202]# cp rlwrap-0.42.tar.gz /usr/local

【解壓&安裝】

[root@IT205 local]# unzip rlwrap-0.42.tar.zip
[root@IT202 local]# tar -zxvf rlwrap-0.42.tar.gz
[root@IT202 local]# cd rlwrap-0.42
[root@IT202 rlwrap-0.42]# ./configure && make && make install
[root@IT202 rlwrap-0.42]# which rlwrap
/usr/local/bin/rlwrap

【配置環境】

# 用戶.bash_profile 添加以下內容

 [oracle@IT203 ~]$ vi .bash_profile

stty erase ^h
alias sqlplus="rlwrap sqlplus"
alias rman="rlwrap rmain"

編輯/bin/sql文件

[root@IT203 bin]# vi /bin/sql
rlwrap sqlplus system/system

[root@IT203 bin]# chmod 755 /bin/sql

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM