1、切换进oracle用户
su - oracle
2、关闭监听
lsnrctl stop
3、修改配置文件listener.ora
该文件在$ORACLE_HOME/network/admin/listener.ora路径下。
进入配置文件后,我的文件内容如下:
LISTENER =
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))
参照网上教程,我将PORT=1521修改为自己想定义的端口号,但过程中遇到三个问题。
1、文件第一行的关键词LISTENER,此前被我误改为其他名称,要将之改回LISTENER,否则配置无法被数据库读取到。
2、HOST=的值使用localhost,只能供本机访问使用,若想被其他机器访问,需填写ip。
3、待配置完成,启动监听时,提示The listener supports no services。原因是服务没有被注册,注册信息也需一起写入该配置文件。
因此,修改后的配置文件内容为:
LISTENER =
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=tcp)(HOST=xx.xx.xx.xx)(PORT=1234))
(ADDRESS=(PROTOCOL=ipc)(KEY=PNPKEY)))
SID_LIST_LISTENER=
(SID_LIST =
(SID_DESC=
(GLOBAL_DBNAME=your_service_name)
(SID_NAME=your_service_name)
)
)
4、修改local_listener参数
使用sqlplus工具查看local_listener参数,初始为空。
sqlplus / as sysdba
show parameter local_listener
修改该参数。
alter system set local_listener="(address=(protocol=tcp)(host=xx.xx.xx.xx)(port=1234))"
重启数据库。
shutdown immediate
startup
5、启动监听
启动监听,查看状态,可看到端口号已变更。
lsnrctl start
lsnrctl status
6、检验
查看端口启动情况
netstat -an | grep 1234
测试数据库连接情况
sqlplus username/password@xx.xx.xx.xx:1234/your_service_name