MongoDB 是最受欢迎的数据库之一,也是最容易设置的 NoSQL 数据库之一。在部署 MongoDB 之前,作为开发人员需要知道一些事~
启用身份验证和授权
安全性对于数据库至关重要,如果没有启用授权的情况下,启动了 MongoDB,同时 MongoDB 开放了公网访问,任何人都可以直连你的数据库获取数据,只需要在配置文件添加一些配置,即可确保数据受到保护。也可以配置 MongoDB 以利用本机 LDAP 或 Kerberos 进行身份验证。设置身份验证和授权是确保 MongoDB 数据库安全的最简单的方法之一。最重要的配置选项是打开授权,它支持用户和角色,并强制进行身份验证,并具有访问数据的适当角色。
security:
authorization: enabled
keyfile: /path/to/our.keyfile
连接到副本集、分片集而不是单节点
MongoDB 的驱动程序支持直连到副本集、分片集或单节点。通常在代码里固定连接一个节点,当一个节点发生故障时会发生什么?如果应用程序配置中没有高可用性的连接字符串,那么就会失去 MongoDB 副本集的主要优势。下面是一些例子:
单个节点:
client = MongoClient('mongodb://hostabc.example.com:27017/?authSource=admin')
副本集:
client = MongoClient('mongodb://hostabc.example.com:27017,hostdef:27017,hostxyz.example.com/?replicaSet=foo&authSource=admin')
复制≠备份
MongoDB 复制虽然功能强大且容易设置,但不能替代备份策略。可能有人会觉得,他们在数据中心中的副本集成员足以应对故障导致的数据丢失等情况,如果有人删库了,这种情况下只有备份能救你了。
备份对于 MongoDB 的重要性与其他数据库一样,备份工具有 mongodump、mongoexport、Percona Backup for MongoDB 支持按时间点恢复,操作日志备份,热备,完整备份和增量备份。可以从副本集中的任何节点运行备份。最佳做法是从辅助节点运行备份,这样不会对主节点施加不必要的压力。除了上述方法之外,您还可以通过快照进行备份,以确保 MongoDB 数据库的一致性