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日

相关文章

  • Java Apache Shiro安全框架快速开发详解流程

    Java Apache Shiro安全框架快速开发详解流程 什么是Apache Shiro Apache Shiro是一个跨应用程序、支持单点登录、支持身份验证和访问控制框架,可以解决应用程序的安全问题。Shiro的核心是将应用程序的用户身份、安全验证、访问控制等功能组合起来实现一个完整的安全框架。使用Shiro开发的应用程序能够快速、安全地集成身份验证、安…

    database 2023年5月22日
    00
  • yii2 下的redis常用命令集合

    <?php \Yii::$app->redis->set(‘user’,’aaa’); \Yii::$app->redis->set(‘user2′,’bbb’); \Yii::$app->redis->set(‘user3′,’ccc’); \Yii::$app->redis->set(‘user4’,…

    Redis 2023年4月16日
    00
  • PHP 使用MySQL管理Session的回调函数详解

    PHP 使用MySQL管理Session的回调函数可以让我们更加灵活地控制Session,可以传入自己的回调函数来实现Session数据的持久化到MySQL数据库中,下面是详细的攻略: 准备工作 在使用这个技术之前,我们需要确保自己已经正确设置好PHP和MySQL的环境。在这里,假设您已经知道如何使用PHP和MySQL,并且已经创建好了一个名为user_in…

    database 2023年5月21日
    00
  • 如何在Python中使用MongoDB数据库?

    以下是在Python中使用MongoDB数据库的完整使用攻略。 使用MongoDB数据库的前提条件 在使用Python连接MongoDB数据库之前,确保已经安装了MongoDB数据库,并已经创建使用数据库和集合,同时需要安Python的驱动程序,例如pymongo。 步骤1:导入模块 在Python中使用pymongo模块连接MongoDB数据库。以下是导入…

    python 2023年5月12日
    00
  • MySQL 日志相关知识总结

    MySQL 日志相关知识总结攻略 MySQL 是目前使用最广泛的关系型数据库管理系统之一,在 MySQL 中,日志是非常重要的一部分,可以帮助我们更好地管理和维护数据库。本文将介绍 MySQL 中几种常见的日志以及如何使用它们。 1. 慢查询日志 慢查询日志是 MySQL 中一种非常重要的日志,它可以记录执行时间超过一定阈值的 SQL 语句,帮助我们找出数据…

    database 2023年5月22日
    00
  • linux下判断文件和目录是否存在的方法(总结)

    当我们在进行Linux命令行操作时,经常需要判断一个文件或者目录是否存在。本篇攻略将整理总结Linux下判断文件和目录是否存在的方法,希望对大家有所帮助。 检查文件是否存在 使用ls命令查看当前文件夹下的文件列表,判断文件是否存在 ls /path/to/file.txt 使用test -f命令判断文件是否存在,返回0表示存在,返回1表示不存在 if tes…

    database 2023年5月22日
    00
  • Android开发笔记之: 数据存储方式详解

    Android开发笔记之: 数据存储方式详解 一、前言 在Android应用开发中,数据是非常重要的一个方面,Android为开发者们提供了多种数据存储方式。本篇博客将系统全面介绍Android数据存储方式,以供Android开发者们快速了解数据存储的方法、应用场景,并可快速将其应用到实践中。 二、Android数据存储方式 1. 文件存储 文件存储是最常见…

    database 2023年5月22日
    00
  • MySQL算术/比较/逻辑/位/运算符与正则举例详解

    MySQL算术运算符 MySQL提供了常见的算术运算符,包括加、减、乘、除和取余。 运算符 描述 + 加法 – 减法 * 乘法 / 除法 % 取余操作 示例代码 SELECT 10+5; — 输出 15 SELECT 10-5; — 输出 5 SELECT 10*5; — 输出 50 SELECT 10/5; — 输出 2 SELECT 10%3; …

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