首页 > 数据库 >oracle数据库镜像恢复或更改ip后导致数据库无法使用

oracle数据库镜像恢复或更改ip后导致数据库无法使用

时间:2024-08-27 16:37:57浏览次数:10  
标签:监听器 ip 数据库 listener 注册 oracle ora

一、现象:
# 启动监听报错提示:

Listener Parameter File /db/oracle/product/11.2.0/network/admin/listener.ora
Listener Log File /db/oracle/diag/tnslsnr/VM-80-3-centos/dspm/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=10.1.1.3) (PORT=1532)))
he listener supports no services
he commandcompleted successfully 

二、背景
因业务需求,数据存放在oracle中,现需通过镜像恢复(或因迁移更改服务器ip),Oracle数据库无法连接,

# 出处博客园:# https://www.cnblogs.com/liucx/

三、解决方法
1、如果你安装oracle数据库时采用主机名解析的话,需要修改/etc/hosts文件(配置ip可忽略)

vim /etc/hosts
现在的ip 主机名 

2、采用ip地址的话,需要修改两个文件:listener.ora、tnsnames.ora,然后重启监听

find /db -name listener.ora 
find /db -name tnsnames.ora	# 查找这两个文件的地址,修改其IP地址

# cat /db/oracle/product/11.2.0/network/admin/listener.ora 
dspm =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.21.16.48)(PORT = 1532))
    )
  )
ADR_BASE_dspm = /db/oracle

# cat /db/oracle/product/11.2.0/network/admin/tnsnames.ora
dspm,dspm.world =
  (description =
    (address = (protocol = tcp)(host = 10.21.16.48)(port = 1532))
    (connect_data = (sid = dspm))
  )

3、启动监听

lsnrctl stop $ORACLE_SID
lsnrctl start $ORACLE_SID

4、启动数据库

sqlplus '/ as sysdba'
startup;

5、修改监听IP(因监听文件是动态注册,故需要修改)

# 查看数据库实例本地监视器IP地址+端口
show parameter local_listener;

# 修改 local_listener 参数,SCOPE=BOTH 选项意味着更改将同时更新内存中的系统全局区(SGA)和 spfile(如果使用的是 spfile),10.21.16.48为新IP。
ALTER SYSTEM SET local_listener='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.21.16.48)(PORT=1532)))' SCOPE=BOTH;

# 重新注册数据库到监听器,更改 local_listener 参数后,您可能需要手动触发数据库实例重新向监听器注册。
ALTER SYSTEM REGISTER;

# 验证更改
show parameter local_listener;
exit

6、检查监听器状态

lsnrctl status $ORACLE_SID

# 已启动正常

7、测试远程登录

$ sqlplus user/[email protected]:1532/dspm    
# 其中user为数据库用户名,password为对应的密码,192.168.0.100为其他机器的IP地址,dspm为数据库实例名。
select open_mode,name from v$database; # 查询当前数据库状态和名称:
  PS:  动态注册默认只注册到默认的监听器上(名称是LISTENER、端口是1521、协议是TCP。因为pmon只会动态注册por等于1521的监听

否则pmon不能动态注册listener,如果需要向非默认监听注册,则需要配置local_listener参数

Oracle 数据库中的监听器(Listener)是一个独立的进程,用于监听并接收来自客户端的连接请求。监听器的注册分为两种类型:动态注册和静态注册。这两种注册方式主要区别在于如何将数据库服务的信息传递给监听器。
### 动态注册(Dynamic Registration)
动态注册也被称为自动注册。在这种模式下,Oracle 数据库实例会在启动时自动向监听器注册其服务信息,包括服务名和实例名等。这种注册是通过 Oracle Net 的服务名解析过程实现的。
- **实现方式**:动态注册使用的是 Oracle Net 的 PMON(进程监视器)进程,该进程每隔一定时间就会自动向监听器发送更新的服务信息。
- **配置**:动态注册通常不需要在`listener.ora`中进行特殊配置,但需要确保监听器能够接收来自数据库的注册信息(一般通过默认的 `TCP` 端口 1521 或通过 `local_listener` 参数指定的地址)。

### 静态注册(Static Registration)
静态注册要求数据库管理员在监听器的配置文件 `listener.ora` 中明确指定数据库服务的详细信息。这包括服务名、数据库的 IP 地址、端口等信息。

- **实现方式**:通过在 `listener.ora` 文件中添加服务描述,来告诉监听器如何连接到特定的数据库服务。

# 配置示例
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = db_service_name)
      (ORACLE_HOME = /oracle/product/12.1.0/dbhome_1)
      (SID_NAME = sid_name)
    )
  )

  

 

