Oracle数据库服务器地址变更与监听配置修改完整指南

news2025/3/30 3:41:45

一、前言

在企业IT运维中,Oracle数据库服务器地址变更是常见的运维操作。本文将详细介绍如何安全、高效地完成Oracle数据库服务器地址变更及相关的监听配置修改工作,确保数据库服务在迁移后能够正常运行。

二、准备工作

1. 环境检查

  • 确认新旧服务器IP地址(如从192.168.1.135迁移到192.168.1.59)
  • 检查Oracle数据库版本:SELECT * FROM v$version;
  • 确认当前监听状态:lsnrctl status

2. 备份重要文件

# 备份监听器配置文件
cp $ORACLE_HOME/network/admin/listener.ora $ORACLE_HOME/network/admin/listener.ora.bak
cp $ORACLE_HOME/network/admin/tnsnames.ora $ORACLE_HOME/network/admin/tnsnames.ora.bak

# 备份spfile(如使用)
CREATE PFILE='/tmp/pfile.ora' FROM SPFILE;

三、服务器地址变更步骤

1. 修改监听器配置(listener.ora)
# 原配置
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.135)(PORT = 1521))
    )
  )

# 修改为
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.59)(PORT = 1521))
    )
  )
2. 修改local_listener参数
-- 检查当前值
SELECT value FROM v$parameter WHERE name = 'local_listener';

-- 修改参数(分步执行更安全)
ALTER SYSTEM SET local_listener='' SCOPE=BOTH;
ALTER SYSTEM SET local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.59)(PORT=1521))' SCOPE=BOTH;

-- 强制服务注册
ALTER SYSTEM REGISTER;
3. 更新tnsnames.ora文件
# 原配置
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.135)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

# 修改为
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.59)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

四、验证步骤

1. 监听器状态验证
lsnrctl stop
lsnrctl start
lsnrctl status
2. 服务注册验证
lsnrctl services
3. 数据库连接测试
tnsping ORCL
sqlplus system/password@ORCL

五、常见问题解决方案

1. ORA-12514: TNS监听程序无法识别服务
  • 检查local_listener参数是否正确
  • 确认监听器是否在新IP上运行
  • 检查防火墙设置
2. ORA-02097: 参数修改无效
-- 先重置参数再设置
ALTER SYSTEM RESET local_listener SCOPE=SPFILE;
ALTER SYSTEM SET local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.59)(PORT=1521))' SCOPE=BOTH;
3. 服务未自动注册
  • 手动执行:ALTER SYSTEM REGISTER;
  • 检查PMON进程是否正常运行
  • 查看警报日志获取详细信息

六、回滚方案

如果变更失败,可按以下步骤回退:

  1. 恢复listener.ora和tnsnames.ora备份
  2. 重置local_listener参数
  3. 重启监听器
  4. 强制服务重新注册

七、总结

Oracle服务器地址变更需要谨慎操作,重点注意:

  1. 提前做好完整备份
  2. 按顺序修改listener.ora、数据库参数和tnsnames.ora
  3. 每步操作后立即验证
  4. 准备完善的回滚方案

通过以上步骤,可以确保Oracle数据库在服务器地址变更后仍能提供稳定的服务。建议在非业务高峰期进行此类变更,并通知相关应用团队配合测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2322375.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Keepalived 实现高可用方案

