网络管理监听器打不开Oracle,oracle的网络管理及监听

Oracle的网络管理

a4c26d1e5885305701be709a3d33442f.png

Oracle11g以后的监听程序放在grid_home目录中

查看我们的监听文件在哪个位置,lsnrctl status

Listener Parameter File

/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

a4c26d1e5885305701be709a3d33442f.png

我们此oracle有一个实例instance,实例名是ora12c,状态是ready也就是说监听先启动了,我数据库一启动pmon进程就把实例动态注册到监听,状态显示ready时说明是动态注册,如果是unknown说明是静态注册,需要我们人为的去注册。

要建立客户机或中间层连接,Oracel

Net要求客户机了解下列事项:

1、 运行监听程序的主机

主机名或者ip必须知道

2、 监听程序监视的端口

3、 监听程序使用的协议

目前使用的都是tcp/ip

4、 监听程序处理的服务名

a4c26d1e5885305701be709a3d33442f.png

这个监听程序处理的服务名具体是什么呢?我们登录到数据库查看下

show parameter service

a4c26d1e5885305701be709a3d33442f.png

Services_name是什么呢?vlaue的值就是我们的服务名,如果我们配置了域名那么services_name就是da_name+db_domain,如果我们不知道可以查

show parameter db_name,

show parameter db_domain,

我们的service_name

就等于我们的global_name,我们客户机连接oracle时使用的是我们的service_name,而非我们oracle的SID,实例名,因为在国内我们的数据库没有域名,导致这三个一样,一旦有域名那肯定使用其他不可能连接成功。

保证网络是通的客户端告诉监听我要连接哪个实例,监听会核实下对比下,我们有没有这样一个实例,如果有的话就把你提供的用户名和密码转发给数据库验证下。如果连接验证成功,oracle开启一个server

process也叫前台进程给我们客户端服务。

一旦我们连接成功,那么监听就不起作用,监听关闭也好不影响我们的连接,所以监听就是在我们连接oracle的时候才起作用。

a4c26d1e5885305701be709a3d33442f.png

Lsnrctl这个程序的可以启动监听也可以关闭监听,我们看下lsnrctl的其他参数。

Lsnrctl stop 停止监听,正常情况下我们先停实例后停监听,启动的时候先启动监听,在启动实例。如果我们要让实例动态注册进来执行alter

system register;这样就可以了。

a4c26d1e5885305701be709a3d33442f.png

我们已经有了对应的本主机名和1521端口的监听,那如果我们还想创建第二个监听呢?我们任何一台服务器上都可以有多个监听,但是监听的端口号必须不一样,因为你已经有了一个1521的端口监听。

我们输入netmgr命令,选中监听,然后点+号,取个名字,然后添加一个地址,要么我们的主机名唯一,要么我们的端口号唯一,此时我们选择1522端口。然后保存退出!

我们启动这个LISTENER2监听程序,lsnrctl

start

LISTENER2,虽然这个监听程序可以正常启动成功,但是无法提供服务。是因为我们这个监听没有注册进来实例,而我们的pmon进程默认注册进来的是1521端口。

a4c26d1e5885305701be709a3d33442f.png

如果要我们的pm进程动态注册到其他端口号,我们要修改一个参数,登录数据库,show

parameter

local_listener;我们这个local_listener的值为空意思就是默认的1521端口。我们尝试简易登录下system账户使用1521,可以连接到数据库,1522端口不可以。

sqlplus system/oracle@bosenrui:1521/ora12c

sqlplus 用户名/密码@主机名:端口/实例名

a4c26d1e5885305701be709a3d33442f.png

我们修改一个参数:

alter system set

local_listener='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=bosenrui)(PORT=1522)))','(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=bosenrui)(PORT=1521)))';

此时我们查看LISTENER2的状态,lsnrctl

status LISTENER2

发现已经动态注册进来实例。那么我们使用连接串连接数据库,经过测试我们马上从1522端口通过别名登录进来。

a4c26d1e5885305701be709a3d33442f.png

我们每次通过客户端登录数据库很麻烦,sqlplussystem/oracle@bosenrui:1521/ora12c

sqlplus

用户名/密码@主机名:端口/实例名

那么我们想把@后面的这部分用别的东西代替了,这就是我们的客户端TNS_NAME,这个文件是我们客户端配置的文件,也存放在/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/目录下,我们可以用vi编辑这个tnsnames.ora文件,别名随便取,但是里面包含客户端连接主机的4个要素,也可以用上面的图形话工具创建这个别名连接串,在连接类型时必须选专用模式dedicated

server。

a4c26d1e5885305701be709a3d33442f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值