lsnrctl是Oracle数据库的监听器控制工具,并非Ubuntu系统自带组件,需先安装Oracle数据库软件才能使用。以下是在Ubuntu上安装并配置lsnrctl的详细步骤:
一、前置准备
- 系统更新
运行sudo apt update && sudo apt upgrade -y,确保系统包列表及已安装软件为最新版本。 - 安装基础依赖
Oracle数据库及lsnrctl需要以下依赖包支持,执行sudo apt install -y build-essential libaio1 libgcc1 libstdc++6 libncurses5-dev libssl-dev unixodbc unixodbc-dev安装。
二、安装Oracle数据库软件(含lsnrctl)
lsnrctl属于Oracle数据库的一部分,需通过安装Oracle数据库软件获取。以Oracle 19c为例,步骤如下:
- 下载Oracle安装包
从Oracle官方网站下载适用于Linux的Oracle Database安装包(如oracle-database-ee-19c-1.0-1.x86_64.rpm)。 - 转换RPM为DEB格式
Ubuntu使用DEB包,需通过alien工具转换RPM包:sudo apt install -y alien sudo alien -d oracle-database-ee-19c-1.0-1.x86_64.rpm - 安装转换后的DEB包
sudo dpkg -i oracle-database-ee-19c-1.0-1.x86_64.deb - 完成Oracle安装向导
运行sudo /etc/init.d/oracle-xe-19c configure,按提示设置数据库SID、密码、监听端口(默认1521)等信息。
三、配置环境变量
为确保lsnrctl能正常运行,需配置Oracle相关环境变量。编辑~/.bashrc(或~/.profile)文件,添加以下内容:
export ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1 # 替换为实际ORACLE_HOME路径
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export ORACLE_SID=orcl # 替换为实际数据库SID
保存后执行source ~/.bashrc使变量生效。
四、配置监听器(listener.ora)
监听器配置文件位于$ORACLE_HOME/network/admin/listener.ora,需根据网络环境修改:
sudo nano $ORACLE_HOME/network/admin/listener.ora
示例配置(按需调整HOST、PORT、SID_NAME):
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) # 主机名或IP地址
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl) # 数据库SID
(ORACLE_HOME = /u01/app/oracle/product/19c/dbhome_1) # ORACLE_HOME路径
)
)
保存退出。
五、配置客户端连接(tnsnames.ora,可选)
若需从客户端通过服务名连接数据库,需配置tnsnames.ora文件(位于$ORACLE_HOME/network/admin/):
sudo nano $ORACLE_HOME/network/admin/tnsnames.ora
示例配置(替换为实际HOST、PORT、SERVICE_NAME):
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl) # 数据库服务名
)
)
保存退出。
六、启动与管理lsnrctl
- 切换至Oracle用户
lsnrctl需以Oracle用户身份运行,执行su - oracle切换。 - 启动监听器
lsnrctl start - 查看监听器状态
若显示“Listener is ready”则表示启动成功。lsnrctl status - 停止监听器
lsnrctl stop - 重启监听器
lsnrctl restart
七、创建systemd服务(可选,实现开机自启)
为方便管理,可将监听器配置为systemd服务:
- 创建服务文件
sudo nano /etc/systemd/system/oracle-listener.service - 添加以下内容(替换
oracle为用户、oinstall为组,$ORACLE_HOME为实际路径):[Unit] Description=Oracle Listener Service After=network.target [Service] Type=forking ExecStart=$ORACLE_HOME/bin/lsnrctl start ExecStop=$ORACLE_HOME/bin/lsnrctl stop ExecReload=$ORACLE_HOME/bin/lsnrctl reload User=oracle Group=oinstall Restart=on-failure [Install] WantedBy=multi-user.target - 重载systemd配置
sudo systemctl daemon-reload - 设置开机自启并启动服务
sudo systemctl enable oracle-listener sudo systemctl start oracle-listener - 查看服务状态
sudo systemctl status oracle-listener
注意事项
- 权限问题:确保Oracle用户对
$ORACLE_HOME、$ORACLE_HOME/network/admin等目录有读写权限。 - 端口开放:防火墙需允许监听端口(默认1521)通信,执行
sudo ufw allow 1521/tcp开放端口。 - 版本兼容:Oracle Instant Client版本需与数据库版本一致,避免兼容性问题。
- 日志排查:若启动失败,可查看监听器日志
$ORACLE_HOME/diag/tnslsnr/定位问题。/listener/alert/log.xml
以上就是关于“ubuntu lsnrctl安装步骤详解”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm