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