AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-12009

jabley's questions

Martin Hope
jabley
Asked: 2010-01-19 03:35:26 +0800 CST

断电后的 MySQL 复制问题

  • 6

在我们的数据中心停电后,从属 MySQL 数据库正在苦苦挣扎。

这是其中一位奴隶的日志:

100118 10:05:56 [Note] Slave I/O thread: connected to master 'repl@db1:3306',  replication started in log 'bin-log.004712' at position 724207814
100118 10:05:56 [ERROR] Error reading packet from server: Client requested master to start replication from impossible position ( server_errno=1236)
100118 10:05:56 [ERROR] Got fatal error 1236: 'Client requested master to start replication from impossible position' from master when reading data from binary log
100118 10:05:56 [Note] Slave I/O thread exiting, read up to log 'bin-log.004712', position 724207814

控制台显示了更多细节:

mysql> show slave status \G;
*************************** 1. row ***************************
             Slave_IO_State:
                Master_Host: db1
                Master_User: repl
                Master_Port: 3306
              Connect_Retry: 10
            Master_Log_File: bin-log.004712
        Read_Master_Log_Pos: 724207814
             Relay_Log_File: mysqld-relay-bin.000105
              Relay_Log_Pos: 98
      Relay_Master_Log_File: bin-log.004712
           Slave_IO_Running: No
          Slave_SQL_Running: Yes
            Replicate_Do_DB: mmplive1,mmpjcr,fui
        Replicate_Ignore_DB:
         Replicate_Do_Table:
     Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
                 Last_Errno: 0
                 Last_Error:
               Skip_Counter: 0
        Exec_Master_Log_Pos: 724207814
            Relay_Log_Space: 98
            Until_Condition: None
             Until_Log_File:
              Until_Log_Pos: 0
         Master_SSL_Allowed: No
         Master_SSL_CA_File:
         Master_SSL_CA_Path:
            Master_SSL_Cert:
          Master_SSL_Cipher:
             Master_SSL_Key:
      Seconds_Behind_Master: NULL
1 row in set (0.00 sec)

ERROR:
No query specified

查看 master 上的 bin 日志,我们有:

-rw-rw---- 1 mysql mysql  724200412 Jan 18 09:22 bin-log.004712
-rw-rw---- 1 mysql mysql       1904 Jan 18 09:27 bin-log.index
-rw-rw---- 1 mysql mysql    5046830 Jan 18 11:22 slow-log
-rw-rw---- 1 mysql mysql  198249613 Jan 18 11:24 bin-log.004713
  1. Slave 状态显示 Exec_Master_Log_Pos 和 Read_Master_Log_Pos 都是 724207814,对于当时的二进制日志 bin-log.004712。据我了解,这个值是二进制日志文件中的字节位置。
  2. 该 bin-log.004712 文件只有 724200412 字节,因此从站认为他们完成的工作比实际保存在文件中的工作多 7402 字节(位于 ext3 fs、RAID-10、RHEL5 上)。因此有关不可能的日志位置等的错误消息。

修复奴隶的最佳方法是什么?

我正在考虑的选项:

  1. 将每个从站设置为指向下一个 bin-log 文件 (bin-log.004713) 中的位置 0 并让它们离开,但我不确定这有多安全,或者可能会丢失多少数据。
  2. 我是否需要进行完整备份和恢复(由于 InnoDB 表上的表锁定而假定相关的停机时间)?如果可能的话,我想避免这种情况。

更新:

我错过了另一个选择:将每个从属执行位置向后一点,以便它尝试复制它已经从 bin-log.004712 处理的命令。

mysql replication disaster-recovery mysql-replication
  • 2 个回答
  • 2924 Views
Martin Hope
jabley
Asked: 2009-07-29 14:28:49 +0800 CST

使托管应用程序对 BGP 故障具有弹性

  • 5

我的公司通过专门的托管服务提供商为其客户构建各种网站。

该托管服务提供商意外关闭了负责为小范围 IP 发布边界网关协议 (BGP) 的设备。由于我很幸运,其中一个 IP 恰好是分配给负载均衡器的公共 IP 地址,用于我们客户的所有 Web 流量。结果,该范围的 BGP 路由通告被撤回,并很快在全球范围内变得无法访问。

托管服务提供商在收到警报后就解决了这个问题,但这让我们损失了超过 15 分钟的停机时间,我们急于在未来避免这种情况。

  1. 我们如何监控这个?它比我们的普通监控低很多,它只检查 apache httpd 状态、JVM 等。我们有内部监控,使用 Advent AppEngine 来检查服务器进程、apache 服务器状态响应、应用程序主页响应。

  2. 我们是否能够采取措施自己解决这个问题?例如,通过某种方式发布我们自己的 BGP 公告?

我很高兴得到指针/建议阅读,而不仅仅是直接的答案,因为这个级别的堆栈对我来说是全新的,我想填补我的知识空白。

networking monitoring network-monitoring bgp
  • 6 个回答
  • 359 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve