对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs 菜单

flushRouterConfig(数据库命令)

flushRouterConfig

flushRouterConfig将分分片集群的缓存路由表标记为过时,导致请求路由表的下一个操作刷新缓存。 路由表缓存的管理通常由集群自动处理。 您应该只需要在特定实例中手动运行flushRouterConfig命令,如注意事项中所示。

注意

执行movePrimary或dropDatabase命令后,不再需要运行flushRouterConfig 。 现在,这两个命令会在运行时根据需要自动刷新分分片的集群的路由表。

此命令可用于以下环境中托管的部署:

  • MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务

flushRouterConfig可用于mongos和mongod实例,语法如下:

  • 在集合命名空间参数中传递时,刷新指定集合的缓存:

    db.adminCommand(
    {
    flushRouterConfig: "<db.collection>"
    }
    )
  • 在数据库命名空间参数中传递时,刷新指定数据库及其所有collection的缓存:

    db.adminCommand(
    {
    flushRouterConfig: "<db>"
    }
    )
  • 在不带参数运行或传入非字符串标量值(例如 1 ):

    db.adminCommand("flushRouterConfig")
    db.adminCommand(
    {
    flushRouterConfig: 1
    }
    )

flushRouterConfig 命令需要对 cluster资源执行 flushRouterConfig权限动作。

具有以下角色的用户也可以执行此权限操作:

通常,作为正常操作的一部分,分片集群的路由表会根据需要自动刷新。 但是,您应该在运行flushRouterConfig 命令之前手动发出db.collection.getShardDistribution() 命令。这可确保命令返回最新信息。