在 Linux 伺服器上讓 Oracle 資料庫接受遠程連線,核心在於正確設定 Listener(監聽器)與服務名稱。本文依照伺服器端與客戶端兩個面向,詳細說明使用圖形化工具 netca 與 netmgr 的操作流程。
於終端機執行 $ORACLE_HOME/bin/netca(需圖形介面),依精靈提示建立一個新的 Listener,預設埠號為 1521。
執行 $ORACLE_HOME/bin/netmgr,展開 Oracle Net Configuration → Local → Listeners → [你的 Listener],選擇 Database Services 新增欲對外提供的資料庫。Global Database Name 即為對外服務名稱(如 ORCL),填寫完成後儲存離開。
$ORACLE_HOME/bin/lsnrctl stop
$ORACLE_HOME/bin/lsnrctl start
成功訊息應包含 Service "ORCL" has 1 instance(s). 以及 The command completed successfully.
同樣執行 netca,選擇 Local Service Name Configuration。Service Name 填入伺服器端設定的 Global Database Name;Host Name 填入伺服器 IP(或主機名);最後自訂一個本地服務別名(例如 LSN)。
sqlplus username/password@LSN
若連線成功,即表示遠程存取已就緒。
tnsnames.ora 與 listener.ora 檔案路徑通常在 $ORACLE_HOME/network/admin/。ORA-12514,請檢查服務名稱是否與 Listener 註冊的一致。