根据计划需要学习Listener的一些基础知识,现在总结一下。
用于建立客户端与服务器之间的网络连接。 监听器运行在服务器端,属于一种网络服务,用于监听客户端向数据库发出的连接请求。
虽然与监听不太相关,但是还是记录在这 摘一段《OCP/OCA认证考试指南全册》内容
段落引用 用户进程生成SQL语句,服务器进程则执行这些语句。 一条SQL的执行经历了以下4个阶段:分析、绑定、执行及取出。 在分析阶段,服务器进程会理解指定SQL语句的实际含义以及最佳的执行方式。 分析涉及与实例的共享池的交互作用,也就是说共享池存储结构用于将SQL语句转换为实际的可执行部分。 在绑定阶段,任何变量都被扩展为字面值。随后的执行阶段需要更多地使用实例的SGA,并且还可能需要使用数据库。 在某条语句的执行期间,将会读取或更新数据库缓冲区缓存内的数据,同时将变更写入重做日志缓冲区。但是,如果相关的数据块不位于缓冲区缓存内,那么服务器进程会从数据文件中读取这些数据。这是执行语句时数据库自身唯一参与的地方。 最后,服务器进程在执行周期的取出阶段将执行语句生成的结果集发送回用户进程,用户进程随后为了显示而格式化结果集。
安装完成后使用 lsnrctl status 命令查看监听状态,其他命令有: help 查看所有命令 start 启动监听 stop 关闭监听 status 查看监听器状态 services 监看监听器提供的服务(信息比status更完整) version 显示监听器的版本 reload 强制监听器在listener.ora中重读条目 save_config 将任何联机更改写入listener.ora文件 trace 启用对监听器活动的跟踪 change_password 设置用于管理侦听器的口令(尝试设置,不过这个口令好像并不对服务器端操作监听起作用) quit 从工具退出,不保存对listener.ora文件的更改 exit 从工具退出,保存对listener.ora文件的更改 set 设置各种选线,如跟踪和超时 show 显示已为监听器设置的选项
注意:操作默认对名为LISTENER的监听执行,操作其他的名称需要指定,如lsnrctl status LISTENER2
以下是执行lsnrctl status的输出
Alias监听器别名、Version监听器版本、Start Date启动时间、Uptime已启动时间、Trace Level跟踪、参数文件路径、日志文件路径。
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
PROTOCOL:协议 HOST:监听的主机名或IP PORT:监听的端口,默认是1521
Service "pxk" has 1 instance(s).
Instance "pxk", status READY, has 1 handler(s) for this service...
Service:服务名 Instance:实例名 status:READY 动态监听状态,静态监听状态为UNKOWN。动态监听由PMON进程自动注册
Service "pxk2XDB" has 1 instance(s).
Instance "pxk2", status READY, has 1 handler(s) for this service...
标记为XDB的服务名是XML数据库协议服务器,允许如FTP、HTTP这样的协议连接到数据库,了解即可。
动态监听:数据库正常开启状态下可以进行连接,否则不行 静态注册:不论数据库状态如何,均能进行连接。ADG备库的listener.ora需要配置静态注册
listener.ora的静态监听格式为:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = <db_name>)
(ORACLE_HOME = <oracle_home>)
(SID_NAME = <oracle_sid>)
)
)
注意:上面包含了启动和关闭监听日志文件的方法 lisnrctl set log_status off lsnrctl set log_status off