标签:监听器,ip,数据库,listener,注册,oracle,ora
From: https://www.cnblogs.com/liucx/p/18383007

相关文章

  • 国标GB28181视频监控EasyCVR视频汇聚平台国标注册被陌生IP入侵如何处理?
    GB28181国标/GA/T1400协议/安防综合管理系统EasyCVR视频汇聚平台能在复杂的网络环境中,将前端设备统一集中接入与汇聚管理。智慧安防/视频存储/视频监控/视频汇聚EasyCVR平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存......
  • IP地址库:从收集到处理
    准确的IP地址库对于网络管理、安全防护、地理定位等众多领域都十分重要。然而,原始的IP地址数据往往存在着各种问题,如不完整、不准确、重复等,因此,对IP地址库数据进行有效的收集、清洗和处理是每个IP收集整理的关键且不可或缺的步骤。IP地址库数据收集(一)网络流量监测通过在网......
  • (5-2-02)常用的文生图预训练模型:CLIP(2)
    5.2.3 多模态图像搜索引擎本项目是一个基于CLIP(ContrastiveLanguage-ImagePre-training)大模型的图像搜索引擎,针对孟加拉语文本描述进行图像检索。它包括了训练CLIP模型、准备数据集、构建图像搜索Web应用程序等功能,用户可以通过输入文本描述来搜索与描述相匹配......
  • JavaScript 对象构造器
    <!DOCTYPEhtml><htmllang="en"><body><pid="demo"></p><script>functionPerson(first,last,age,like){this.firstName=first;this.lastName=last;......
  • ETL学习之SQL Server数据库常用SQL语句
    在数据仓库和ETL(提取、转换、加载)过程中,SQLServer数据库是一个广泛使用的平台。ETL工程师需要熟练掌握SQL语句,以便有效地从源系统中提取数据,进行转换,并将其加载到目标数据库中。本文将介绍一些ETL工程师常用的SQLServer数据库SQL语句。1.数据提取(Extract)查询特定列SELEC......
  • 爬虫使用代理IP池:提高数据抓取效率的绝佳实践
    爬虫使用代理IP池的最佳实践在进行网络爬虫和数据抓取时,使用代理IP池是一个有效的策略,可以提高抓取效率,避免IP封禁。本文将详细介绍如何在爬虫中使用代理IP池,并提供一些最佳实践。一、什么是代理IP池?代理IP池是指一组可用的代理IP地址集合。通过轮换使用这些代理IP,爬虫可以......
  • IP代理可以做爬虫吗?探讨其可行性与相应实践
    IP代理在网络爬虫中的应用在网络爬虫的世界里,IP代理就像是爬虫的“隐形斗篷”,帮助它们在获取数据的过程中隐藏真实身份,避免被目标网站识别和封禁。那么,IP代理到底能否用于爬虫呢?答案是肯定的!接下来,我们将深入探讨IP代理在爬虫中的重要性、工作原理以及使用时需要注意的事项。......
  • 爬虫初学者用哪家代理ip?
    选择合适的代理IP服务商的指南在网络爬虫的世界中,代理IP扮演着至关重要的角色。对于初学者来说,选择一个合适的代理IP服务商不仅可以提高数据抓取的效率,还能有效降低被封禁的风险。本文将探讨好的代理IP服务商应具备的特点,以及在选择和使用时需要注意的事项。一、好的代理IP服......
  • 爬虫使用代理IP:提升数据抓取效率的实践
    爬虫使用代理IP的技巧和方法在进行网络爬虫时,使用代理IP可以帮助你提高数据抓取效率和保护隐私。本文将介绍爬虫使用代理IP的技巧和方法,帮助你更好地进行数据抓取。为什么爬虫需要使用代理IP在进行大规模数据抓取时,目标网站可能会检测到你的爬虫行为,并对你的IP地址进行封锁......
  • Springboot获取数据库内容
    @ControllerpublicclassCon{@GetMapping("/sumView")publicStringsumView(Modelmodel,Stringdata){Liststudents=newArrayList<>();Stringsql="SELECT*FROMstuwhere学号=?;";//请替换为实际的SQL语句......