给Oracle数据库换一个1522端口的监听

news/2024/11/29 13:39:17/

可能是因为短了几天,2月过得比其他月份要快不少。这都最后一天了,博客还是没碰一下。

也因为这个月学习放缓了,就是偷懒了。。所以想了想,定不下要写些什么。

很久以前就想写写分析函数,Oracle的分析函数是个强大的东东,也整理过一些,但始终觉得拿不出手。。。

写写我们家little fairy?想到就很开心哈哈哈哈哈哈哈哈哈哈哈哈哈傻的不行!

打住打住,时间不多了,就最后一个半钟。还是记一点东西吧。、

 

======================================== 一根完美的分割线 =======================================

事情是这样发生的,公司的的一台破服务器,最近不知道为啥呢,上面的数据库连接速度特别慢,尝试用tnsping了一下那服务器的1521端口,120000+ ms,也就是差不多两份多钟的样子,尝试修理一下,未果。

但是发现,如果我重新建一个监听,用1522端口,tnsping速度块的一批,10ms妥妥的。结局还是很美好的!

 

但那只是我以为。。。

C:\Users\Lhy>tnsping 127.0.0.1:1522TNS Ping Utility for 64-bit Windows: Version 11.2.0.1.0 - Production on 28-2月 -2019 22:49:09Copyright (c) 1997, 2010, Oracle.  All rights reserved.已使用的参数文件:
D:\app\product\11.2.0\dbhome_1\network\admin\sqlnet.ora已使用 HOSTNAME 适配器来解析别名
尝试连接 (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1522)))
OK (0 毫秒)C:\Users\Lhy>sqlplus lhy/lhy@127.0.0.1:1522/orclSQL*Plus: Release 11.2.0.1.0 Production on 星期四 2月 28 22:49:41 2019Copyright (c) 1982, 2010, Oracle.  All rights reserved.ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务请输入用户名:

怎么样,惊不惊喜!!!意不意外!!!

原来的数据库并不能直接就注册到新的监听中来给外面连接。

 

那么为什么呢?有数据库,有监听,怎样关联?

原来的为什么就行呢?

 

1、了解一下动态注册

实例在启动的时候,读取init.ora文件,把一些信息动态注册到默认监听中,默认监听,也就是名称叫LISTENER,端口是1521,协议是tcp的那个监听。

而我们现在是重新建了监听。。数据库和实例并不不知道我们这个监听的信息,所以,我们要把这个监听的信息,保存到数据库里面,让它服务启动的时候,能够知道往哪里注册。。。

两种方法:

第一种:

(1)在%ORACLE_HOME%\NETWORK\ADMIN\tnsnames.ora文件中,添加新监听的连接信息,代码及位置如下图,自己按照自己的改一下host和端口:

LISTENER1522 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-U9EADHR)(PORT = 1522)))

(2)然后,先通过操作系统认证登陆,并设置数据库注册的监听,如下:

C:\Users\Lhy>set oracle_sid=orcl    -- 设置默认数据库sidC:\Users\Lhy>sqlplus / as sysdba    -- 管理员身份登陆SQL*Plus: Release 11.2.0.1.0 Production on 星期四 2月 28 23:21:57 2019Copyright (c) 1982, 2010, Oracle.  All rights reserved.连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> alter system set local_listener=LISTENER1522;    -- 修改监听名为刚才tnsnames.ora里面的监听名系统已更改。SQL> alter system register;    -- 注册系统已更改。SQL> exit
从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开C:\Users\Lhy>sqlplus lhy/lhy@127.0.0.1:1522/orcl    --走1522端口的监听登陆SQL*Plus: Release 11.2.0.1.0 Production on 星期四 2月 28 23:23:06 2019Copyright (c) 1982, 2010, Oracle.  All rights reserved.连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL>

这样,咱们就算是用上了新的监听了。

 

上面这种方法呢,是先在tnsnames.ora里面定义LISTENER1522这个监听的信息,然后在数据库里面设置这个监听名;这种的话,比较适合这个服务器中有多个数据库,统一维护比较方便,如后面监听再有变动,也只需要改一下tnsnames文件重启下数据库就行。

 

