做者:田逸(sery@163.com)
python
基本條件準備c++
sql
準備虛擬機,基本配置爲:16G內存、4core cpu、4個磁盤(1個系統盤、一個/tmp分區、一個數據分區、一個交換分區swap)。shell
準備操做系統,並使磁盤可用。數據庫
建議正式環境爲用戶數據存儲提供獨立的磁盤或者分區。windows
centos
從oracle官方網站下載oracle 19c,文件名爲 LINUX.X64_193000_db_home.zip。用unzip 對其進行解壓,備用。bash
[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網絡
準備安裝環境,包括安裝oracle所必需的依賴庫、所需的用戶及組、系統參數等修改。由於是單實例部署,所以未建立其它更多的用戶。又因爲步驟繁瑣,爲避免人爲手工輸入出錯,提升效率,我寫了個腳本(centos 7,redhat EL 7),參照了官方的文檔,照搬運行便可!session
[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啓動時,會有輸出,不要想固然或者從網上拷貝下來隨意亂輸一通。
啓動的數字是1,那麼鏈接的時候,也要與之相一致。
輸入密碼,若是正確,則出現遠程圖形界面,若是忘記密碼或者密碼錯誤,可用vncpass進行從新設定。
遠程圖形方式進行安裝
1、爲安裝目錄賦予權限
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」。
2、設置變量DISPLAY
爲了是描述更加清晰準備,我分兩個步驟來描述。
(一)以vnc客戶端登陸系統,右鍵調出終端,而後以root賬號執行指令 xhost + 。
(二)再開一個終端,切換到oracle賬號,執行指令「export DISPLAY=:1」,此數字1來自vncserver啓動時的輸出,不要照網上別人的文章亂複製一通,不然下一步執行安裝進行不下去。
3、開始安裝
(一)運行安裝腳本
進入oracle安裝腳本所在的目錄,執行「sh runInstaller」。
若是一切正常,就會彈出安裝界面,以下圖所示:
(二)安裝過程當中的設置。
一、選擇只安裝軟件(安裝完軟件,而且監聽器正常之後,再建立數據庫)。
二、選擇單實例(有時間了再搞oracle rac)。
三、選企業版(本人在之前來沒選過標準版)。
四、選擇oracle 基礎目錄,默認目錄可能與我開始的規劃目錄有差別,改正它。
五、選定清單目錄。
六、選定屬組。單實例默認就行。
七、Root腳本自動執行配置,能夠把它選上,並輸入系統root的密碼。這樣作的好處,是不用像之前的版本,執行過程當中,須要單獨切換到終端,以root賬號執行兩個腳本。這個簡化,能提升一點效率。
八、必要條件檢查,包括內存、依賴包、內核參數等等等等一大堆。看到很多文檔,通不過就跳過了之。仍是建議多點耐心,以所有知足條件爲妙!
九、第九步爲信息彙總,能夠大概瞭解一下。
確認沒有須要修改的項目後,點擊按鈕「Install」進行下一步。
十、執行文件複製、連接等操做。這個過程耗費時間比較長,能夠暫時休息一會。
在進度條進行到大概63%的時候,彈出確認一個確認的界面,經過閱讀上面的文字,便可知道是怎麼一回事情,直接選yes就完事(前邊提到過)。
十一、軟件安裝完成,
配置網絡監聽器
繼續在上述終端執行指令 netca ,若是彈不出圖形界面,則須要再設置DISPLAY。
接下來點若干個「Next」,最後一步點完成。
一建立好監聽器,它就自動起來了,經過指令 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
建立數據庫
一、終端任意路徑執行指令dbca,彈出配置助手窗口。
二、選擇典型配置,不選擇容器數據庫(暫時不熟悉這個)。
三、配置彙總。可拉滾動條,查看一下大概有哪些設置。
四、確認沒什麼不妥之後,點「Finish」按鈕。接下來,耐心等待。
五、進度到40%左右的時候,經過詳細按鈕「detail」可知oracle實例已經開始啓動。
登陸驗證,看實例是否已經正常。
[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日誌組、密碼過時時間等等進行調整。