使用 lsnrctl 连接 Oracle 数据库的步骤如下:
sudo apt-get update sudo apt-get install oracle-instantclient-basic oracle-instantclient-sqlplus ~/.bashrc 或 ~/.profile 文件,添加以下内容(根据你的 Oracle 安装路径调整):export ORACLE_HOME=/usr/lib/oracle/19.3/client64 export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH export PATH=$ORACLE_HOME/bin:$PATH 然后运行以下命令使更改生效:
source ~/.bashrc $ORACLE_HOME/network/admin 目录下找到或创建 listener.ora 文件。示例内容:LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_host_name)(PORT = 1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = your_sid) (ORACLE_HOME = /path/to/oracle/home) ) ) lsnrctl start lsnrctl status tnsnames.ora 文件(可选)$ORACLE_HOME/network/admin 目录下找到或创建 tnsnames.ora 文件。示例内容:MYDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_host)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = your_service_name) ) ) lsnrctl 连接数据库lsnrctl connect username/password@hostname:port/servicename 例如:
lsnrctl connect myuser/mypassword@192.168.1.100:1521/orcl sqlplus 命令行工具验证连接:sqlplus username/password@MYDB 其中 username 是你的数据库用户名,password 是对应的密码,MYDB 是在 tnsnames.ora 文件中定义的别名。
SELECT * FROM dual; listener.log 文件(通常位于 $ORACLE_HOME/network/log/listener.log)以获取详细的错误信息。确保数据库实例正在运行并且监听器配置正确。tnsnames.ora 文件中的配置是否与实际数据库设置匹配。确保网络连接正常,防火墙没有阻止必要的端口(默认是 1521)。通过以上步骤,你应该能够在 Ubuntu 系统上成功使用 lsnrctl 连接到 Oracle 数据库。如果遇到任何问题,请参考 Oracle 官方文档或寻求社区支持。