第二种:另外一种比较简单粗暴的,就是直接把监听的连接信息直接写到数据库中,就省了修改tnsnames.ora这一步。例如咱们把在tnsnames中配置的监听信息抽出来,就是 (ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-U9EADHR)(PORT = 1522)),然后,直接把这个信息,设置到数据库中,如下:

C:\Users\Lhy>set oracle_sid=orcl    -- 设置默认数据库C:\Users\Lhy>sqlplus / as sysdba    -- 管理员登陆SQL*Plus: Release 11.2.0.1.0 Production on 星期四 2月 28 23:33:28 2019Copyright (c) 1982, 2010, Oracle.  All rights reserved.连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> alter system set local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-U9EADHR)(PORT = 1522))';    -- 直接设置具体的监听连接信息系统已更改。SQL> alter system register;    -- 注册系统已更改。SQL> exit
从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开C:\Users\Lhy>sqlplus lhy/lhy@127.0.0.1:1522/orcl    -- 通过1522登录SQL*Plus: Release 11.2.0.1.0 Production on 星期四 2月 28 23:34:07 2019Copyright (c) 1982, 2010, Oracle.  All rights reserved.连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL>

这个方法呢,,可行,但是呢,如果数据库多,维护起来就比较麻烦些吧。

 

还有个方法呢,根据网上的说法,可以用静态注册的方式, 在listener.ora文件中静态注册某一个或者多个实例,但暂时没实践过,最后几分钟了,就不折腾了。

3月,你好呀~


http://www.ppmy.cn/news/280906.html

相关文章

Pytest自动化测试框架生成allure的报告

一、前言 最近通过群友了解到了allure这个报告,开始还不以为然,但还是逃不过真香定律。 经过试用之后,发现这个报告真的很好,很适合自动化测试结果的展示。下面说说我的探索历程吧。 选用的项目为Selenium自动化测试Pytest框架实…

Docker安装达梦(DM)关系型数据库,DBeaver远程连接使用数据库

Docker安装达梦(DM)关系型数据库 首先你得去达梦数据库官网注册一个账号。 下载数据库部署包 官网:https://www.dameng.com/ 然后找到需要的数据库: 官网试用地址:https://eco.dameng.com/tour/?source_urlht…

网络协议 — IPv6 互联网协议第 6 版

目录 文章目录 目录IPv6IPv6 数据包格式固定报头扩展头部 IPv6 地址格式IPv6 网络的基本组成元素IPv6 的地址分类和寻址模式单播地址全球唯一地址(Global Unique Address)唯一本地地址(Unique Local Unicast Address)链路本地地址…

【数据结构】二叉树(一)

目录 一、树的概念及结构 1、树的概念 2、树的相关概念 3、树的表示 二、二叉树概念及结构 1、二叉树的概念 2、特殊二叉树 3、二叉树的性质 4、二叉树的存储结构 4.1 顺序存储结构 4.2 链式存储结构 三、二叉树顺序结构及实现 1、二叉树的顺序结构 2、堆的概念及结构 3、堆…

以太网交换机的自学习

我们假设一个以太网交换机有1、2、3、4,共4个接口,每个接口都分别连接了一台计算机,他们的MAC地址分别是A、B、C和D。在最开始的时候,交换机的交换表是空的,如下表。 MAC地址接口 假如A向B发送了一帧,从接…

工业以太网交换机有多少个快速以太网接口?

工业以太网交换机应用于复杂的工业环境中实时以太网数据传输,以太网交换机是非常的重要,它把握着一个网络的命脉,有人会提出以太网交换机有多少个快速以太网接口?到底该如何进行选择呢?接下来我们就跟随飞畅科技的小编…

以太网交换机的自学习功能

放个很棒的一篇博文[计算机网络笔记07] 交换机的自学习算法_wong_faye的博客-CSDN博客_交换机的自学习算法https://blog.csdn.net/wong_faye/article/details/106131207?ops_request_misc%257B%2522request%255Fid%2522%253A%2522163350711616780366542101%2522%252C%2522scm%…

共享式以太网和交换式以太网的区别

集线器在OSI模型中属于物理层,但由于集线器属于共享型设备,使得它在网络中的效率十分低下,非常容易产生广播风暴,因此在中大型的网络中通常看不到集线器的身影。而交换机则属于数据链路层,是一种基于MAC地址的、能够完…