在最新版proxmox VE 6 部署oracle 19C(單實例)

作者:田逸([email protected]

基本條件準備

  • 準備虛擬機,基本配置爲:16G內存、4core cpu、4個磁盤(1個系統盤、一個/tmp分區、一個數據分區、一個交換分區swap)。

 001.jpg


  • 準備操作系統,並使磁盤可用。

 002.jpg

建議正式環境爲用戶數據存儲提供獨立的磁盤或者分區。

  • 從oracle官方網站下載oracle 19c,文件名爲  LINUX.X64_193000_db_home.zip。用unzip 對其進行解壓,備用。

[root@centos100 home]# unzip LINUX.X64_193000_db_home.zip  -d /home/oracle19c

[root@centos100 home]# unzip LINUX.X64_193000_db_home.zip  -d /home/oracle19c

 003.jpg

  • 準備安裝環境,包括安裝oracle所必需的依賴庫、所需的用戶及組、系統參數等修改。因爲是單實例部署,因此未創建其它更多的用戶。又由於步驟繁瑣,爲避免人爲手工輸入出錯,提高效率,我寫了個腳本(centos 7,redhat EL 7),參照了官方的文檔,照搬運行即可!

[root@centos100 ~]# more preinstall.sh 
#!/bin/bash
#writen by sery(wx:formyz),2019-7-18

#install dependency package
yum install -y \
bc \
binutils \
compat-libcap1 \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
fontconfig-devel \
glibc \
glibc-devel \
kmod \
kmod-libs \
gcc-c++ \
ksh \
libaio \
libaio-devel \
libX11 \
libXau \
libXi \
libXtst \
libXrender \
libXrender-devel \
libgcc \
librdmacm-devel \
libstdc++ \
libstdc++-devel \
libxcb \
make \
net-tools \
nfs-utils \
python \
python-configshell \
python-rtslib \
python-six \
targetcli \
smartmontools \
sysstat \
tigervnc-server

#install xwindow
yum groupinstall –y "X Window System"
yum groupinstall -y "GNOME Desktop" "Graphical Administration Tools"

#modify system parameter
cat << EOF > /etc/sysctl.d/98-oracle-kernel.conf
vm.swappiness = 1
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
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 = 1048576
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 8589934590 
kernel.shmall = 2147483648
kernel.shmmni = 4096
EOF
sysctl -p /etc/sysctl.d/98-oracle-kernel.conf

cat << EOF > /etc/security/limits.d/99-oracle-limits.conf
oracle soft nproc 2047

oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
EOF

#create groups and user
groupadd -g 1000 oinstall
groupadd -g 1001 dba
useradd -g oinstall -G dba oracle
echo "sery888"|passwd --stdin oracle

#create directory
mkdir -p /u01/app/oracle/product/19.3/db_01
chown -R oracle.oinstall /u01
chmod -R 755 /u01

[root@centos100 ~]# more preinstall.sh 

#!/bin/bash

#writen by sery(wx:formyz),2019-7-18


#install dependency package

yum install -y \

bc \

binutils \

compat-libcap1 \

compat-libstdc++-33 \

elfutils-libelf \

elfutils-libelf-devel \

fontconfig-devel \

glibc \

glibc-devel \

kmod \

kmod-libs \

gcc-c++ \

ksh \

libaio \

libaio-devel \

libX11 \

libXau \

libXi \

libXtst \

libXrender \

libXrender-devel \

libgcc \

librdmacm-devel \

libstdc++ \

libstdc++-devel \

libxcb \

make \

net-tools \

nfs-utils \

python \

python-configshell \

python-rtslib \

python-six \

targetcli \

smartmontools \

sysstat \

tigervnc-server


#install xwindow

yum groupinstall –y "X Window System"

yum groupinstall  -y "GNOME Desktop" "Graphical Administration Tools"


#modify system parameter

cat << EOF > /etc/sysctl.d/98-oracle-kernel.conf

vm.swappiness = 1

vm.dirty_background_ratio = 3

vm.dirty_ratio = 80

vm.dirty_expire_centisecs = 500

vm.dirty_writeback_centisecs = 100

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 = 1048576

kernel.msgmnb = 65536

kernel.msgmax = 65536

kernel.shmmax = 8589934590 

kernel.shmall = 2147483648

kernel.shmmni = 4096

EOF

sysctl -p /etc/sysctl.d/98-oracle-kernel.conf


cat << EOF > /etc/security/limits.d/99-oracle-limits.conf

oracle soft nproc 2047


oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

oracle soft stack 10240

oracle hard stack 32768

EOF


#create groups and user

groupadd -g 1000 oinstall

groupadd -g 1001 dba

useradd -g oinstall -G dba oracle

echo "sery888"|passwd --stdin oracle


#create directory

mkdir -p /u01/app/oracle/product/19.3/db_01

chown -R oracle.oinstall /u01

chmod -R 755 /u01

此腳本執行完以後,再對oracle帳號設置環境變量。切換到用戶oracle,然後編輯文件/home/oracle/.bash_profile。增加其內容爲:

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3/db_01
export PATH=$ORACLE_HOME/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export ORACLE_SID=serydb

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/19.3/db_01

export PATH=$ORACLE_HOME/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

export ORACLE_SID=serydb


執行source .bash_profile 使其生效。


如果是隔離環境,不能連接互聯網進行安裝的話,需要掛載操作系統iso鏡像文件,手動創建yum源。


  • 啓動vncserver服務,初次啓動需要設置密碼。如果是root啓動的話,可以設置成系統root帳號相一致的密碼。在客戶端進行連接時,如果出現藍屏(與windows藍屏不可同日而語,僅僅是桌面上沒有圖標而已),需要檢查桌面環境是否安裝完整,特別是gnome及圖形管理工具。

從windows的vnc客戶端vnc viewer連接時,需要指定ip地址及帶冒號的數字,這個數字在vncserver啓動時,會有輸出,不要想當然或者從網上拷貝下來隨意亂輸一通。

 004.jpg

啓動的數字是1,那麼連接的時候,也要與之相一致。

 005.jpg

輸入密碼,如果正確,則出現遠程圖形界面,如果忘記密碼或者密碼錯誤,可用vncpass進行重新設定。

 006.jpg


遠程圖形方式進行安裝


一、爲安裝目錄賦予權限

Oracle的安裝,使用的是普通帳號oracle,爲了避免權限問題影響安裝,需要把解壓出來的目錄賦予執行權限,具體操作就是改變目錄屬主(組)及給予讀寫權限。

-bash-4.2# chown -R oracle:oinstall /home/oracle19c/
-bash-4.2# chmod -R 755 /home/oracle19c/
-bash-4.2# mv /home/oracle19c/*  /u01/app/oracle/product/19.3/db_01

-bash-4.2# chown -R oracle:oinstall /home/oracle19c/

-bash-4.2# chmod -R 755 /home/oracle19c/

-bash-4.2# mv /home/oracle19c/*  /u01/app/oracle/product/19.3/db_01

儘可能把解壓後的目錄複製到設定好的ORACLE_HOME下,因爲在安裝過程中,只能指定ORACLE_BASE。到這一步,我才明白爲啥壓縮包的名字是“LINUX.X64_193000_db_home”。


二、設置變量DISPLAY

爲了是描述更加清晰準備,我分兩個步驟來描述。

(一)以vnc客戶端登錄系統,右鍵調出終端,然後以root帳號執行指令 xhost + 。

 007.jpg

(二)再開一個終端,切換到oracle帳號,執行指令“export DISPLAY=:1”,此數字1來自vncserver啓動時的輸出,不要照網上別人的文章亂複製一通,否則下一步執行安裝進行不下去。

 008.jpg


三、開始安裝


(一)運行安裝腳本

進入oracle安裝腳本所在的目錄,執行“sh runInstaller”。

 009.jpg

如果一切正常,就會彈出安裝界面,如下圖所示:

 030.jpg


(二)安裝過程中的設置。

1、選擇只安裝軟件(安裝完軟件,並且監聽器正常以後,再創建數據庫)。

 011.jpg

2、選擇單實例(有時間了再搞oracle rac)。

 012.jpg

3、選企業版(本人在以前來沒選過標準版)。

 013.jpg

4、選擇oracle 基礎目錄,默認目錄可能與我開始的規劃目錄有差異,改正它。

 014.jpg

5、選定清單目錄。

 015.jpg

6、選定屬組。單實例默認就行。

 016.jpg

7、Root腳本自動執行配置,可以把它選上,並輸入系統root的密碼。這樣做的好處,是不用像以前的版本,執行過程中,需要單獨切換到終端,以root帳號執行兩個腳本。這個簡化,能提高一點效率。

 017.jpg

8、必要條件檢查,包括內存、依賴包、內核參數等等等等一大堆。看到不少文檔,通不過就跳過了之。還是建議多點耐心,以全部滿足條件爲妙!

 018.jpg

9、第九步爲信息彙總,可以大概瞭解一下。

 019.jpg

確認沒有需要修改的項目後,點擊按鈕“Install”進行下一步。

10、執行文件複製、鏈接等操作。這個過程耗費時間比較長,可以暫時休息一會。

 020.jpg

在進度條進行到大概63%的時候,彈出確認一個確認的界面,通過閱讀上面的文字,即可知道是怎麼一回事情,直接選yes就完事(前邊提到過)。

 022.jpg

11、軟件安裝完成, 

 021.jpg


配置網絡監聽器


繼續在上述終端執行指令 netca ,如果彈不出圖形界面,則需要再設置DISPLAY。

 023.jpg

接下來點若干個“Next”,最後一步點完成。

 024.jpg

一創建好監聽器,它就自動起來了,通過指令 lsnrctl status 瞭解其運行狀態:

[oracle@centos100 db_01]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 19-JUL-2019 04:31:03

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=centos100)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                19-JUL-2019 04:22:25
Uptime                    0 days 0 hr. 8 min. 45 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/19.3/db_01/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/centos100/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=centos100)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully


創建數據庫


1、終端任意路徑執行指令dbca,彈出配置助手窗口。

 025.jpg

2、選擇典型配置,不選擇容器數據庫(暫時不熟悉這個)。

 026.jpg

3、配置彙總。可拉滾動條,查看一下大概有哪些設置。

 027.jpg

4、確認沒什麼不妥以後,點“Finish”按鈕。接下來,耐心等待。

 028.jpg

5、進度到40%左右的時候,通過詳細按鈕“detail”可知oracle實例已經開始啓動。

 029.jpg

登錄驗證,看實例是否已經正常。

[oracle@centos100 db_01]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Jul 19 04:51:19 2019
Version 19.3.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> select count(*) from v$session;

  COUNT(*)
----------
        49

[oracle@centos100 db_01]$ sqlplus / as sysdba


SQL*Plus: Release 19.0.0.0.0 - Production on Fri Jul 19 04:51:19 2019

Version 19.3.0.0.0


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



Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.3.0.0.0


SQL> select count(*) from v$session;


  COUNT(*)

----------

        49


生產環境後續工作

如果是用於生產環境,再創建完數據庫以後,還需要多系統表空間、臨時表空間、redo日誌組、密碼過期時間等等進行調整。


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