面试题答案
一键面试常见方法及命令
- db.collection.validate()
- 命令:
db.collection.validate()
- 适用场景:用于验证单个集合的数据完整性。当怀疑某个集合可能存在数据损坏、元数据问题或结构异常时使用。例如,在进行数据迁移、版本升级后,对特定集合的数据进行完整性检查。
- 命令:
- db.validateDatabase()
- 命令:
db.validateDatabase()
- 适用场景:验证整个数据库的完整性。在数据库出现一般性故障,或者对整个数据库状态存疑时使用,如在数据库服务器重启后,对所有集合和数据库元数据进行全面验证。
- 命令:
- replSetGetStatus
- 命令:
rs.status()
(在副本集成员上执行) - 适用场景:用于获取副本集的状态信息,包括各个成员的健康状态、同步状态等。可以间接验证副本集的数据同步是否正常。当关注副本集整体的运行状况,确保数据在各成员间正确复制和同步时使用。
- 命令:
- db.runCommand( { repairDatabase: 1 } )
- 命令:
db.runCommand( { repairDatabase: 1 } )
- 适用场景:不仅验证数据库,还尝试修复发现的问题。一般在数据出现严重问题,如数据库文件损坏,且其他验证方法已确认问题存在,需要尝试自动修复时使用。不过使用该命令可能会耗费较长时间和资源。
- 命令: