【问题标题】:Mongo Db secondary setupMongodb 辅助设置
【发布时间】:2017-07-23 02:18:19
【问题描述】:

从过去 1 周开始,我正在尝试为我的一个节点 mongodb(3.4.2 版本)设置副本集,但面临多个问题。我的主节点目前有大约 650 GB 的数据,并且每天都在增长 90 GB。几乎一天后,我第一次添加了带有空数据目录的新辅助节点,但由于 oplog 问题滞后太多而失败。下次我尝试手动复制数据。复制后重新启动辅助时它开始给我无法从主同步的错误(没有连接问题我能够ping)。我再次尝试手动复制过程,但这次失败并出现以下错误。由于有线老虎问题与特定的收集文件有关。我再次复制了该文件并重试,但由于同样的问题再次失败。有人可以帮我设置二级吗?随着数据的增长,每天都变得越来越困难,而且我不能长时间保持主节点关闭(在手动复制期间,我会停止主节点中的所有写入)。

2017-03-02T16:08:16.315+0000 E STORAGE [initandlisten] WiredTiger 错误 (-31802) [1488470896:315136][17051:0x7ffdbd3d7dc0],文件:mcse.45trace/collection-16-77564550243012629, WT_SESSION.open_cursor:/app/data/mcse.45trace/collection-16-7756455024301269277.wt:handle-read:pread:未能在偏移量 86474874880 处读取 4096 个字节:WT_ERROR:非特定 WiredTiger 错误

2017-03-02T16:08:16.315+0000 I - [initandlisten] 不变故障:ret 导致状态 UnknownError:-31802:WT_ERROR:在 src/mongo/db/storage/wiredtiger/wiredtiger_session_cache 出现非特定 WiredTiger 错误.cpp 95

【问题讨论】:

    标签: mongodb replicaset


    【解决方案1】:

    如果您可以解决复制滞后的第一个问题,那么您可能会让一切正常运行。看看Troubleshooting Replica Sets guide,有一些有用的建议:

    复制滞后的可能原因包括:

    网络延迟

    检查集合成员之间的网络路由,确保没有丢包或网络路由问题。
    使用包括ping 在内的工具来测试集合成员之间的延迟,并使用traceroute 来公开数据包网络端点的路由。

    磁盘吞吐量

    如果辅助服务器上的文件系统和磁盘设备无法像主服务器一样快速地将数据刷新到磁盘,那么辅助服务器将难以保持状态。与磁盘相关的问题在多租户系统(包括虚拟化实例)上非常普遍,并且如果系统通过 IP 网络访问磁盘设备(亚马逊的 EBS 系统就是这种情况),则可能是暂时的。
    使用系统级工具评估磁盘状态,包括iostatvmstat

    并发

    在某些情况下,主服务器上长时间运行的操作可能会阻止辅助服务器上的复制。为获得最佳结果,请将 write concern 配置为要求确认复制到辅助节点。如果复制无法跟上写入负载,这可以防止写入操作返回。
    使用database profiler 查看是否存在与延迟发生率相对应的慢速查询或长时间运行的操作。

    适当的写关注

    如果您正在执行需要对主节点进行大量写入的大型数据摄取或批量加载操作,尤其是使用unacknowledged write concern,则辅助节点将无法以足够快的速度读取 oplog 以跟上更改。
    为防止这种情况发生,请在每 100、1,000 或其他间隔后请求 write acknowledgement write concern,以便为辅助节点提供赶上主节点的机会。
    欲了解更多信息,请参阅:
    Write Concern
    Replica Set Write Concern
    Oplog Size

    【讨论】:

      【解决方案2】:

      WiredTiger 错误 (-31802) 文件:xxx.wt

      根据SERVER-31076 错误报告,这可能与损坏的.wt 文件(例如WiredTiger.wt/WiredTiger.turtle)有关。

      尝试运行:

      mongod --repair --dbpath /path/to/data/db
      

      还要确保所有data/db 文件都具有正确的读写权限。

      【讨论】:

        猜你喜欢
        • 2011-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-04
        相关资源
        最近更新 更多