在家想測試 Oracle,手邊沒有活體做實驗心癢難耐,來裝個 XE 版玩玩好了。

Oracle 有所謂的 Express Edition,XE 版,有 3 個使用者 PDB、2 個 CPU Core、2GB 記憶體、12GB 總資料量的限制,但可免費安裝使用,甚至可用在正式環境,只是不提供修補更新及技術支援,適合新創公司、非營利組織以及個人開發測試用。

之前裝過幾次都是裝在 Windows,既然自己玩就來點特別的,開了一台 Hyper-V VM 跑 CentOS,試試 Oracle on Linux 好了。

XE 的下載網址在 https://www.oracle.com/database/technologies/xe-downloads.html,針對 Linux 提供了 RPM 安裝檔,CentOS 7 要下載兩個檔案:

  • RPM for RHEL and CentOS Release 7
    oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
    相關程式庫套件
  • Oracle Database 18c Express Edition for Linux x64
    oracle-database-xe-18c-1.0-1.x86_64.rpm

官方有提供 RPM 安裝說明 - 5.1 Installing Oracle Database XE Using RPM Packages

Cmder bash 將檔案 sftp 上傳到 CentOS,使用 yum 安裝:

sudo -s
yum -y localinstall oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
yum -y localinstall oracle-database-xe-18c-1.0-1.x86_64.rpm

安裝過程還算無腦,但 XE 18c 安裝需要 5.2GB,比我預期的大很多。

接著執行設定:

sudo -s
/etc/init.d/oracle-xe-18c configure

原來純文字模式的進度顯示 Oracle 是這麼處理的,不知是否我的 VM RAM 開太小(4GB) 還是 Hyper-V 的 Disk IO 不夠威,等了超久才完成。 但過程只需輸入密碼,剩下來就是等,步驟比我想像簡單,本來以為需要改一堆 /etc/ 設定檔,我對 UNIX 系統的刻板印象該更新了。

exit 跑回到一般使用者身分(提示符號會由 # 變回 $),使用以下步驟設定 Oracle 環境參數後,用 SQLPlus 可連上 XE 資料庫就代表成功囉~

export ORACLE_SID=XE
export ORAENV_ASK=NO
. /opt/oracle/product/18c/dbhomeXE/bin/oraenv

上述環境變數設定是一次性的,登出即失效,為省去重複設定的工夫,可建立 /etc/profile.d/set_oraenv.sh,輸入:參考

export ORACLE_SID=XE
export ORACLE_HOME=/opt/oracle/product/18c/dbhomeXE
export ORACLE_BASE=/opt/oracle
export PATH=$PATH:/opt/oracle/product/18c/dbhomeXE/bin

接著來測試遠端存取,第一步是開啟 CentOS 防火牆:

sudo firewall-cmd --add-port=1521/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports

客戶端我是用 Oralce SQL Developer,有分內含跟不含 JDK 的版本,擔心商業授權問題的話,安裝不含 JDK8 版本再配合 OpenJDK 使用也完全沒問題。

先不設定 TNSNAMES.ORA,直接輸入 IP 跟 Port:

查詢成功,我解除了安裝 Linux 版 Oracle 的成就。(灑花)


Comments

Be the first to post a comment

Post a comment