flushRouterConfig
定义
flushRouterConfig
flushRouterConfig
将分分片集群的缓存路由表标记为过时,导致请求路由表的下一个操作刷新缓存。 路由表缓存的管理通常由集群自动处理。 您应该只需要在特定实例中手动运行flushRouterConfig
命令,如注意事项中所示。
注意
执行 movePrimary
或dropDatabase
命令后,不再需要运行flushRouterConfig
。 现在,这两个命令会在运行时根据需要自动刷新分分片的集群的路由表。
兼容性
此命令可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
重要
无服务器实例不支持此命令。 有关更多信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
语法
flushRouterConfig
可用于mongos
和mongod
实例,语法如下:
在集合命名空间参数中传递时,刷新指定集合的缓存:
db.adminCommand( { flushRouterConfig: "<db.collection>" } ) 在数据库命名空间参数中传递时,刷新指定数据库及其所有collection的缓存:
db.adminCommand( { flushRouterConfig: "<db>" } ) 在不带参数运行或传入非字符串标量值(例如
1
):db.adminCommand("flushRouterConfig") db.adminCommand( { flushRouterConfig: 1 } )
Considerations
通常,作为正常操作的一部分,分片集群的路由表会根据需要自动刷新。 但是,您应该在运行flushRouterConfig
命令之前手动发出db.collection.getShardDistribution()
命令。这可确保命令返回最新信息。