手把手教你在 Linux 環(huán)境下部署 Oracle 數(shù)據(jù)庫(kù)!
轉(zhuǎn)載請(qǐng)注明以下內(nèi)容:
來(lái)源:公眾號(hào)【杰哥的IT之旅】
作者:三笠
ID:Jake_Internet
相信大家第一次接觸 Oracle 數(shù)據(jù)庫(kù)時(shí),大多數(shù)是在 windows 環(huán)境下安裝,方便快捷,基本上可以說(shuō)是一直下一步就能順利安裝成功。然而企業(yè)級(jí)的數(shù)據(jù)庫(kù),基本上都是安裝在 Linux 服務(wù)器上,安全且高效。
沒(méi)接觸過(guò)在 Linux 環(huán)境下安裝 Oracle 數(shù)據(jù)庫(kù)的朋友也不用怕,跟著本篇文章一步步操作也能搭建成功。
下面我就來(lái)手把手教大家如何在 Linux 上部署 Oracle 數(shù)據(jù)庫(kù)。
一、前期準(zhǔn)備
1、虛擬機(jī)安裝
Windows 主機(jī)推薦虛擬機(jī):VMware Workstation
下載地址:
https://www.vmware.com/go/getworkstation-win
MacOS 主機(jī)推薦虛擬機(jī):Parallels Desktop 16 for Mac
下載地址:
https://www.parallels.cn/products/desktop/trial/
2、Oracle軟件安裝包
oracle 官網(wǎng)下載地址:
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
3、Linux系統(tǒng)安裝包
一般有三種Linux系統(tǒng)比較常用:RedHat 、 OracleLinux 、Centos 。
RedHat下載:
https://developers.redhat.com/products/rhel/download
OracleLinux下載:
https://yum.oracle.com/oracle-linux-isos.html
Centos下載:
https://vault.centos.org/
Linux系統(tǒng)安裝詳情可參考:
教你三步在 MacOS 上安裝 Linux 系統(tǒng):
https://blog.csdn.net/m0_50546016/article/details/117414290
Windows 主機(jī)如何玩轉(zhuǎn)虛擬機(jī) Linux 安裝:
https://blog.csdn.net/m0_50546016/article/details/117415206
4、Linux 遠(yuǎn)程連接工具
本文將使用 XShell 和 Xftp 工具;
通過(guò) RedHat Linux 7.6 版本安裝 Oracle 11GR2 版本數(shù)據(jù)庫(kù)。
主機(jī)內(nèi)存 2G,硬盤(pán) 50G 即可。
二、Linux主機(jī)配置
使用 XShell 工具連接 Linux 主機(jī) root 用戶:

1、主機(jī)名配置
如果安裝時(shí)沒(méi)有配置主機(jī)名,或者想要修改主機(jī)名,可以通過(guò)以下命令修改:
hostnamectl set-hostname orcl

2、網(wǎng)絡(luò)配置
如果安裝時(shí)沒(méi)有配置網(wǎng)絡(luò),或者想要修改網(wǎng)絡(luò),可以通過(guò)以下命令修改:
nmcli connection modify eth0 ipv4.addresses 10.211.55.188/24 ipv4.gateway 10.211.55.1 ipv4.method manual autoconnect yes
nmcli connection up eth0

3、配置Hosts文件
根據(jù)上面配置好的主機(jī)名和IP,配置hosts文件:
cat <<EOF >>/etc/hosts
##OracleBegin##
##Public IP
10.211.55.188 orcl
##OracleEnd##
EOF

4、防火墻配置
systemctl stop firewalld
systemctl disable firewalld

5、Selinux配置
selinux修改后需要重啟主機(jī)生效:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

6、ISO鏡像源配置
需要先掛載主機(jī)鏡像:
Parallels Desktop掛載Linux主機(jī)鏡像:

VMware Workstation掛載Linux鏡像:

mount /dev/cdrom /mnt
cat <<EOF>/etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
enabled=1
EOF

