华为云用户手册

  • 场景示例:核对资源用量是否与实际相符 假设用户在2023/04/08 10:09:06购买了一个按需计费GeminiDB Mongo实例,并在2023/04/08 12:09:06时刻将其删除。 GeminiDB Mongo实例流水账单 按需计费GeminiDB Mongo实例按秒计费,每一个小时整点结算一次费用,您可以在流水账单中核对每一个计费周期的信息是否和实际相符,流水账单中计费资源是分开计费的,以“GeminiDB Mongo存储”为例,具体如表1所示。 表1 GeminiDB Mongo流水账单 产品类型 GeminiDB Mongo 产品 GeminiDB Mongo存储 计费模式 按需 消费时间 2023/04/08 10:09:06 ~ 2023/04/08 12:09:06时段计费系统将生成6笔流水账单,对应每一个计费周期,分别如下: 2023/04/08 10:09:06 ~ 2023/04/08 11:00:00 2023/04/08 11:00:00 ~ 2023/04/08 12:00:00 2023/04/08 12:00:00 ~ 2023/04/08 12:09:06 官网价 官网价=使用量*单价*容量 本例中,在第一个计费周期内GeminiDB Mongo的使用量为3054秒,单价可在云数据库 GeminiDB价格详情中查询,以0.00378元/GB/小时为例,容量为40GB,那么官网价=(3054 ÷ 3600) * 0.00378 * 40 = 0.128262 元。同理,您可以计算剩余计费周期内资源的官网价。 优惠金额 用户使用云服务享受折扣优惠如商务折扣、伙伴授予折扣以及促销优惠等减免的金额。基于官网价的优惠金额。 抹零金额 华为云产品 定价精度为小数点后8位(单位:元),因此在计费过程中会产生小数点后8位的资源使用费用。而在实际扣费时,仅扣除到小数点后2位,小数点后第3位到第8位部分金额会被舍弃,这种舍弃部分的金额称作抹零金额。 以第一个计费周期为例,抹零金额为:0.008268 元 应付金额 应付金额=官网价-优惠金额-抹零金额 以第一个计费周期为例,假设优惠金额为0,那么应付金额=0.128262 - 0 - 0.008262 = 0.12 元。 GeminiDB Mongo实例明细账单 明细账单可以通过多维度展示客户账单的详细信息。一般通过设置统计维度为“按使用量”,统计周期为“按账期”来统计资源在某个月份的总开销,以“GeminiDB Mongo存储”为例,建议您核对表2所示的信息是否和实际相符。 表2 GeminiDB Mongo明细账单 产品类型 GeminiDB Mongo 产品 GeminiDB Mongo存储 计费模式 按需 资源名称/ID GeminiDB Mongo的名称和ID 例如:nosql-b388,21e8811a64bf4de88bc2e2556da17983in12 规格 GeminiDB Mongo存储 使用量类型 按需计费GeminiDB Mongo的使用量类型为“时长” 单价 按需计费模式为简单 定价 (使用量*单价)时提供单价信息,其他的定价(如EIP公网带宽的阶梯定价)等不提供单价。 按需计费GeminiDB Mongo属于简单定价,您可以在云数据库 GeminiDB价格详情中查中查询单价。 单价单位 在云数据库 GeminiDB价格详情中查中查询到的单价单位:元/GB/小时 使用量 按产品单价单位显示使用量,GeminiDB Mongo的单价单位为元/GB/小时,因此使用量以小时为单位。本例中,2023/04/08 10:09:06 ~ 2023/04/08 12:09:06时段总计使用量为2小时。 使用量单位 小时 官网价 官网价=使用量*单价*容量 本例中,使用量为2小时,单价可在云数据库 GeminiDB价格详情中查中查询,以0.00378元元/GB/小时为例,容量为40GB,那么官网价=2 * 0.00378 * 40 = 0.3024 元。 优惠金额 用户使用云服务享受折扣优惠如商务折扣、伙伴授予折扣以及促销优惠等减免的金额。基于官网价的优惠金额。 应付金额 用户使用云服务享受折扣优惠后需要支付的费用金额。
  • 分片设计规范 对于使用DDS分片集群,建议尽可能的使用分片集合以充分利用性能,详情请参见设置数据分片以充分利用分片性能。 分片集合使用上建议如下: 对于大数据量(数据量过百万),并有较高读写请求的业务场景,数据量随着业务量增大而增大的,建议采用分片。 对于采用hash分片的集合,需要根据业务后面实际数据量大小,采用预分片,提前预置chunk数量,减少自动均衡和分裂对业务运行造成影响。 对于非空集合开启分片,应将均衡器的开启时间窗放在业务空闲时,避免分片间均衡数据与业务冲突影响性能。设置时间窗口的API接口详情请参见设置集群均衡活动时间窗。 需要基于分片键排序查询且增加数据时可以分布均匀建议使用范围分片,其他使用哈希分片。 合理设计shard key,防止出现大量的数据使用相同shard key,导致出现jumbo chunk。 使用分片集群,执行dropDatabase后,一定要执行flushRouterConfig命令,详情请参见如何规避dds mongos路由缓存缺陷。 业务的update请求需要注意与片键相适配。在使用分片表时,如果出现如下场景则update请求会报错,并返回“An upsert on a sharded collection must contain the shard key and have the simple collation”。 update请求的filter中未携带片键字段且选项multi:false set中未携带片键字段且选项upsert:true
  • 监控指标 表1 DDS推荐的监控指标 指标ID 指标名称 指标含义 取值范围 单位 进制 测量对象 监控周期(原始指标) mongo007_connections_usage 当前活动连接数百分比 该指标用于统计试图连接到实例节点的连接数占可用连接数百分比。 0~100 % 不涉及 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 5秒 mongo032_mem_usage 内存使用率 该指标用于统计测量对象的内存利用率。 0~100 % 不涉及 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 5秒 mongo031_cpu_usage CPU使用率 该指标用于统计测量对象的CPU利用率。 0~100 % 不涉及 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 5秒 mongo035_disk_usage 磁盘利用率 该指标用于统计测量对象的磁盘利用率。 0~100 % 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 表2 DDS支持的监控指标 指标ID 指标名称 指标含义 取值范围 单位 进制 测量对象 监控周期(原始指标) mongo001_command_ps command执行频率 该指标用于统计平均每秒command语句在节点上执行次数。 ≥ 0 Count/s 不涉及 文档数据库实例 文档数据库集群实例下的dds mongos节点 文档数据库副本集实例下的只读节点 文档数据库实例下的主节点 文档数据库实例下的备节点 文档数据库实例下的隐藏节点 1分钟 5秒 mongo002_delete_ps delete语句执行频率 该指标用于统计平均每秒delete语句在节点上执行次数。 ≥ 0 Count/s 不涉及 文档数据库实例 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 5秒 mongo003_insert_ps insert语句执行频率 该指标用于统计平均每秒insert语句在节点上执行次数。 ≥ 0 Count/s 不涉及 文档数据库实例 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 5秒 mongo004_query_ps query语句执行频率 该指标用于统计平均每秒query语句在节点上执行次数。 ≥ 0 Count/s 不涉及 文档数据库实例 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 5秒 mongo005_update_ps update语句执行频率 该指标用于统计平均每秒update语句在节点上执行次数。 ≥ 0 Count/s 不涉及 文档数据库实例 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 5秒 mongo006_getmore_ps getmore语句执行频率 该指标用于统计平均每秒getmore语句在节点上执行次数。 ≥ 0 Count/s 不涉及 文档数据库实例 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 5秒 mongo007_chunk_num1 分片一的chunk数 该指标用于统计分片一的chunk个数。 0~64 Count 不涉及 文档数据库集群实例 1分钟 mongo007_chunk_num2 分片二的chunk数 该指标用于统计分片二的chunk个数。 0~64 Count 不涉及 文档数据库集群实例 1分钟 mongo007_chunk_num3 分片三的chunk数 该指标用于统计分片三的chunk个数。 0~64 Count 不涉及 文档数据库集群实例 1分钟 mongo007_chunk_num4 分片四的chunk数 该指标用于统计分片四的chunk个数。 0~64 Count 不涉及 文档数据库集群实例 1分钟 mongo007_chunk_num5 分片五的chunk数 该指标用于统计分片五的chunk个数。 0~64 Count 不涉及 文档数据库集群实例 1分钟 mongo007_chunk_num6 分片六的chunk数 该指标用于统计分片六的chunk个数。 0~64 Count 不涉及 文档数据库集群实例 1分钟 mongo007_chunk_num7 分片七的chunk数 该指标用于统计分片七的chunk个数。 0~64 Count 不涉及 文档数据库集群实例 1分钟 mongo007_chunk_num8 分片八的chunk数 该指标用于统计分片八的chunk个数。 0~64 Count 不涉及 文档数据库集群实例 1分钟 mongo007_chunk_num9 分片九的chunk数 该指标用于统计分片九的chunk个数。 0~64 Count 不涉及 文档数据库集群实例 1分钟 mongo007_chunk_num10 分片十的chunk数 该指标用于统计分片十的chunk个数。 0~64 Count 不涉及 文档数据库集群实例 1分钟 mongo007_chunk_num11 分片十一的chunk数 该指标用于统计分片十一的chunk个数。 0~64 Count 不涉及 文档数据库集群实例 1分钟 mongo007_chunk_num12 分片十二的chunk数 该指标用于统计分片十二的chunk个数。 0~64 Count 不涉及 文档数据库集群实例 1分钟 mongo008_connections 实例当前活动连接数 该指标用于统计试图连接到DDS实例的总连接数。 0~200 Count 不涉及 文档数据库实例 1分钟 mongo009_migFail_num 过去一天块迁移的失败次数 该指标用于统计过去一天中块迁移失败的次数。 ≥ 0 Count 不涉及 文档数据库集群实例 1分钟 mongo007_connections 当前活动连接数 该指标用于统计试图连接到DDS实例节点的总连接数。 0~200 Count 不涉及 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 5秒 mongo007_connections_usage 当前活动连接数百分比 该指标用于统计试图连接到实例节点的连接数占可用连接数百分比。 0~100 % 不涉及 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 5秒 mongo008_mem_resident 驻留内存 该指标用于统计当前驻留内存的大小。 ≥ 0 MB 不涉及 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo009_mem_virtual 虚拟内存 该指标用于统计当前虚拟内存的大小。 ≥ 0 MB 不涉及 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo010_regular_asserts_ps 常规断言频率 该指标用于统计常规断言频率。 ≥ 0 Count/s 不涉及 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo011_warning_asserts_ps 警告频率 该指标用于统计警告频率。 ≥ 0 Count/s 不涉及 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo012_msg_asserts_ps 消息断言频率 该指标用于统计消息断言频率。 ≥ 0 Count/s 不涉及 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo013_user_asserts_ps 用户断言频率 该指标用于统计用户断言频率。 ≥ 0 Count/s 不涉及 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo014_queues_total 等待锁的操作数 该指标用于统计当前等待锁的操作数。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo015_queues_readers 等待读锁的操作数 该指标用于统计当前等待读锁的操作数。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo016_queues_writers 等待写锁的操作数 该指标用于统计当前等待写锁的操作数。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo017_page_faults 缺页错误数 该指标用于统计当前节点上的缺页错误数。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo018_porfling_num 慢查询数 该指标用于统计当前节点上的前5分钟到当前时间点的慢查询总数。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo019_cursors_open 当前维护游标数 该指标用于统计当前节点上的维护游标数。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo020_cursors_timeOut 服务超时游标数 该指标用于统计当前节点上的服务超时游标数。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo021_wt_cahe_usage 内存中数据量(WiredTiger引擎) 该指标用于统计当前内存中数据量(WiredTiger引擎)。 ≥ 0 MB 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo022_wt_cahe_dirty 内存中脏数据量(WiredTiger引擎) 该指标用于统计当前内存中脏数据量(WiredTiger引擎)。 ≥ 0 MB 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo023_wInto_wtCache 写入WiredTiger内存的频率 该指标用于统计当前内存中写入频率(WiredTiger引擎)。 ≥ 0 byte/s 1024(IEC) 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo024_wFrom_wtCache 从WiredTiger内存写入磁盘频率 该指标用于统计当前内存写入磁盘频率(WiredTiger引擎)。 ≥ 0 byte/s 1024(IEC) 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo025_repl_oplog_win 主节点的Oplog中可用时间 该指标用于统计当前实例下的主节点的Oplog中可用时间。 ≥ 0 h 不涉及 文档数据库实例下的主节点 1分钟 mongo025_repl_headroom 主备Oplog重叠时长 该指标用于统计实例下的主节点和Secondary节点之间Oplog重叠时长。 ≥ 0 s 不涉及 文档数据库实例下的备节点 1分钟 mongo026_repl_lag 主备延时 该指标用于统计实例下的主节点和Secondary节点之间的复制延时。 ≥ 0 s 不涉及 文档数据库实例下的备节点 1分钟 mongo027_repl_command_ps 备节点复制的command执行频率 该指标用于统计平均每秒Secondary节点复制的command语句执行次数。 ≥ 0 Count/s 不涉及 文档数据库实例下的备节点 1分钟 mongo028_repl_update_ps 备节点复制的update语句执行频率 该指标用于统计平均每秒Secondary节点复制的update语句执行次数。 ≥ 0 Count/s 不涉及 文档数据库实例下的备节点 1分钟 mongo029_repl_delete_ps 备节点复制的delete语句执行频率 该指标用于统计平均每秒Secondary节点复制的delete语句执行次数。 ≥ 0 Count/s 不涉及 文档数据库实例下的备节点 1分钟 mongo030_repl_insert_ps 备节点复制的insert语句执行频率 该指标用于统计平均每秒Secondary节点复制的insert语句执行次数。 ≥ 0 Count/s 不涉及 文档数据库实例下的备节点 1分钟 mongo031_cpu_usage CPU使用率 该指标用于统计测量对象的CPU利用率。 0~100 % 不涉及 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 5秒 mongo032_mem_usage 内存使用率 该指标用于统计测量对象的内存利用率。 0~100 % 不涉及 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 5秒 mongo033_bytes_out 网络输出吞吐量 该指标用于统计平均每秒从测量对象的所有网络适配器输出的流量。 ≥ 0 byte/s 1024(IEC) 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 5秒 mongo034_bytes_in 网络输入吞吐量 该指标用于统计平均每秒从测量对象的所有网络适配器输入的流量。 ≥ 0 byte/s 1024(IEC) 文档数据库集群实例下的dds mongos节点 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 5秒 mongo035_disk_usage 磁盘利用率 该指标用于统计测量对象的磁盘利用率。 0~100 % 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo036_iops IOPS 该指标用于统计当前实例节点,单位时间内系统处理的I/O请求数量(平均值)。 ≥ 0 Count/s 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo037_read_throughput 硬盘读吞吐量 硬盘平均每秒读字节数。 ≥ 0 byte/s 1024(IEC) 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo038_write_throughput 硬盘写吞吐量 硬盘平均每秒写字节数。 ≥ 0 byte/s 1024(IEC) 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo039_avg_disk_sec_per_read 硬盘读耗时 该指标用于统计某段时间平均每次读取硬盘所耗时间。 ≥ 0 s 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo040_avg_disk_sec_per_write 硬盘写耗时 该指标用于统计某段时间平均每次写入硬盘所耗时间。 ≥ 0 s 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo042_disk_total_size 磁盘总大小 该指标用于统计测量对象的磁盘总大小。 0~1000 GB 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo043_disk_used_size 磁盘使用量 该指标用于统计测量对象的磁盘已使用总大小。 0~1000 GB 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo044_swap_usage SWAP利用率 交换内存SWAP使用率百分数。 0~100 % 不涉及 文档数据库集群实例下的dds mongos节点 文档数据库实例下的备节点 1分钟 mongo050_top_total_time 集合花费的总时间 Mongotop-total time指标,集合操作花费的时间总和。 ≥ 0 ms 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo051_top_read_time 集合读花费的总时间 Mongotop-read time指标,集合读操作花费的时间总和。 ≥ 0 ms 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo052_top_write_time 集合写花费的总时间 Mongotop-write time指标,集合写操作花费的时间总和。 ≥ 0 ms 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo053_wt_flushes_status 周期Checkpoint的触发次数 WiredTiger一个轮询间隔期间checkpoint的触发次数,记录周期内发生的次数。 ≥ 0 times 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo054_wt_cache_used_percent Wiredtiger使用中的缓存百分比 Wiredtiger使用中的缓存大小百分数。 0~100 % 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo055_wt_cache_dirty_percent Wiredtiger脏数据的缓存百分比 Wiredtiger脏数据的缓存大小百分数。 0~100 % 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo070_rocks_active_memtable memtable中的数据大小 采集当前活动memtable中的数据大小。 0~100 Byte 1024(IEC) 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo071_rocks_oplogcf_active_memtable oplogcf上memtable中的数据大小 采集当前用于oplogcf上活动memtable中的数据大小。 0~100 Byte 1024(IEC) 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo072_rocks_all_memtable memtable和immutable-mem中的总数据大小 采集当前memtable和immutable-mem中的总数据大小。 0~100 Byte 1024(IEC) 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo073_rocks_oplogcf_all_memtable oplogcf上memtable和immutable-mem中的总数据大小 采集当前用于oplogcf上memtable和immutable-mem中的总数据大小。 0~100 Byte 1024(IEC) 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo074_rocks_snapshots 未释放的snapshot的数量 采集当前未释放的snapshot的数量。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo075_rocks_oplogcf_snapshots oplogcf上未释放的snapshot的数量 采集当前oplogcf上未释放的snapshot的数量。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo076_rocks_live_versions 活动的版本数量 采集当前活动的版本数量。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo077_rocks_oplogcf_live_versions oplogcf上活动的版本数量 采集当前oplogcf上活动的版本数量。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo078_rocks_block_cache 驻留在blockcache中的数据大小 采集当前驻留在blockcache中的数据大小。 0~100 Byte 1024(IEC) 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo079_rocks_background_errors 后台累积错误数量 采集记录后台累积错误数量。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo080_rocks_oplogcf_background_errors oplogcf上后台累积错误数量 采集记录oplogcf上后台累积错误数量。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo081_rocks_conflict_bytes_usage 事务写写冲突处理缓冲区使用率 采集事务写中写冲突处理缓冲区使用率。 0~100 % 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo082_rocks_uncommitted_keys 未提交的key的数量 采集当前未提交的key的数量。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo083_rocks_committed_keys 提交的key的数量 采集当前已提交的key的数量。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo084_rocks_alive_txn 活跃事务链表的长度 采集记录活跃事务链表的长度。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo085_rocks_read_queue 读队列的长度 采集当前读队列的长度。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo086_rocks_commit_queue 提交队列的长度 采集当前提交队列的长度。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo087_rocks_ct_write_out 已使用并发写事务数 采集当前已使用并发写事务数。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo088_rocks_ct_write_available 剩余可用并发写事务数 采集当前剩余可用并发写事务数。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo089_rocks_ct_read_out 已使用并发读事务数 采集当前已使用并发读事务数。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo090_rocks_ct_read_available 剩余可用并发读事务数 采集当前剩余可用并发读事务数。 ≥ 0 Count 不涉及 文档数据库实例下的主节点 文档数据库实例下的备节点 1分钟 mongo091_active_session_count 周期活跃会话数 该指标用于统计自上次刷新周期以来Mongo实例在内存中缓存的所有活跃本地会话的数目。 ≥ 0 Count 不涉及 文档数据库实例 文档数据库副本集实例下的只读节点 文档数据库实例下的主节点 文档数据库实例下的备节点 文档数据库实例下的隐藏节点 1分钟 mongo092_rx_errors 接收报文错误率 该指标用于统计监控周期内接收报文中错误报文数量与全部接收报文比值。 0~100 % 不涉及 文档数据库实例 1分钟 5秒 mongo093_rx_dropped 接收报文丢包率 该指标用于监控周期内统计接收报文中丢失报文数量与全部接收报文比值。 0~100 % 不涉及 文档数据库实例 1分钟 5秒 mongo094_tx_errors 发送报文错误率 该指标用于监控周期内统计发送报文中错误报文数量与全部发送报文比值。 0~100 % 不涉及 文档数据库实例 1分钟 5秒 mongo095_tx_dropped 发送报文丢包率 该指标用于监控周期内统计发送报文中丢失报文数量与全部发送报文比值。 0~100 % 不涉及 文档数据库实例 1分钟 5秒 mongo096_retrans_segs 重传包数目 该指标用于监控周期内统计重传包数目。 ≥ 0 Counts 不涉及 文档数据库实例 1分钟 5秒 mongo097_retrans_rate 重传比例 该指标用于监控周期内统计重传包比例。 0~100 % 不涉及 文档数据库实例 1分钟 5秒 mongo098_out_rsts_nums 发送RST数目 该指标用于监控周期内统计RST数目。 ≥ 0 Counts 不涉及 文档数据库实例 1分钟 5秒 mongo099_read_time_average 读命令耗时平均值 该指标为单个节点的读命令耗时平均值。 ≥ 0 ms 不涉及 文档数据库实例 文档数据库副本集实例下的只读节点 文档数据库实例下的主节点 文档数据库实例下的备节点 文档数据库实例下的隐藏节点 1分钟 mongo100_read_time_p99 读命令p99耗时 该指标为单个节点的读命令p99耗时。 ≥ 0 ms 不涉及 文档数据库实例 文档数据库副本集实例下的只读节点 文档数据库实例下的主节点 文档数据库实例下的备节点 文档数据库实例下的隐藏节点 1分钟 mongo101_read_time_p999 读命令p999耗时 该指标为单个节点的读命令p999耗时。 ≥ 0 ms 不涉及 文档数据库实例 文档数据库副本集实例下的只读节点 文档数据库实例下的主节点 文档数据库实例下的备节点 文档数据库实例下的隐藏节点 1分钟 mongo102_write_time_average 写命令耗时平均值 该指标为单个节点的写命令耗时平均值。 ≥ 0 ms 不涉及 文档数据库实例 文档数据库副本集实例下的只读节点 文档数据库实例下的主节点 文档数据库实例下的备节点 文档数据库实例下的隐藏节点 1分钟 mongo103_write_time_p99 写命令p99耗时 该指标为单个节点的写命令p99耗时。 ≥ 0 ms 不涉及 文档数据库实例 文档数据库副本集实例下的只读节点 文档数据库实例下的主节点 文档数据库实例下的备节点 文档数据库实例下的隐藏节点 1分钟 mongo104_write_time_p999 写命令p999耗时 该指标为单个节点的写命令p999耗时。 ≥ 0 ms 不涉及 文档数据库实例 文档数据库副本集实例下的只读节点 文档数据库实例下的主节点 文档数据库实例下的备节点 文档数据库实例下的隐藏节点 1分钟 mongo105_command_time_average command耗时平均值 该指标为单个节点的节点command的耗时平均值。 ≥ 0 ms 不涉及 文档数据库实例 文档数据库副本集实例下的只读节点 文档数据库实例下的主节点 文档数据库实例下的备节点 文档数据库实例下的隐藏节点 1分钟 mongo106_command_time_p99 command p99耗时 该指标为单个节点的command耗时p99耗时。 ≥ 0 ms 不涉及 文档数据库实例 文档数据库副本集实例下的只读节点 文档数据库实例下的主节点 文档数据库实例下的备节点 文档数据库实例下的隐藏节点 1分钟 mongo107_command_time_p999 command p999耗时 该指标为单个节点的command耗时p999耗时。 ≥ 0 ms 不涉及 文档数据库实例 文档数据库副本集实例下的只读节点 文档数据库实例下的主节点 文档数据库实例下的备节点 文档数据库实例下的隐藏节点 1分钟 mongo108_txn_time_average 事务耗时平均值 该指标为单个节点的节点事务耗时平均值。 ≥ 0 ms 不涉及 文档数据库实例 文档数据库副本集实例下的只读节点 文档数据库实例下的主节点 文档数据库实例下的备节点 文档数据库实例下的隐藏节点 1分钟 mongo109_txn_time_p99 事务p99耗时 该指标为单个节点的事务p99耗时。 ≥ 0 ms 不涉及 文档数据库实例 文档数据库副本集实例下的只读节点 文档数据库实例下的主节点 文档数据库实例下的备节点 文档数据库实例下的隐藏节点 1分钟 mongo110_txn_time_p999 事务p999耗时 该指标为单个节点的事务p999耗时。 ≥ 0 ms 不涉及 文档数据库实例 文档数据库副本集实例下的只读节点 文档数据库实例下的主节点 文档数据库实例下的备节点 文档数据库实例下的隐藏节点 1分钟 指标ID中含有“rocks”的监控指标均用于监测4.2版本的实例或实例节点。
  • 使用须知 支持版本为3.4、4.0和4.2的社区版集群实例。 申请连接地址后,系统将为每个shard组或者config组创建两个连接地址,分别是该组中的Primary节点和Secondary节点。 申请的连接地址的网络类型将与当前dds mongos节点的网络类型保持一致。 申请Shard节点或Config节点的连接地址后,暂不支持修改和删除。 当子网开启IPV6时,使用该子网创建的实例不支持申请Shard和Config节点的地址。 Shard IP开启后,需要重启对应shard节点才能生效。 申请的连接地址仅支持通过内网访问。
  • 使用场景 文档数据库服务按照设置的自动备份策略,对数据库进行自动备份。建议您定期对数据库进行备份,当数据库故障或数据损坏时,可以通过备份恢复数据库,从而保证数据可靠性。 创建文档数据库实例时,默认开启自动备份策略。待实例创建成功后,您可以根据业务需要修改自动备份策略或关闭自动备份策略。 开启自动备份策略后,会立即自动触发一次全量备份。之后会按照自动备份策略中设置的备份时间段和备份周期进行全量备份。实例在执行备份时,会将数据从实例上拷贝并压缩后上传到OBS备份空间,按照自动备份策略中的保留天数进行存放,备份时长和实例的数据量有关,平均备份速率为60MB/s。自动备份策略开启后,副本集实例每五分钟会自动进行一次增量备份,以保证数据的可靠性。集群实例如果使用增量备份功能,则需要手动开启。
  • 删除时间漫游快照 在dds副本集的主节点,或者dds集群的mongos节点命令行中,切换至用户库。 use test //可以是任意用户库,不影响最终命令结果 执行如下命令,删除已有时间漫游快照。 db.runCommand({snapshot:1, op:"delete", name:"s1"}) //删除名为s1的时间漫游快照 db.runCommand({snapshot:1, op:"delete"}) //如果未指定name参数,默认删除名为stable的时间漫游快照 db.runCommand({snapshot:1, op:"delete", name:"*"}) //指定name参数为*,删除所有时间漫游快照
  • 创建时间漫游快照 在dds副本集的主节点,或者dds集群的mongos节点命令行中,切换至用户库。 use test //可以是任意用户库,不影响最终快照结果 执行如下命令,创建时间漫游快照。 db.runCommand({snapshot: 1, op: "create", name: "s1"}) //创建名为s1的时间漫游快照 db.runCommand({snapshot: 1, op: "create"}) //如果未指定name参数,那么默认使用stable作为快照名称
  • 使用须知 当前只有最新版本的4.2、4.4文档数据库实例支持该能力,如果您的实例版本较低,请参考文档《补丁升级》; 时间漫游快照为持久化快照,实例重启后依然保留; 对于同一实例您最多可以创建8个时间漫游快照,快照名称支持字符0~9、a~z、A~Z 和 _ ,例如:"Snapshot_2024_09_30_15_18"; 因为时间漫游快照是针对当前时刻所有用户库的数据快照,因此下发命令的数据库账户至少应该具备{role: "dbAdminAnyDatabase"}权限,创建数据库账户请参考文档《创建用户》; 时间漫游快照命令只能在主节点(集群中则为mongos节点)下发,同时会以oplog的形式同步到备节点,所以如果想要有效避免主备倒换可能发生的回滚,那么应该将writeConcern设置为majority来创建、删除时间漫游快照; 请确保在时间漫游快照生效期间,不要对相关集合进行元数据变更(包括删除、重命名集合,创建、删除索引等),对于元数据的操作会使得对应集合的快照失效,但其他集合的快照不受影响; 读取时间漫游快照过程中请勿删除对应快照; 创建时间漫游快照本身并不会占用额外的磁盘空间,但这个动作会使得快照相关的数据不参与存储引擎的compact,因此在创建时间漫游快照后如果有新的写入动作,请及时关注实例的磁盘占用情况。存储引擎相关说明请参考文档《DDS 4.2及其以上版本切RocksDB存储引擎相关问题Q&A》; 因为时间漫游快照的相关数据不参与存储引擎compact,因此如果创建较多时间漫游快照,那么会对实例的写入性能造成5~10%左右的影响; 在集群实例上使用时间漫游快照时,需关闭均衡器Balancer,管理均衡器请参考文档《如何管理均衡器Balancer》。
  • 查看时间漫游快照 在dds副本集的主节点,或者dds集群的mongos节点命令行中,切换至用户库。 use test //可以是任意用户库,不影响最终命令结果 执行如下命令,查看当前时间漫游快照。 db.runCommand({snapshot: 1, op: "list"}) // {snapshot: 1, op: "list"} // {snapshot: 1, op: "list"} 执行结果 { "snapshotList" : [ "s1", "stable" ], "ok" : 1, "operationTime" : Timestamp(1727683917, 1), "$clusterTime" : { "clusterTime" : Timestamp(1727683917, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } } }
  • 数据库连接 使用DDS时,可能会遇到因为Mongod/dds mongos的连接数满了,导致客户端无法连接的问题。在Mongod/dds mongos的服务端,收到一个新的连接由一个单独的线程来处理,每个线程配置了1MB的栈空间,当网络连接数太多时,过多的线程会导致上下文切换开销变大,同时内存开销也会上涨。 客户端连接数据库的时候,要计算业务一共有多少个客户端,每个客户端配置的连接池大小是多少,总的连接数不要超过当前实例能承受的最大连接数的80%。 客户端与数据库的连接应尽量保持相对稳定的状态,每秒新增连接数建议保持在10以下。 建议客户端的连接超时时间至少设置为最大业务执行时长的3倍。 对于副本集实例,客户端需要同时配置主备节点的IP地址;对于集群实例,至少配置两个dds mongos的IP地址。 DDS默认提供rwuser用户,使用rwuser用户登录时认证库必须是admin。
  • 性能相关 规范 业务程序禁止执行全表扫描的查询。 执行查询时,只选择需要返回的字段,不需要的字段不要返回。从而减少网络和进程处理的负载,修改数据时,只修改变化需要修改的字段,不要整个对象直接存储全部修改。 避免使用$not。DDS并不会对缺失的数据进行索引,因此$not的查询条件将会要求在一个结果集中扫描所有记录。如果$not是唯一的查询条件,会对集合执行全表扫描。 用$and时把匹配最少结果的条件放在最前面,用$or时把匹配最多结果的条件放在最前面。 单个实例中,数据库的总的个数不要超过200个,总的集合个数不要超过500个。集合数量过多会导致内存压力变高,并且集合数量多会导致重启以及主备倒换性能变差,影响紧急情况下的高可用性能。 业务上线前,一定要对数据库进行性能压测,评估业务峰值场景下,对数据库的负载情况。 禁止同时执行大量并发事务,且长时间不提交。 业务正式上线前, 所有的查询类别,都应该先执行查询计划检查查询性能。 建议 每个连接在后台都是由一个单独线程处理,每个线程会分配1MB的栈内存。所以连接数不宜过多,否则会占用过多的内存。 使用连接池,避免频繁的建立连接和断开连接,否则会导致CPU过高。 减少磁盘读写:避免使用不必要的upsert命令,避免查询不必要的数据。 优化数据分布:对数据进行分片,同时分散热点数据,均衡地使用实例资源。如何进行数据分片,请参见设置数据分片。 减少锁冲突:避免对同一个Key过于频繁地操作。 减少锁等待:避免前台创建索引。 注意 开发过程中对集合的每一个操作都要通过执行explain()检查其执行计划,如: db.T_DeviceData.find({"deviceId":"ae4b5769-896f"}).explain(); db.T_DeviceData.find({"deviceId":"77557c2-31b4"}).explain("executionStats"); 对于查询而言,因为覆盖查询不需要读取文档,而是直接从索引中返回结果,这样的查询性能好,所以尽可能使用索引覆盖查询。如果explain()的输出显示indexOnly字段为真,则说明这个查询就被一个索引覆盖。 执行计划解析: 看执行时间:executionStats.executionStages.executionTimeMillisEstimate和executionStats.executionStages.inputStage. executionTimeMillisEstimate时间越短越好。 executionStats.executionTimeMillis表示执行计划选择和执行的所有时间。 executionStats.executionStages.executionTimeMillisEstimate表示执行计划的执行完成时间。 executionStats.executionStages.inputStage. executionTimeMillisEstimate表示执行计划下的子阶段执行完成时间。 看扫描条数:三个条目数相同为最佳。 executionStats. nReturned表示匹配查询条件的文档数。 executionStats .totalKeysExamined表示索引扫描条目数。 executionStats .totalDocsExamined表示文档扫描条目数。 看Stage状态,性能较好的Stage状态组合如下。 Fetch+IDHACK Fetch+ixscan Limit+(Fetch+ixscan) PROJECTION+ixscan 表1 状态说明 状态名称 描述 COLLSCAN 全表扫描 SORT 内存中进行排序 IDHACK 根据_id进行查询 TEXT 全文索引 COUNTSCAN 未用索引计数 FETCH 索引扫描 LIMIT 使用Limit限制返回数 SUBPLA 未用索引的$or查询阶段 PROJECTION 限定返回字段时stage的返回 COUNT_SCAN 使用索引计数
  • 迁移方案概览 DDS提供了多种数据迁移方案,可满足不同业务场景下的MongoDB数据库迁移。 表1 迁移方案 迁移场景 支持的迁移类型 文档链接 使用导出导入工具迁移数据 全量迁移 通过mongoexport和mongoimport工具迁移数据 通过mongodump和mongorestore工具迁移数据 其他云数据库MongoDB迁移至华为云DDS 全量+增量迁移 其他云数据库 MongoDB迁移至华为云DDS 本地自建MongoDB数据库迁移至华为云DDS 全量+增量迁移 本地自建MongoDB数据库迁移至华为云DDS E CS 自建MongoDB数据库迁移至华为云DDS 全量+增量迁移 ECS自建MongoDB数据库迁移至华为云DDS 华为云DDS迁移至用户端MongoDB数据库 全量+增量迁移 华为云DDS迁移至用户端MongoDB数据库 父主题: 数据迁移
  • 备份与恢复方案 表1提供了常见的数据备份和下载备份文件的方法。 支持版本号没有说明的,默认支持全部版本:3.2、3.4、4.0、4.2和4.4版本。 表1 备份方案 任务类型 备份或恢复类型 支持的实例类型和版本 使用场景 数据备份 自动备份 集群 副本集 单节点 您可以通过控制台对DDS进行自动备份。 增量备份 集群(4.0、4.2版本支持) 副本集(4.0、4.2版本支持) 您可以通过控制台对DDS进行增量备份。 跨区域备份 集群 副本集 单节点 您可以通过控制台对DDS进行跨区域备份。 手动备份 集群 副本集 单节点 您可以通过控制台对DDS进行手动备份。 通过mongodump工具备份 集群 副本集 单节点 您可以通过MongoDB客户端自带的备份恢复工具对自建MongoDB或云上MongoDB数据库进行手动备份。 通过mongoexport工具备份 集群 副本集 单节点 您可以通过MongoDB客户端自带的备份恢复工具对自建MongoDB或云上MongoDB数据库进行手动备份。 下载备份文件 使用OBS Browser+下载 集群 副本集 单节点 备份文件大于400MB时,适合使用OBS Browser+下载。 使用浏览器直接下载 副本集 单节点 适合通过浏览器直接下载备份文件。 按地址下载 集群 副本集 单节点 适用于通过浏览器新窗口、迅雷或者wget等方式下载备份文件。 DDS详细的恢复方案请参见恢复方案。
  • 备份原理 集群实例 集群实例由dds mongos(路由)、Config(配置)和Shard(分片)组件构成。其中,Config主要用于存储集群实例的配置信息,Shard节点主要用于存储集群实例的数据信息。所以集群实例在备份时,需要分别备份Config节点和Shard节点上的数据,且Config节点和Shard节点是分开进行备份的。如图1所示,集群实例的备份是由Config节点和Shard节点分别在各自的Hidden节点上进行,备份过程会占用Hidden节点一定的CPU内存资源。因此,在备份期间,实例的Hidden节点的CPU使用率、内存使用率、主备延时指标会有一点升高,属于正常现象。但最终的备份文件将以压缩包的形式存储在 对象存储服务 (OBS)中,不会占用实例的磁盘空间。 图1 集群备份原理图 副本集实例 如图2所示,副本集实例的备份在Hidden节点上进行。备份过程会占用Hidden节点一定的CPU内存资源。因此,在备份期间,实例的Hidden节点的CPU使用率、内存使用率、主备延时指标会有一点升高,属于正常现象。但最终的备份文件将以压缩包的形式存储在对象存储服务(OBS)中,不会占用实例的磁盘空间。 图2 副本集备份原理图 单节点实例 单节点的备份是在仅有的一个节点上进行的,最终的备份文件将以压缩包的形式存储在对象存储服务(OBS)中,不会占用实例的磁盘空间。 单节点的备份基于mongodump实现,备份过程中会额外占用节点的CPU、内存等资源,资源不足时会出现备份失败的情况。建议迁移到副本集实例进行备份。 图3 单节点备份原理图
  • 使用须知 在进行正式维护前,DDS会给华为账号中设置的联系人发送短信和邮件,请注意查收。 在可维护时间段内,实例会发生1到2次连接闪断,请确保应用程序具备重连机制,闪断后,实例即可恢复到正常状态。 实例维护期间,除账号管理、数据库管理和添加安全组外,其他涉及变更类的操作(如升级、重启等)暂时无法使用。当实例处于该状态时,对数据库本身正常的数据访问以及查询类操作不会受到任何影响。 修改可维护时间段,不影响原有可维护时间段内定时任务的执行时间。 目前只有实例重启、规格变更和补丁升级支持可维护时间段。 您可以在任务中心取消待执行的定时任务。 可维护时间段不要和备份的时间冲突,否则可能会导致定时任务失败。 临近可维护时间段结束时下发的任务,有可能扫描不到,取消执行。
  • 使用须知 以下情况不可重置密码: 租户被冻结 创建中 重启中 节点扩容中 切换SSL中 修改端口号中 规格变更中 删除节点中 内核版本升级中 主备切换中 可用区迁移中 只读节点扩容中 开启操作保护的用户,在进行敏感操作时,通过进行二次认证再次确认您的身份,进一步提高账号安全性,有效保护您安全使用云产品。关于如何开启操作保护,具体请参考《 统一身份认证 服务用户指南》中敏感操作的内容。 修改密码可能会导致业务断连。
  • 前提条件 连接数据库的弹性云服务器必须和DDS实例之间网络互通,可以使用curl命令连接DDS实例服务端的IP和端口号,测试网络连通性。 curl ip:port 返回“It looks like you are trying to access MongoDB over HTTP on the native driver port.”,说明网络互通。 如果开启SSL,需要在界面上下载根证书,并上传到弹性云服务器。
  • 连接代码 SSL开启 import ssl from pymongo import MongoClient conn_urls="mongodb://rwuser:rwuserpassword@ip:port/{mydb}?authSource=admin" connection = MongoClient(conn_urls,connectTimeoutMS=5000,ssl=True, ssl_cert_reqs=ssl.CERT_REQUIRED,ssl_match_hostname=False,ssl_ca_certs=${path to certificate authority file}) dbs = connection.database_names() print "connect database success! database names is %s" % dbs SSL关闭 import ssl from pymongo import MongoClient conn_urls="mongodb://rwuser:rwuserpassword@ip:port/{mydb}?authSource=admin" connection = MongoClient(conn_urls,connectTimeoutMS=5000) dbs = connection.database_names() print "connect database success! database names is %s" % dbs
  • 前提条件 连接数据库的弹性云服务器必须和DDS实例之间网络互通,可以使用curl命令连接DDS实例服务端的IP和端口号,测试网络连通性。 curl ip:port 返回“It looks like you are trying to access MongoDB over HTTP on the native driver port.”,说明网络互通。 在弹性云服务器上安装Python以及第三方安装包pymongo。推荐使用pymongo2.8版本。 如果开启SSL,需要在界面上下载根证书,并上传到弹性云服务器。
  • 非SSL方式 使用非SSL方式连接,请务必关闭SSL连接,否则会出现报错。如何关闭SSL连接,请参见开启和关闭SSL连接。 打开Robo 3T工具,在连接信息页面,单击“Create”。 图8 连接信息 在弹出的“Connection Settings”窗口,设置新建连接的参数。 在“Connection”页签,“Name”填写自定义的新建连接的名称,“Address”填写集群实例绑定的弹性IP和实例的数据库端口。 图9 Connection 在“Authentication”页签,“Database”填写admin,“User Name”填写rwuser,“Password”填写您创建集群实例时设置的管理员密码。 图10 Authentication 在“TLS”页签,勾选“Use TLS protocol”,“Authentication Method”选择“Self-signed Certificate”。 图11 SSL 设置完成后,单击“Save”。 在连接信息页面,单击“Connect”,开始连接单节点实例。 图12 单节点连接信息 成功连接单节点实例,工具界面显示如图13所示。 图13 单节点连接成功
  • SSL方式 使用SSL方式连接,请务必开启SSL连接,否则会报错。关于如何开启SSL连接,请参见开启和关闭SSL连接。 打开Robo 3T工具,在连接信息页面,单击“Create”。 图2 连接信息 在弹出的“Connection Settings”窗口,设置新建连接的参数。 在“Connection”页签,“Name”填写自定义的新建连接的名称,“Address”填写集群实例绑定的弹性IP和实例的数据库端口。 图3 Connection 在“Authentication”页签,“Database”填写admin,“User Name”填写rwuser,“Password”填写您创建集群实例时设置的管理员密码。 图4 Authentication 在“TLS”页签,勾选“Use TLS protocol”,“Authentication Method”选择“Self-signed Certificate”。 图5 SSL 设置完成后,单击“Save”。 在连接信息页面,单击“Connect”,开始连接单节点实例。 图6 单节点连接信息 成功连接单节点实例,工具界面显示如图7所示。 图7 单节点连接成功
  • 实例连接方式介绍 文档数据库服务提供使用内网和公网的连接方式。 表1 连接方式 连接方式 IP地址 使用场景 说明 DAS连接 无需使用IP地址 通过数据管理服务管理数据,具备友好的图形化界面,直接在控制台上进行可视化操作。可获得执行SQL、高级数据库管理、智能化运维等功能,做到易用、安全、智能地管理数据库。 易用、安全、高级、智能。 推荐使用DAS连接。 内网连接 内网IP地址 系统默认提供内网IP地址。 当应用部署在弹性云服务器上,且该弹性云服务器与文档数据库实例处于同一区域、可用区、虚拟私有云子网内,建议单独使用内网IP地址通过弹性云服务器连接文档数据库实例。 安全性高,可实现DDS的较好性能。 公网连接 弹性公网IP 当应用部署在弹性云服务器上,且弹性云服务器该与文档数据库实例处于不同区域时,建议单独使用弹性公网IP通过弹性云服务器连接文档数据库实例。 当应用部署在其他云服务的系统上时,建议单独使用弹性公网IP通过弹性云服务器连接文档数据库实例。 降低安全性。 为了获得更快的传输速率和更高的安全性,建议您将应用迁移到与您的DDS实例在同一虚拟私有云子网内,使用内网连接。 父主题: 连接单节点实例
  • 前提条件 连接数据库的弹性云服务器必须和DDS实例之间网络互通,可以使用curl命令连接DDS实例服务端的IP和端口号,测试网络连通性。 curl ip:port 返回“It looks like you are trying to access MongoDB over HTTP on the native driver port.”,说明网络互通。 如果开启SSL,需要在界面上下载根证书,并上传到弹性云服务器。
  • 前提条件 连接数据库的弹性云服务器必须和DDS实例之间网络互通,可以使用curl命令连接DDS实例服务端的IP和端口号,测试网络连通性。 curl ip:port 返回“It looks like you are trying to access MongoDB over HTTP on the native driver port.”,说明网络互通。 在弹性云服务器上安装Python以及第三方安装包pymongo。推荐使用pymongo2.8版本。 如果开启SSL,需要在界面上下载根证书,并上传到弹性云服务器。
  • 连接代码 SSL开启 import ssl from pymongo import MongoClient conn_urls="mongodb://rwuser:rwuserpassword@ip:port/{mydb}?authSource=admin&replicaSet=replica" connection = MongoClient(conn_urls,connectTimeoutMS=5000,ssl=True, ssl_cert_reqs=ssl.CERT_REQUIRED,ssl_match_hostname=False,ssl_ca_certs=${path to certificate authority file}) dbs = connection.database_names() print "connect database success! database names is %s" % dbs SSL关闭 import ssl from pymongo import MongoClient conn_urls="mongodb://rwuser:rwuserpassword@ip:port/{mydb}?authSource=admin&replicaSet=replica" connection = MongoClient(conn_urls,connectTimeoutMS=5000) dbs = connection.database_names() print "connect database success! database names is %s" % dbs URL中的认证数据库必须为“admin”,即“authSource=admin”。 SSL方式连接,需要手动生成trustStore文件。 认证数据库必须为“admin”,之后再切换至业务数据库。
  • SSL方式 使用SSL方式连接,请务必开启SSL连接,否则会报错。关于如何开启SSL连接,请参见开启和关闭SSL连接。 打开Robo 3T工具,在连接信息页面,单击“Create”。 图2 连接信息 在弹出的“Connection Settings”窗口,设置新建连接的参数。 在“Connection”页签,“Name”填写自定义的新建连接的名称,“Address”填写集群实例绑定的弹性IP和实例的数据库端口。 图3 Connection 在“Authentication”页签,“Database”填写admin,“User Name”填写rwuser,“Password”填写您创建集群实例时设置的管理员密码。 图4 Authentication 在“TLS”页签,勾选“Use TLS protocol”,“Authentication Method”选择“Self-signed Certificate”。 图5 SSL 设置完成后,单击“Save”。 在连接信息页面,单击“Connect”,开始连接副本集实例。 图6 副本集连接信息 成功连接副本集实例,工具界面显示如图7所示。 图7 副本集连接成功
  • 前提条件 绑定弹性公网IP并设置安全组规则。 对目标副本集实例绑定弹性公网IP。 关于如何绑定弹性公网IP,请参见绑定弹性公网IP。 获取本地设备的IP地址。 设置安全组规则。 将1.b中获取的IP地址及目标实例的端口加入安全组允许访问的范围中。 关于如何设置安全组规则,请参见设置安全组规则。 使用ping命令连通1.a中绑定的弹性公网IP,确保本地设备可以访问该弹性公网IP。 安装Robo 3T工具。 详细操作请参见如何安装Robo 3T工具。
  • 非SSL方式 使用非SSL方式连接,请务必关闭SSL连接,否则会出现报错。如何关闭,请参见开启和关闭SSL连接。 打开Robo 3T工具,在连接信息页面,单击“Create”。 图8 连接信息 在弹出的“Connection Settings”窗口,设置新建连接的参数。 在“Connection”页签,“Name”填写自定义的新建连接的名称,“Address”填写集群实例绑定的弹性IP和实例的数据库端口。 图9 Connection 在“Authentication”页签,“Database”填写admin,“User Name”填写rwuser,“Password”填写您创建集群实例时设置的管理员密码。 图10 Authentication 设置完成后,单击“Save”。 在连接信息页面,单击“Connect”,开始连接副本集实例。 图11 副本集连接信息 成功连接副本集实例,工具界面显示如图12所示。 图12 副本集连接成功
  • 相关常见问题 如果使用DAS登录DDS实例时,出现如下报错信息,请参考DAS连接DDS常见问题进行处理。 Command failed with error 18 (AuthenticationFailed): 'Authentication failed.' on server xxx.xxx.xx.xx:xxxx. The full response is { 'ok' : 0.0, 'errmsg' : "Authentication failed.", "code" : 18, "codeName" : "AuthenticationFailed" } 图2 登录失败 在实例列表的操作列单击“登录”时,无法跳转至DAS页面怎么办? 解决方法:请将您的浏览器设置为允许弹出窗口,然后重试。
  • 实例连接方式介绍 文档数据库服务提供使用内网和公网的连接方式。 表1 连接方式 连接方式 IP地址 使用场景 说明 DAS连接 无需使用IP地址 通过数据管理服务管理数据,具备友好的图形化界面,直接在控制台上进行可视化操作。可获得执行SQL、高级数据库管理、智能化运维等功能,做到易用、安全、智能地管理数据库。 易用、安全、高级、智能。 推荐使用DAS连接。 内网连接 内网IP地址 系统默认提供内网IP地址。 当应用部署在弹性云服务器上,且该弹性云服务器与文档数据库实例处于同一区域、可用区、虚拟私有云子网内,建议单独使用内网IP地址通过弹性云服务器连接文档数据库实例。 安全性高,可实现DDS的较好性能。 公网连接 弹性公网IP 当应用部署在弹性云服务器上,且该弹性云服务器与文档数据库实例处于不同区域时,建议单独使用弹性公网IP通过弹性云服务器连接文档数据库实例。 当应用部署在其他云服务的系统上时,建议单独使用弹性公网IP通过弹性云服务器连接文档数据库实例。 降低安全性。 为了获得更快的传输速率和更高的安全性,建议您将应用迁移到与您的DDS实例在同一虚拟私有云子网内,使用内网连接。 父主题: 连接副本集实例
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全