lsnrctl命令是对的操作命令
可以启动关闭每个程序
并且可以查看每个程序的状态
没有名的lsnrctl命令
默认的操作对象是名为LISTENER
就是 lsnrctl status 和 lsnrctl status listener 总是相等的
如果local_listener指定了其它端口
lsnrctl默认操作的还是名为LISTENER的
这时它不会管实际名为LISTENER的定义的端口号是多少
如果这时listener.ora文件中没有名为LISTENER的
那它的操作对象就是那个默认自动建立在1521端口的程序
2)定义了多个程序
在listener.ora文件中有了多个的定义后
程序的使用会变得有些复杂
但是一定存在1521端口的默认建立的
和lsnrctl命令默认的操作对象是名为LISTENER的器
listener.ora中定义的每个都是可以运行的
都可以使用
lsnrctl start 名 启动
lsnrctl stop 名 关闭
lsnrctl status 名 查看的状态
每个启动后
每个端口都是开启的
每个程序的静态的实例信息在程序启动时被自动加载
并且在运行时都是可以被使用的
这里的不同点产生在
实例动态注册的的位置也就是注册在哪个器上
没有指定local_listener时
动态注册是注册到所有使用1521端口的器中
包括默认建立的那个1521端口的
即使这时这个默认1521端口的的默认名字LINSTENER给了其它端口的
就是不会管这时的默认建立的1521端口的没有名字
当然用户定义的使用1521端口的也会得到动态注册信息
指定了local_listener后
它一般会对应一个非1521的其它端口号,如:1522
这是动态注册是注册到这个新指定的端口号所在的中
如果有多个使用这个端口号就会向多个器注册实例和服务信息
虽然这时默认的1521端口的仍然存在并运行着但它已不接受动态注册信息
如果local_listener指定了端口1522
这时程序会自动建了两个默认而且不理会listener.ora文件中的定义
一个在1521端口一个在1522端口
这时1521的默认不接受动态注册而1522端口的默认接受动态注册
在local_listener指定了端口1522后
如果这时在listener.ora文件中没有1522端口的定义
自动建立的1522端口的还是会接受动态注册
并且使用1522端口可以进行的连接
这时运行
sqlplus hr/hr@192.168.3.47:1522/jiagulun
是可以连上的
当一个启动,并且有了静态或动态注册的实例服务信息后
客户端就可以和这个建立正确的连接了
先通过ip和端口找到程序
再在的注册信息中去找对应的服务名
这里不会管是静态注册的还是动态注册的实例的服务名
如果匹配了这个连接就建立成功了
如果你在1522端口接收动态注册
而在1523端口中有静态的信息
使用开启状态的1523端口也是可以正常连接到的
因为这里的正确的静态的信息一样可以正常使用
多个之间还有一个地方会发生冲突
就是在定义中的
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
这一行
它说明这个还使用
PROTOCOL = IPC
就是还可以使用IPC协议进行连接
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-71958-24.html
弄个公司上市圈钱
和美海军这样的对手玩比和毛子玩会有意义
是个迷
但如果战争爆发我会第一时间到战地医院去