7、安裝Oracle依賴(lài)包
如下依賴(lài)包從Oracle官方文檔推薦獲取:
yum install -y bc \
binutils \
compat-libcap1 \
compat-libstdc++-33 \
gcc \
gcc-c++ \
elfutils-libelf \
elfutils-libelf-devel \
glibc \
glibc-devel \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
libxcb \
libX11 \
libXau \
libXi \
libXtst \
libXrender \
libXrender-devel \
make \
net-tools \
nfs-utils \
smartmontools \
sysstat \
e2fsprogs \
e2fsprogs-libs \
fontconfig-devel \
expect \
unzip \
openssh-clients \
readline* \
psmisc --skip-broken
檢查是否安裝成功:
rpm -q bc binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ elfutils-libelf elfutils-libelf-devel glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libxcb libX11 libXau libXi libXtst libXrender libXrender-devel make net-tools nfs-utils smartmontools sysstat e2fsprogs e2fsprogs-libs fontconfig-devel expect unzip openssh-clients readline

Linux7需要手動(dòng)安裝compat-libstdc++依賴(lài)包:
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

8、配置ZeroConf
##關(guān)閉Zeroconf service的服務(wù)守護(hù)進(jìn)程
systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon.service
systemctl disable avahi-daemon.service
systemctl disable avahi-daemon.socket
##關(guān)閉NOZEROCONF
cat <<EOF >>/etc/sysconfig/network
#OracleBegin
NOZEROCONF=yes
#OracleEnd
EOF

9、關(guān)閉透明大頁(yè)和numa
sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg

10、配置系統(tǒng)參數(shù)文件
##計(jì)算shmall和shmmax值
memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
totalMemory=$((memTotal / 2048))
shmall=$((memTotal / 4))
if [ $shmall -lt 2097152 ]; then
shmall=2097152
fi
shmmax=$((memTotal * 1024 - 1))
if [ "$shmmax" -lt 4294967295 ]; then
shmmax=4294967295
fi
echo $shmall
echo $shmmax
##配置系統(tǒng)參數(shù)
cat <<EOF >>/etc/sysctl.conf
#OracleBegin
##shmmal's Calculation formula: physical memory 8G:(8*1024*1024*1024)/4096=2097152
##shmmax's Calculation formula: physical memory 8G:(8/2)*1024*1024*1024 -1=4294967295
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = $shmall
kernel.shmmax = $shmmax
kernel.shmmni = 4096
kernel.sem = 250 32000 100 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
EOF
##系統(tǒng)參數(shù)生效
sysctl -p


11、配置系統(tǒng)資源限制
cat <<EOF >>/etc/security/limits.conf
#OracleBegin
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle hard memlock 134217728
oracle soft memlock 134217728
#OracleEnd
EOF
cat <<EOF >>/etc/pam.d/login
#OracleBegin
session required pam_limits.so
session required /lib64/security/pam_limits.so
#OracleEnd
EOF


12、創(chuàng)建用戶和組
/usr/sbin/groupadd -g 54321 oinstall
/usr/sbin/groupadd -g 54322 dba
/usr/sbin/groupadd -g 54323 oper
/usr/sbin/useradd -u 54321 -g oinstall -G dba,oper oracle
echo oracle | passwd --stdin oracle

13、創(chuàng)建Oracle安裝目錄
mkdir -p /u01/app/oracle/product/11.2.0/db
mkdir -p /u01/app/oraInventory
mkdir -p /oradata
chown -R oracle:oinstall /oradata
chown -R oracle:oinstall /u01/app
chmod -R 775 /u01/app

14、配置用戶環(huán)境變量
cat <<EOF >>/home/oracle/.bash_profile
################OracleBegin#########################
umask 022
export TMP=/tmp
export TMPDIR=\$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db
export ORACLE_HOSTNAME=orcl
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=orcl
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
alias sas='sqlplus / as sysdba'
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
EOF

三、Oracle軟件安裝
1、Oracle軟件包上傳
[root@orcl soft]# ll
-rw-r--r--. 1 root root 1395582860 May 31 16:56 p13390677_112040_Linux-x86-64_1of7.zip
-rw-r--r--. 1 root root 1151304589 May 31 16:56 p13390677_112040_Linux-x86-64_2of7.zip

