在 Ubuntu 上配置 Oracle 监听(Listener),通常是通过 Oracle Net(listener.ora / tnsnames.ora)来完成的。下面以 Oracle 19c / 21c 为例,说明完整步骤。
oracle 用户操作su - oracle
确认环境变量:
echo $ORACLE_HOME
echo $ORACLE_SID
监听器配置文件通常位于:
$ORACLE_HOME/network/admin/listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(SID_NAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
)
)
说明:
HOST:可写 localhost 或服务器 IPPORT:默认 1521SID_NAME:数据库实例名ORACLE_HOME:实际安装路径lsnrctl start
查看状态:
lsnrctl status
看到类似:
Service "orcl" has 1 instance(s).
说明配置成功。
文件位置:
$ORACLE_HOME/network/admin/tnsnames.ora
示例:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
测试连接:
tnsping ORCL
lsnrctl start
错误如 TNS-12545:
netstat -tunlp | grep 1521
手动注册:
sqlplus / as sysdba
ALTER SYSTEM REGISTER;
sudo ufw allow 1521/tcp
Ubuntu 不默认自启 Oracle,可配置 systemd 或 rc.local。
如果你愿意,可以告诉我:
我可以给你 更精确的配置示例。