PING[ARC2]: Heartbeat failed to connect to standby 'gqtzdb_dg'. Error is 16047

本文记录了一次DataGuard配置过程中遇到的同步问题及其解决过程。主要介绍了如何通过查看错误日志定位到DGID不匹配的问题,并给出了修改db_unique_name参数的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PING[ARC2]: Heartbeat failed to connect to standby 'gqtzdb_dg'. Error is 16047

Posted on 2017-07-03 18:42 会飞的板儿 阅读(94) 评论(0) 编辑 收藏

  Data Guard搭建完毕之后,执行开启归档路径2,结果发现不同步,

SQL> alter system set log_archive_dest_state_2=enable;

  查看错误日志,发现有PING[ARC2]: Heartbeat failed to connect to standby 'gqtzdb_dg'. Error is 16047.的报错:

[oracle@KG-ORA-01 trace]$ tail -100f alert_gqtzdb.log 
Mon Jul 03 18:19:10 2017
Using STANDBY_ARCHIVE_DEST parameter default value as /oradata/gqtzdb/archivelog
ALTER SYSTEM SET log_archive_dest_state_2='ENABLE' SCOPE=BOTH;
Mon Jul 03 18:19:10 2017
PING[ARC2]: Heartbeat failed to connect to standby 'gqtzdb_dg'. Error is 16047.

  接着查看v$archive_dest视图,查看是否能找到原因,结果发现如下报错:

复制代码

SQL> select dest_id,error from v$archive_dest;

   DEST_ID ERROR
---------- -----------------------------------------------------------------
         1
         2 ORA-16047: DGID mismatch between destination setting and target
           database

复制代码

  很明显,DGID不一样,去备库查看参数db_unique_name参数:

SQL> show parameter db_unique_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_unique_name                       string      gqtzdb

  发现db_unique_name参数没有修改,仍然是主库的值,速度改过来,并重启备库:

1

2

3

4

5

6

7

8

9

10

SQL> alter system set db_unique_name='gqtzdb_dg' scope=both;

alter system set db_unique_name='gqtzdb_dg' scope=both

                 *

ERROR at line 1:

ORA-02095: specified initialization parameter cannot be modified

 

 

SQL> alter system set db_unique_name='gqtzdb_dg' scope=spfile;

 

System altered.

  然后再在主库开启归档路径2,在备库运行命令,查看同步状态:

复制代码

SQL> alter database recover managed standby database using current logfile disconnect from session;

Database altered.

SQL> select process,client_process,sequence#,status from v$managed_standby;

PROCESS   CLIENT_P  SEQUENCE# STATUS
--------- -------- ---------- ------------
ARCH      ARCH              0 CONNECTED
ARCH      ARCH              0 CONNECTED
ARCH      ARCH              0 CONNECTED
ARCH      ARCH              0 CONNECTED
RFS       UNKNOWN           0 IDLE
RFS       LGWR             24 IDLE
RFS       UNKNOWN           0 IDLE
RFS       UNKNOWN           0 IDLE
MRP0      N/A              11 APPLYING_LOG

9 rows selected.

转载于:https://my.oschina.net/rootliu/blog/1557755

websocket_tpye = websocket_tls; if(m_init) { m_init = false; _client_tls.clear_access_channels(websocketpp::log::alevel::all);//设置日志级别 _client_tls.clear_error_channels(websocketpp::log::elevel::all);//屏蔽某个级别的日志 _client_tls.init_asio(); _client_tls.start_perpetual(); _client_tls.set_tls_init_handler(bind(&on_tls_init1, hostname.c_str(), ::_1)); client_thread = websocketpp::lib::make_shared<websocketpp::lib::thread>(&client_tls::run, &_client_tls); } websocketpp::lib::error_code ec; client_tls::connection_ptr con = _client_tls.get_connection(uri, ec); if (ec) { QDEBUG<<" could not create connection because:"<<QString::fromStdString(ec.message()); return -1; } metadata_tls = websocketpp::lib::make_shared<connection_metadata_tls>(con->get_handle(), uri); if(QString::fromStdString(password).isEmpty()) { } else { std::string val = "Basic " + base64_encode(QString::fromStdString(devnumber)+":"+QString::fromStdString(password)); con->append_header("Authorization", val); } con->set_open_handler(websocketpp::lib::bind( &connection_metadata_tls::on_open, metadata_tls, &_client_tls, websocketpp::lib::placeholders::_1 )); con->set_fail_handler(websocketpp::lib::bind( &connection_metadata_tls::on_fail, metadata_tls, &_client_tls, websocketpp::lib::placeholders::_1 )); con->set_close_handler(websocketpp::lib::bind( &connection_metadata_tls::on_close, metadata_tls, &_client_tls, websocketpp::lib::placeholders::_1 )); con->set_message_handler(websocketpp::lib::bind( &connection_metadata_tls::on_message, metadata_tls, websocketpp::lib::placeholders::_1, websocketpp::lib::placeholders::_2 )); _client_tls.connect(con); } else {//ws websocket_tpye = websocket_no_tls; if(m_init) { m_init = false; _client_no_tls.clear_access_channels(websocketpp::log::alevel::all); _client_no_tls.clear_error_channels(websocketpp::log::elevel::all); _client_no_tls.init_asio(); _client_no_tls.start_perpetual(); client_thread = websocketpp::lib::make_shared<websocketpp::lib::thread>(&client_no_tls::run, &_client_no_tls); } websocketpp::lib::error_code ec; client_no_tls::connection_ptr con = _client_no_tls.get_connection(uri, ec); if (ec) { QDEBUG<<" could not create connection because:"<<QString::fromStdString(ec.message()); return -1; } metadata_no_tls = websocketpp::lib::make_shared<connection_metadata_no_tls>(con->get_handle(), uri); if(QString::fromStdString(password).isEmpty()) { } else { std::string val = "Basic "+base64_encode(QString::fromStdString(devnumber)+":"+QString::fromStdString(password)); con->append_header("Authorization", val); } con->set_open_handler(websocketpp::lib::bind( &connection_metadata_no_tls::on_open, metadata_no_tls, &_client_no_tls, websocketpp::lib::placeholders::_1 )); con->set_fail_handler(websocketpp::lib::bind( &connection_metadata_no_tls::on_fail, metadata_no_tls, &_client_no_tls, websocketpp::lib::placeholders::_1 )); con->set_close_handler(websocketpp::lib::bind( &connection_metadata_no_tls::on_close, metadata_no_tls, &_client_no_tls, websocketpp::lib::placeholders::_1 )); con->set_message_handler(websocketpp::lib::bind( &connection_metadata_no_tls::on_message, metadata_no_tls, websocketpp::lib::placeholders::_1, websocketpp::lib::placeholders::_2 )); _client_no_tls.connect(con); // websocketpp::connection_hdl hdl=con->get_handle(); // qDebug()<<"111"<<hdl._empty(); // _client_no_tls.ping(hdl,"heartbeat",ec); // SendPing(hdl); } } Linux QT4环境下,如何在此段代码中实现发送ping
最新发布
07-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值