Keepalived简介 ‌Keepalived‌ 是一个基于 ‌VRRP(Virtual Router Redundancy Protocol)协议‌的高可用性解决方案,主要用于实现‌服务故障自动切换(Failover)和负载均衡‌。通过管理虚拟 IP(VIP&#xf…

医学图像分割数据集肺分割数据labelme格式6299张2类别

数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图像分辨率:1024x1024 图片数量(jpg文件个数):6299 标注数量(json文件个数):6299 标注类别数:2 标注类别名称:["leftl…

C语言复习笔记--函数递归

在学习了函数之后,函数递归是我们必然会接触到的课题,下面就让我们看下函数递归相关的知识. 递归是什么? 递归这个词看着就不那么好理解,那么什么是递归呢?递归其实是⼀种解决问题的⽅法,在C语⾔中,递归就是函数自己调用自己. 写⼀个史上最简单的C语⾔递归代码: …

husky的简介以及如果想要放飞自我的解决方案

husky 是一个 Git Hooks 管理工具,它的主要作用是 在 Git 提交(commit)、推送(push)等操作时执行自定义脚本,比如代码检查(Lint)、单元测试(Test)、格式化代码…

侯捷 C++ 课程学习笔记:现代 C++ 中的移动语义与完美转发深度解析

1. 前言:为什么我们需要移动语义? 在侯捷老师的《C11/14/17 新特性详解》课程中,移动语义(Move Semantics)被称作"C近十年来最重要的革新"。传统C中饱受诟病的深拷贝性能问题,在现代C中通过移动语…

23种设计模式-结构型模式-适配器

文章目录 简介场景问题解决方案建立中间转换层关键收益 总结 简介 使接口不兼容的类实现协同工作,通过引入中间层实现客户端接口和服务端接口的兼容。典型场景比如整合第三方类库或遗留系统时保持代码兼容。 场景 假设你正在开发一个股票监控程序。这个程序会下…

美亚科技业绩波动明显:现金流为负,四起未决诉讼涉金额1700万

《港湾商业观察》施子夫 近期,广东美亚旅游科技集团股份有限公司(以下简称,美亚科技)披露第二轮审核问询函的回复。从两轮问询函监管层提出的问题来看,有关美亚科技业绩增长的合理性、募投项目的必要性及合理性、经营…

PyTorch 深度学习实战(21):元强化学习与 MAML 算法

一、元强化学习原理 1. 元学习核心思想 元强化学习(Meta-RL)旨在让智能体快速适应新任务,其核心是通过任务分布学习共享知识。与传统强化学习的区别在于: 对比维度传统强化学习元强化学习目标解决单一任务快速适应任务分布中的…

23中设计模式-迭代器(Iterator)设计模式

迭代器设计模式 🚩什么是迭代器设计模式?🚩迭代器设计模式的特点🚩迭代器设计模式的结构🚩迭代器设计模式的优缺点🚩迭代器设计模式的Java实现🚩代码总结🚩总结 🚩什么是…

Word中公式自动标号带章节编号

(1)插入一行三列的表格,设置宽度分别为0.5,13.39和1.5,设置纵向居中,中间列居中对齐,最右侧列靠右对齐,设置段落如下 (2)插入域代码 【Word】利用域代码快速实…

【Spring AI】基于专属知识库的RAG智能问答小程序开发——功能优化:用户鉴权主体功能开发

系列文章目录 【Spring AI】基于专属知识库的RAG智能问答小程序开发——完整项目(含完整前端后端代码)【Spring AI】基于专属知识库的RAG智能问答小程序开发——代码逐行精讲:核心ChatClient对象相关构造函数【Spring AI】基于专属知识库的R…

[7-01-03].SpringBoot3集成MinIo

MinIO学习大纲 一、Spingboot整合MinIo 第1步&#xff1a;搭建SpringBoot项目&#xff1a; 第2步&#xff1a;引入minio依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi&q…

ISIS-3 LSDB链路状态数据库同步

上一章我们介绍了ISIS的邻居建立关系以及ISIS的路由器角色有哪些,在不同的网络类型当中建立邻居关系有什么不同,并且以实验案例抓包的形式给大家进一步介绍了建立的过程。 这一章我们来介绍ISIS中是如何实现链路状态数据库同步的,与OSPF的链路状态同步有什么不同,在不同网络类…

快速入手-基于Django的Form和ModelForm操作(七)

1、Form组件 2、ModelForm操作 3、给前端表单里在django里添加class相关属性值 4、前端 5、后端form 新增数据处理 6、更新数据处理

Springboot集成Debezium监听postgresql变更

1.创建springboot项目引入pom <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>io.debezium</groupI…

Ubuntu22.04搭建freeradius操作说明

Ubuntu22.04搭建freeradius操作说明 更新依赖库 sudo apt update sudo apt install build-essential sudo apt install libtalloc-dev sudo apt install libssl-dev 按照freeradius sudo apt install freeradius 修改freeradius配置 文件路径如下 /etc/freeradius/3.…

【重装系统】全流程记录,在 MacOS 的电脑上烧录 Ubuntu 启动盘

背景 Ubuntu 无法联网&#xff0c;排查下来应该是网卡驱动的问题&#xff0c;安装驱动的过程中又缺失各种包需要网络&#xff0c;陷入死循环。 全流程以及相关资料 整体流程参考&#xff1a;【史上最全】重装ubuntu20.04系统基本环境配置 烧录启动盘启动盘插入需要重装的服务…

去中心化金融

什么是去中心化金融 去中心化金融&#xff08;Decentralized Finance&#xff0c;简称 DeFi&#xff09;是一种基于区块链技术构建的金融系统&#xff0c;旨在通过去除传统金融机构&#xff08;如银行、证券公司等&#xff09;作为中介&#xff0c;提供各种金融服务。这些服务…

centos 7 部署FTP 服务用shell 脚本搭建

#!/bin/bash# 检查是否以root身份运行脚本 if [ "$EUID" -ne 0 ]; thenecho "请以root身份运行此脚本。"exit 1 fi# 安装vsftpd yum install -y vsftpd# 启动vsftpd服务并设置开机自启 systemctl start vsftpd systemctl enable vsftpd# 配置防火墙以允许F…

VMware启动虚拟机报“另一个程序已锁定文件的一部分,进程无法访问”

解决方案&#xff1a; 1&#xff09;定位到虚拟机磁盘目录&#xff0c;我这里是“E\VM_Disk\CactiEZ\”这个目录&#xff0c;每个人目录不一样&#xff0c;详见上图报错位置 2&#xff09;在这个目录中找到后缀名以“.lck”结尾的目录&#xff0c;将所有以 .lck 结尾的目录删…