2、解壓Oracle軟件安裝包
需要按順序解壓1,2安裝包:
cd /soft
unzip -q p13390677_112040_Linux-x86-64_1of7.zip
unzip -q p13390677_112040_Linux-x86-64_2of7.zip
##授權(quán)/soft給oracle讀寫(xiě)權(quán)限
chown -R oracle:oinstall /soft

3、安裝VNC軟件
yum install -y tigervnc*
su - oracle
vncserver
##輸入密碼

4、連接VNC遠(yuǎn)程工具或者直接打開(kāi)虛擬機(jī)圖形化界面

右鍵打開(kāi)終端工具:

進(jìn)入/soft/database開(kāi)始安裝Oracle軟件:
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0










上傳pdksh-5.2.14-37.el5.x86_64.rpm依賴(lài)包,安裝:
rpm -e ksh-20120801-142.el7.x86_64
rpm -ivh pdksh-5.2.14-37.el5.x86_64.rpm

點(diǎn)擊再次檢查,忽略swap警告:




解決方案:
su - oracle
sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk
執(zhí)行完點(diǎn)擊retry重試:


root用戶下執(zhí)行腳本:
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/db/root.sh



reboot重啟主機(jī)。
四、創(chuàng)建數(shù)據(jù)庫(kù)
1、打開(kāi)監(jiān)聽(tīng)
su - oracle
lsnrctl start
lsnrctl status

2、連接VNC遠(yuǎn)程工具或者直接打開(kāi)虛擬機(jī)圖形化界面
dbca




這里填寫(xiě)數(shù)據(jù)庫(kù)實(shí)例名稱(chēng)和dbname,本次填寫(xiě)orcl。

不安裝EM工具。

這里輸入SYS和SYSTEM用戶的密碼,需要記住。

這里選擇前面建好的/oradata目錄用來(lái)存放數(shù)據(jù)文件。

不開(kāi)啟閃回日志,不開(kāi)啟歸檔日志,可以建好庫(kù)之后再手動(dòng)修改。


數(shù)據(jù)庫(kù)內(nèi)存分配,選擇手動(dòng)分配,占用物理內(nèi)存70%左右。

block_size根據(jù)實(shí)際情況選擇,一旦建庫(kù)無(wú)法修改,默認(rèn)8K。

字符集根據(jù)需要進(jìn)行選擇,默認(rèn)AL32UTF8。




等待建庫(kù)完成即可。

五、連接數(shù)據(jù)庫(kù)
確保監(jiān)聽(tīng)正常啟動(dòng),并監(jiān)聽(tīng)數(shù)據(jù)庫(kù)

1、通過(guò)數(shù)據(jù)庫(kù)主機(jī)連接
su - oracle
sqlplus / as sysdba
select sysdate from dual;
##創(chuàng)建數(shù)據(jù)庫(kù)用戶
create user test identified by test;
grant dba to test;
conn test/test
##創(chuàng)建表
create table test (id number not null,name varchar2(100));
insert into test values (1,'lucifer');
commit;
2、通過(guò)PL/SQL連接test用戶


最后
本文是讀者:三笠在 CSDN 平臺(tái)創(chuàng)作的一篇文章,寫(xiě)的非常詳細(xì),歡迎大家關(guān)注。
博客地址:https://blog.csdn.net/m0_50546016(點(diǎn)擊文末左側(cè)的閱讀原文可直達(dá),或 PC 端訪問(wèn))
原創(chuàng)不易,如果你覺(jué)得這篇文章對(duì)你有點(diǎn)用的話,麻煩你為本文點(diǎn)個(gè)贊、在看、留言或轉(zhuǎn)發(fā)一下,因?yàn)檫@將是我輸出更多優(yōu)質(zhì)文章的動(dòng)力,感謝!我們下期再見(jiàn)!
推薦閱讀
Oracle數(shù)據(jù)庫(kù)環(huán)境搭建
杰哥的另一個(gè)公眾號(hào),主要分享關(guān)于個(gè)人成長(zhǎng)經(jīng)歷的那點(diǎn)事,歡迎您的關(guān)注。

