当前位置: 代码网 > it编程>数据库>Oracle > 成为MySQL DBA后,再看ORACLE数据库(二、监听与连接)

成为MySQL DBA后,再看ORACLE数据库(二、监听与连接)

2024年05月28日 Oracle 我要评论
一、监听器的启动 ORACLE启动完成后,可以通过sqlplus / as sysdba连接数据库,但是这个只是本地连接,无法通过tcp/ip远程访问数据库,这时候就要启动ORAClE的监听器。启动监听器的命令是lsnrctl start,启动成功后,可以观察到1521端口也随之监听,这时候就能通过 ...

一、监听器的启动

oracle启动完成后,可以通过sqlplus / as sysdba连接数据库,但是这个只是本地连接,无法通过tcp/ip远程访问数据库,这时候就要启动oracle的监听器。启动监听器的命令是lsnrctl start,启动成功后,可以观察到1521端口也随之监听,这时候就能通过ip加端口远程访问数据库了。在mysql中没有监听器这个概念,本地和远程的连接主要通过用户来区分,root@localhost代表的是通过本地socket方式连接,root@ip代表的是通过tcp/ip连接。

 

二、两个配置文件 

1. 客户端的tnsnames.ora文件
tnsnames.ora文件是在客户端配置的网络服务名文件,用于客户端连接oracle数据库,在$oracle_home/network/admin目录下。通过该文件中定义的service_name,就可以通过sqlplus或其他客户端工具通过服务名进行远程访问数据库。

 2. 服务端的listener.ora文件

listener.ora文件是在数据库服务端配置的监听器配置文件,我配置的listener.ora文件中,主要有listener信息,包含了监听的协议、地址以及端口等信息。这里,我们用的是动态注册,所谓动态注册是指当实例启动之后,由后台进程pmon在监听器中注册数据库服务信息。在动态注册机制下,将不再需要在listener.ora文件中定义服务名信息。使用动态注册,是由数据库实例主动向监听器注册,因此监听器可以知道数据库实例的状态,在rac环境下,某个实例出现故障时,动态服务注册功能可以快速自动的failover客户端请求到其他实例。使用lsnrctl status可以查看监听器的状态,动态注册的服务名,由于监听器确切地知道实例的状态,所以正常状态通常显示为ready,而对于静态注册的服务名,则状态显示为unknow。

 

三、easy connect方式

使用easy connect方式连接数据库,不需要配置tnsnames.ora文件,可以直接使用ip+端口+服务名连接数据库。而开启easy connect方式,需要在sqlnet.ora文件中设置names.directory_path= (tnsnames, ezconnect),这个是默认设置的。easy connect方式连接数据库简单方便,类似mysql -u -h -p这种连接串的形式。

四、监听器日志

监听器日志位于$oracle_base/diag/tnslsnr/host/listener/trace目录下,在oracle中遇到客户端与数据库连接异常时,除了需要检查客户端配置,数据库和监听器的状态,还需要排查监听器日志有无异常。

 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com