云服务器内容精选

  • 集群实例 集群实例的shard节点和config节点均采用三节点副本集架构。当其中的某个节点发生故障后,系统会使用另一个正常节点替换故障节点继续提供服务,并对故障节点进行检查与修复。该过程对用户完全透明,可能会产生1次30秒内的连接闪断,建议您的应用程序添加自动重连机制。 图1 集群实例拓扑图 集群实例的dds mongos节点采用单节点架构,当某个dds mongos节点发生故障,该节点相关服务将不可用。推荐您使用Connection String URI连接所有dds mongos节点,请勿连接单个dds mongos节点。当使用Connection String URI连接所有dds mongos节点时,如果某个dds mongos节点发生故障,客户端能自动进行故障切换,将请求分散到状态正常的dds mongos节点上。连接命令示例: mongo "mongodb://rwuser:xxxxxxxx@192.168.95.167:8635,192.168.92.43:8635/test?authSource=admin" 使用Connection String URI连接兼容MongoDB 3.4版本的集群实例时,建议使用4.0以上的MongoDB客户端,否则会出现报错。 图2 报错信息
  • 问题描述 使用如下命令连接DDS实例时报错。 ./mongo "mongodb://rwuser:xxxxxx@192.168.0.45:8635,192.168.0.96:8635/test?authSource=admin&replicaSet=replica" 报错信息如下: MongoDB shell version v4.0.3 connecting to: mongodb://192.168.0.45:8635,192.168.0.96:8635/test?authSource=admin&replicaSet=replica 2021-11-05T05:52:53.717+0000 I NETWORK [js] Starting new replica set monitor for replica/192.168.0.45:8635,192.168.0.96:8635 2021-11-05T05:52:53.718+0000 I NETWORK [ReplicaSetMonitor-TaskExecutor] Successfully connected to 192.168.0.45:8635 (1 connections now open to 192.168.0.45:8635 with a 5 second timeout) 2021-11-05T05:52:53.718+0000 I NETWORK [js] Successfully connected to 192.168.0.96:8635 (1 connections now open to 192.168.0.96:8635 with a 5 second timeout) Implicit session: session { "id" : UUID("5945d2a5-8275-4e3c-b06f-632f062a2ead") } MongoDB server version: 4.0.3 2021-11-05T05:52:53.722+0000 I NETWORK [js] Marking host 192.168.0.96:8635 as failed :: caused by :: Location50692: can't authenticate against replica set node 192.168.0.96:8635 :: caused by :: Error preflighting normalization: U_STRINGPREP_PROHIBITED_ERROR 2021-11-05T05:52:53.722+0000 I NETWORK [js] Successfully connected to 192.168.0.45:8635 (1 connections now open to 192.168.0.45:8635 with a 0 second timeout) 2021-11-05T05:52:53.723+0000 I NETWORK [js] Marking host 192.168.0.45:8635 as failed :: caused by :: Location50692: can't authenticate against replica set node 192.168.0.45:8635 :: caused by :: Error preflighting normalization: U_STRINGPREP_PROHIBITED_ERROR 2021-11-05T05:52:53.724+0000 I NETWORK [js] Marking host 192.168.0.96:8635 as failed :: caused by :: Location50692: can't authenticate against replica set node 192.168.0.96:8635 :: caused by :: Error preflighting normalization: U_STRINGPREP_PROHIBITED_ERROR 2021-11-05T05:52:53.725+0000 I NETWORK [js] Marking host 192.168.0.45:8635 as failed :: caused by :: Location50692: can't authenticate against replica set node 192.168.0.45:8635 :: caused by :: Error preflighting normalization: U_STRINGPREP_PROHIBITED_ERROR 2021-11-05T05:52:53.725+0000 E QUERY [js] Error: can't authenticate against replica set node 192.168.0.45:8635 :: caused by :: Error preflighting normalization: U_STRINGPREP_PROHIBITED_ERROR : DB.prototype._authOrThrow@src/mongo/shell/db.js:1685:20 @(auth):6:1 @(auth):1:2 exception: login failed
  • 问题描述 使用Java驱动程序连接DDS实例时报错,报错信息如下。 org.springframework.data.mongodb.UncategorizedMongoDbException: Timeout while receiving message; nested exception is com.mongodb.MongoSocketReadTimeoutException: Timeout while receiving message
  • 问题描述 使用如下命令连接DDS副本集实例时报错。 ./mongo mongodb://rwuser:xxxxxxxxxxx@192.168.168.116:8635,192.168.200.147:8635/test?authSource=admin&replicaSet=replica 报错信息如下: FailedToParse: Cannot list multiple servers in URL without 'replicaSet' option try 'mongo --help' for more information.
  • 问题描述 使用如下命令连接3.4版本的DDS实例时报错。 mongo --host 192.168.64.201 --port 8635 -u rwuser -p xxxxxxxxx --authenticationDatabase admin --ssl --sslCAFile /root/ca.crt --sslAllowInvalidHostnames 报错信息如下: MongoDB shell version v3.4.17 connecting to: mongodb://192.168.64.201:8635/ 2019-09-19T09:45:48.168+0800 W NETWORK [thread1] Failed to connect to 192.168.64.201:8635 after 5000ms milliseconds, giving up. 2019-09-19T09:45:48.168+0800 E QUERY [thread1] Error: couldn't connect to server 192.168.64.201:8635, connection attempt failed : connect@src/mongo/shell/mongo.js:240:13 @(connect):1:6 exception: connect failed
  • 问题描述 使用如下命令连接DDS实例时报错。 mongo --host 192.168.168.116 --port 8635 -u rwuser -p xxxxxxxxx --authenticationDatabase admin --ssl --sslCAFile /root/ca.crt --sslAllowInvalidHostnames 报错信息如下: MongoDB shell version v3.4.17 connecting to: mongodb://192.168.168.116:8635/ 2019-09-19T09:39:24.306+0800 W NETWORK [thread1] The server certificate does not match the host name. Hostname: 192.168.168.116 does not match CN: 172.16.2.65 MongoDB server version: 4.0.3 WARNING: shell and server versions do not match 2019-09-19T09:39:24.329+0800 E QUERY [thread1] Error: Authentication failed. : DB.prototype._authOrThrow@src/mongo/shell/db.js:1461:20 @(auth):6:1 @(auth):1:2 exception: login failed
  • 问题描述 使用如下命令连接DDS实例时报错。 ./mongo --host 192.168.1.6 --port 8635 -u rwuser -p xxxxxxxxx --authenticationDatabase admin --ssl --sslCAFile /root/ca.crt –sslAllowInvalidHostnames 报错信息如下: MongoDB shell version v3.4.17 connecting to: mongodb://192.168.1.6:8635/ 2019-09-19T09:38:36.954+0800 W NETWORK [thread1] Failed to connect to 192.168.1.6:8635, in(checking socket for error after poll), reason: No route to host 2019-09-19T09:38:36.954+0800 E QUERY [thread1] Error: couldn't connect to server 192.168.1.6:8635, connection attempt failed : connect@src/mongo/shell/mongo.js:240:13 @(connect):1:6 exception: connect failed
  • 排查思路 检查DDS实例与E CS 是否在同一个区域、同一个安全组和子网内。 登录DDS控制台,单击实例名称,在基本信息页面查看DDS实例所在的区域、VPC、安全组和子网信息。 图1 查看DDS实例网络信息 登录弹性云服务器控制台,单击云服务器名称,在基本信息页面,查看当前ECS所在的区域、VPC、安全组和子网信息。 图2 查看ECS网络信息 检查实例的端口是否正确,并通过curl命令检查端口是否可用。 单击实例名称,在基本信息页面查看当前实例的端口信息。 图3 查看实例端口 通过curl命令确认端口是否可用,示例: curl 192.168.1.6:8635 提示“It looks like you are trying to access MongoDB over HTTP on the native driver port.”表示可以正常连接该IP地址,且8635端口可以正常通信。 图4 回显信息
  • 处理方法 方法一:关闭SSL连接,使用非SSL方式下的命令连接实例。 ./mongo --host 192.168.168.182 --port 8635 -u rwuser -p xxxxxxxxxx --authenticationDatabase admin 方法二:通过SSL的方式连接实例。 通过SSL方式连接实例需要下载SSL证书,将证书上传到ECS目录下(示例:/root/ca.crt),然后使用SSL方式下的命令连接实例。 您可以在DDS控制台界面,单击实例名称,在“连接管理”页签的“SSL”处,单击,下载SSL证书。 ./mongo --host 192.168.168.182 --port 8635 -u rwuser -p xxxxxxxxxx --authenticationDatabase admin --ssl --sslCAFile /root/ca.crt --sslAllowInvalidHostnames 图2 连接成功
  • DDS的备份是如何收费的 文档数据库服务所有的全量备份和增量备份都存储在 对象存储服务 上,不占用用户购买实例的存储空间,DDS提供了和实例磁盘大小相同的部分免费存储空间,用于存放您的备份数据。 自动备份的生命周期和实例的生命周期相同。如果实例删除,那么自动备份也会同时被删除,如果您有手动备份,手动备份不会自动删除,具体请参见删除手动备份。 举个例子,假如用户购买实例时,存储空间选择了200GB,那么所有的备份空间合计,只有超过200GB才开始计费,前200GB是免费的。对于超过免费容量的存储空间,目前仅支持按需计费,用多少收取多少费用,具体收费请参见计费说明。 免费的存储空间是在收取了数据盘的存储空间费用后赠送的,数据盘存储空间冻结以后不再收费,因此不再享受备份赠送空间。 用户实例冻结后,将没有免费的存储空间,会导致实例原有备份收费。 如果选择解冻实例,将恢复免费的存储空间。 如果直接删除冻结的实例,原有的自动备份将会同时被删除,原有的手动备份需要手动删除,删除后备份空间不会继续收费。 父主题: 备份与恢复
  • DDS是否支持添加节点 DDS的集群和副本集实例均支持添加节点,单节点由于架构比较特殊,不支持添加节点。 集群实例 集群实例由dds mongos(路由)、Config(配置)和Shard(分片)节点组成。其中,Shard节点和dds mongos节点支持添加节点,Config节点不支持添加节点。 具体操作请参见添加集群实例的节点。 副本集实例 副本集实例由主节点、备节点和隐藏节点组成。系统默认提供的是三节点的实例,您可以根据需要新增节点至五节点或七节点副本集,新增的节点均为Secondary节点。 具体操作请参见添加副本集实例的节点。 父主题: 扩容及规格变更
  • 关闭Balancer 通过Mongo Shell连接集群实例。 在dds mongos节点命令行中,切换至config数据库。 use config 执行如下命令,查看Balancer运行状态。 while( sh.isBalancerRunning() ) { print("waiting..."); sleep(500); } 如返回值为空,则表示Balancer没有处于执行任务的状态,此时可执行下一步的操作,关闭Balancer 。 如返回值为waiting,则表示Balancer正在执行块迁移,此时不能执行关闭Balancer的命令,否则可能引起数据不一致。 如执行步骤 3的命令后返回的值为空,可执行关闭Balancer命令。 sh.stopBalancer()
  • 创建DDS实例时,如何选择规格和节点 实例规格越高,性能越好。DDS支持的实例规格请参见数据库实例规格。 相同实例规格下,节点数越多,性能越好。性能相关信息请参见性能白皮书。 建议根据业务实际的测试数据选择规格,并考虑可靠性冗余,和未来业务增长,适当预留一些资源。 对于集群实例,根据经验,单核CPU支持16GB数据时性能较好。 对于副本集实例,使用快速购买方式,我们会向您推荐多数用户选择的配置。详情请参见快速购买副本集实例。 父主题: 创建与删除
  • DDS和GeminiDB Mongo有什么区别 文档数据库服务(DDS)完全兼容社区版MongoDB协议,提供安全、高可用、高可靠、弹性伸缩和易用的数据库服务,同时提供一键部署、弹性扩容、容灾、备份、恢复、监控和告警等功能,主要面向数据规模较小,性能要求一般的业务场景。更多DDS信息请参见产品简介。 GeminiDB Mongo,也称增强版MongoDB,是基于华为自主研发的计算存储分离架构的分布式NoSQL数据库服务。100%兼容MongoDB接口,并提供高性能、高可靠的优势和企业级服务。更多GeminiDB Mongo信息请参见产品简介。 父主题: 产品咨询
  • 解决方案 DDS支持实例级别和节点级别的指标监控,需要根据监控指标支持的维度在告警规则页面设置对应的维度。不同的指标他的维度是不同,详情请参见文档数据库支持的监控指标。 例如:CPU使用率支持的监控对象类型为:文档数据库集群实例下的dds mongos节点、文档数据库实例下的主节点和文档数据库实例下的备节点。 那么在 云监控服务 界面配置告警规则时,维度需要选择“文档数据库实例-文档数据库节点”,就可以在“告警策略”中查看到CPU使用率了。 图1 配置监控维度