linux系统 配置DataGuard时报ORA-12528错误的解决办法

当配置Linux系统下Oracle数据库的DataGuard时,有时会遇到ORA-12528错误,这是因为监听器没有被正确设置引起的。本文将详细介绍如何解决这个问题。

问题描述

在配置Oracle DataGuard时,部署完主库,建立归档传输服务,配置好主库的tnsnames和listener.ora文件后,尝试在备库的tnsnames中添加主库的模式为log_archive_dest的连接信息,使用tnsping命令进行连接测试,出现以下错误信息:

TNS-12541: TNS没能成功建立到目标计算机的连接,因为该计算机拒绝了连接请求

此时,在备库的alert日志文件中会出现以下错误信息:

ORA-12528: TNS:listener: all appropriate instances are blocking new connections

解决方案

针对上述问题,可以按照以下步骤进行解决:

第一步:确认监听器的状态

确定主库上的监听器是否正常运行,可以使用以下命令查看监听器的状态:

lsnrctl status LISTENER

如果监听器状态正常,会看到如下信息:

Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Listener Parameter File ".../network/admin/listener.ora"
Listener Log File ".../diag/tnslsnr/your_host/listener/alert/log.xml"
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
  Instance "+ASM", status READY, has 1 handler(s) for this service...
Service "ORCL" has 1 instance(s).
  Instance "ORCL", status READY, has 1 handler(s) for this service...
The command completed successfully

如果监听器状态为UNKNOWN或者READY,说明监听器已经启动,可以进行下一步操作。

第二步:检查tnsnames.ora文件

确保备库tnsnames.ora文件中主库连接信息配置正确,特别是log_archive_dest参数的正确配置。

#格式如下(在tnsnames.ora中添加格式):
[oracle@bac-01 ~]$ cat tnsnames.ora
....
....
orcl =
  (DESCRIPTION = + 
    (ADDRESS_LIST = + 
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521)) +
    ) +
    (CONNECT_DATA = + 
      (SERVICE_NAME = orcl) + 
    ) + 
    (LOG_ARCHIVE_DEST = (SERVICE= ora11g) + 
      (SERVICE_NAME = orcl) + 
      (LGWR = true) + 
      (NET_TIMEOUT = 30) + 
      (USE_SHMEM = true) + 
      (ASYNC = false) + 
      (VALID_FOR = (ONLINE_LOGFILES,PRIMARY_ROLE))
    )
  )

第三步:重启监听器

如果以上两步没有解决问题,可能需要重启监听器。可以使用以下命令来重新启动监听器:

lsnrctl stop LISTENER
lsnrctl start LISTENER

第四步:检查主库参数

如果以上三步还不能解决问题,可以检查主库的参数设置是否正确。如果主库未正确配置DataGuard参数,可能导致监听器无法接受新的连接请求。可以使用以下命令来检查主库参数设置:

SQL> show parameter standby

确保以下参数设置正确:

LOG_ARCHIVE_DEST_STATE_2 = ENABLE
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=BOTH;

示例说明

示例一

其中一个用户在配置DataGuard时遇到了进程未启动完成,这时无法完成切换。根据以上解决方法,在检查监听器状态,检查tnsnames文件时,需要保证当前的网络状况没有出现问题。可以在备库通过tnsping命令测试能否连通主库,在主库检查监听器状态是否为READY。如果还无法解决问题,可以考虑在备库和主库上重新启动监听器。最终可以确认主库参数设置是否正确,并进行修改。通过以上的解决方法,该用户成功地解决了进程未启动完成的问题。

示例二

另一个用户在配置DataGuard时遇到了ORA-12528错误。根据以上解决方法,在经过以上三步操作后,仍然没有解决问题。于是该用户检查了主库参数设置,发现主库没有正确配置DataGuard参数,针对该问题进行了修改。最终该用户成功地解决了ORA-12528错误。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux系统 配置DataGuard时报ORA-12528错误的解决办法 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • SQL 删除重复数据

    当数据库表中出现重复数据时,我们通常需要删除其中的某些记录,以便保证数据的准确性和完整性。下面将介绍如何使用SQL语言删除重复数据的完整攻略,包括去重分组、使用子查询、使用临时表等方法。 1.使用去重分组 去重分组是检索表中重复数据的最简单方法之一。要使用去重分组来删除重复数据,可以按照如下步骤进行操作: 找到列中的重复值:使用SELECT语句选择重复的列,…

    database 2023年3月27日
    00
  • SqlServer触发器详解

    SqlServer触发器详解 触发器是一种特殊的SQL Server对象,它对数据库进行操作时会自动触发。触发器通常用于在数据库中某些操作发生时自动执行一些逻辑处理。在本文中,我们将详细介绍SqlServer触发器并提供相关示例。 SqlServer触发器基础 SqlServer触发器类型 SqlServer触发器分为两类: DML触发器:在表的数据进行增删…

    database 2023年5月21日
    00
  • Mysql主从复制(master-slave)实际操作案例

    下面是Mysql主从复制实际操作案例的完整攻略。 什么是主从复制(master-slave)? MySQL主从复制是指将一个MySQL主库上的数据同步到一个或多个MySQL从库的过程。在主从复制中,更新发生在主库上,然后主库将更新的数据传输到一个或多个从库上,从而实现主从复制。 主从复制实际操作步骤 1. 配置主库 首先需要在主库(即需要被复制的MySQL服…

    database 2023年5月22日
    00
  • Redis持久化RDB和AOF优缺点是什么,怎么实现的?我应该用哪一个?

      原文http://www.ymq.io/2018/03/24/redis/   Redis是一种高级key-value数据库。数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务器。 Redis为了保证效…

    Redis 2023年4月11日
    00
  • python的mysqldb安装步骤详解

    下面我将详细讲解“Python的MySQLdb安装步骤详解”的完整攻略。 1. 安装MySQL服务器和客户端组件 在安装MySQLdb之前,首先需要安装MySQL服务器和客户端组件。MySQL可以通过官方网站提供的安装包进行下载和安装。安装方法可以参考MySQL官方文档,文档链接如下: https://dev.mysql.com/doc/mysql-inst…

    database 2023年5月22日
    00
  • oracle定时备份压缩的实现步骤

    以下是实现步骤的完整攻略: 1.准备工作 确认所需要备份的数据库的SID和Oracle实例名称 创建备份目录,以存放备份文件 检查服务器是否已经安装了需要的压缩工具(如gzip、tar等) 2.添加定时备份脚本 创建一个shell脚本,并命名为backup.sh。 在脚本中启动Oracle实例,使用expdp命令将数据库导出并压缩到备份目录下。 关闭Orac…

    database 2023年5月22日
    00
  • Oracle如何获取数据库系统的当前时间

    获取Oracle数据库系统的当前时间可以使用两种方式:使用SQL函数和使用PL/SQL代码。 使用SQL函数获取当前时间 可以使用SQL函数获取当前时间。常见的SQL函数包括SYSDATE、SYSTIMESTAMP和LOCALTIMESTAMP等。 使用SYSDATE函数获取当前时间 SYSDATE函数返回当前日期和时间。可以使用SELECT语句获取当前时间…

    database 2023年5月21日
    00
  • SQL Server连接失败错误及解决第4/5页

    SQL Server连接失败错误及解决第 4 页 在SQL Server连接时可能会出现连接失败的情况,这时需要查看错误信息来确定具体的错误原因。在这篇攻略中,我们介绍了解决连接失败错误的具体步骤。 1.1 确认SQL Server是否启用 当 SQL Server 未启动时,连接尝试将会失败。需要打开“SQL Server Configuration Ma…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部