华为云用户手册

  • 机会点有哪些分类? 根据分享主体不同,当前分为2种: (1)PO:伙伴共享机会点给华为(Partner-Originated Opportunity),经过华为云的审核和验证后,进行信息协同、联合销售和联合服务。 (2)HO:华为分享机会点给伙伴(Huawei-Originated Opportunity),经过合作伙伴确认后,进行信息协同、联合销售和联合服务。 父主题: 合作伙伴共拓计划(PCE)
  • 为什么伙伴中心的开票金额与激励通知的激励金额不一致?以哪个为准开票? 若伙伴激励的对账期次为2019年1月1号之前的期次,以开票金额为准开票。按经销商合作协议约定,激励通知金额要计算不含税后金额,再根据伙伴的纳税人身份计算开票金额。如果伙伴是小规模纳税人,金额会有差别。 随着2019年云经销商合作协议更新,若伙伴激励的对账期次为2019年1月1号之后的期次,伙伴中心的开票金额和激励通知的激励金额一致。 父主题: 激励结算
  • 正向激励失效,但是不足以抵冲负向激励,无法申请激励,激励过期的处理原则是什么? 当正向激励失效时,系统会自动对负向激励做冲抵操作。 例如当前正向激励为200,负向激励为-600,正向激励200失效时,处理方式为“失效200+失效-600”,200与-600冲抵后生成新的负向激励-400,伙伴就只欠400了。 如果正向激励200失效时没有负向激励,后来才产生的负向激励,则这个200不能再冲抵。 父主题: 激励结算
  • 如何进行先进云软件认证? 1.先联系您的PDM安排PSA、TSE专家提供技术支持; 2.伙伴到伙伴中心资料库下载FTR模板及方案介绍一指禅模板; 3.PSA支持伙伴完成材料输出,包括FTR、一指禅,测试报告,若涉及海顿测试可同步获取TSE支持; 4.伙伴在伙伴中心创建先进云软件方案,上传认证资料,提交认证申请; 5.PSA会先对材料进行预审,不符合的将驳回; 6.华为云软件技术专家将集中评审FTR、海顿测试报告,给出技术评审结论,如果通过,则通过电子流一级审批; 7.华为云PDM主管会评审提交资料中是否包含方案介绍一指禅,同时联合华为云软件业务专家组共同进行整体审核,符合要求则通过二级审批。 父主题: 先进云软件方案
  • 什么是FTR? 通过认证软件伙伴产品的基础技术能力,协助伙伴识别并修复产品或解决方案中的风险,提升伙伴产品基于华为云的竞争力。FTR需要伙伴根据软件产品的类型完成对应的基础技术审核自检表,按基础项要求完成填写与材料准备。填写时需要基于软件产品的真实能力进行答复,同时按照要求提供相关自证材料,包括但不限于客户部署指南、用户使用手册、测试报告等。FTR评审遵循《华为云伙伴软件基础技术审核(FTR)流程说明》进行执行,对伙伴软件产品的技术能力进行审核。基础技术审核自检表可由软件伙伴通过华为云伙伴中心资料库获取。 父主题: 云软件方案
  • 数据说明 为保护用户的隐私和数据安全,所有数据均已进行了采样和脱敏。本例共计三个数据表:order_info_demo_01(订单表)、product_info_demo_02(商品信息表)user_info_demo_03(用户数据表),详细信息请参见表2。 表2 商品销售数据示例 表名称 字段名称 字段类型 字段说明 order_info_demo_01 id int ID编号 sale_price int 销售价格 profit int 利润 pay_time int 支付时间 create_time int 订单创建时间 product_info_demo_02 product_id int ID编号 product_name string 商品名称 product_type string 商品类型 product_color string 商品颜色 product_price string 商品价格 user_info_demo_03 id int ID编号 user_name int 用户名 age int 年龄 gender int 性别
  • 操作流程 图1 快速搭建仪表板操作流程 表1 快速搭建仪表板流程说明 序号 步骤 说明 1 新建项目 新建项目,后续所有的数据分析在该空间中展开,便于数据管理。 2 接入数据源 数据源是数据分析的基础,成功接入数据源后才能进行数据分析。 3 新建数据集 数据集作为数据源和可视化展示的中间环节,承接数据源的输入,并为可视化展示提供输入。 4 新建仪表板 添加不同的图表来搭建仪表板,呈现数据的不同维度,实现数据的可视化分析。 5 管理仪表板 分析完成后,支持发布仪表板,也支持将仪表板分享给他人进行协同编辑。
  • 数据说明 为保护用户的隐私和数据安全,所有数据均已进行了采样和脱敏。本例共计三个数据表:order_info_demo_01(订单表)、product_info_demo_02(商品信息表)user_info_demo_03(用户数据表),详细信息请参见表2。 表2 商品销售数据示例 表名称 字段名称 字段类型 字段说明 order_info_demo_01 id int ID编号 sale_price int 销售价格 profit int 利润 pay_time int 支付时间 create_time int 订单创建时间 product_info_demo_02 product_id int ID编号 product_name string 商品名称 product_type string 商品类型 product_color string 商品颜色 product_price string 商品价格 user_info_demo_03 id int ID编号 user_name int 用户名 age int 年龄 gender int 性别
  • 计费模式 目前智能数据洞察(DataArts Insight)提供包年/包月的计费模式。 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。购买周期越长,享受的折扣越大。 阶梯计费:用户购买不同的通用用户数计费方式。 表1 企业版计费说明 计费项 周期 说明 企业版 包年/包月 包月周期计算公式:用户数*月单价 * 月数 包年周期计算公式:用户数*年单价 * 年数 表2 数据大屏计费说明 计费项 周期 说明 数据大屏 包年/包月 企业版默认赠送5个。 包月周期计算公式:数据大屏数量 * 月单价 * 月数 包年周期计算公式:数据大屏数量 * 年单价 * 年数 表3 嵌入式报表计费说明 计费项 周期 说明 嵌入报表 包年/包月 企业版默认赠送5个。 包月周期计算公式:嵌入报表数量 * 月单价 * 月数 包年周期计算公式:嵌入报表数量 * 年单价 * 年数 表4 智能分析助手计费说明 计费项 周期 说明 智能分析助手 包年/包月 预览版计算公式: 包月:模型月单价 * 月数 包年:模型年单价 * 年数 说明: 开启 “预览版” 后,支持使用 DataArts Insight 提供的共享模型体验智能问答服务,但无法接入用户个人模型。 订阅版计算公式: 包月:模型月单价 * 月数 包年:模型年单价 * 年数 说明: 开启“订阅版”后,支持接入用户个人模型体验智能问答服务,但无法使用DataArts Insight提供的共享模型。 “智能分析助手-预览版”包年周期费用为月单价*12,其他计费项包年周期费用为月单价 * 10。
  • 处理方法 优化实例连接,释放不必要的连接。 您可以通过重启实例来临时释放所有的连接。具体请参见重启实例或节点。 您可以查询节点当前连接数,以及当前连接来源,分析各个终端和DDS实例分别建立了多少连接,并作出相应调整,具体请参见如何查询及限制连接数。 修改参数值或对数据库进行规格扩容。 实例的最大连接数可通过修改参数“net.maxIncomingConnections”的值进行调整。如何修改参数值请参见编辑参数模板。 如果参数值是“default”,表示最大连接数为缺省值,并且与实例的规格相关,具体请参见数据库实例规格。 如果调整连接数过大,可能导致服务崩溃,这时只能通过变更实例规格增加承载的连接数的数量,具体请参见变更实例规格。 如果实例参数模板为默认参数模板,由于默认参数模板中不允许修改参数值,您可以创建一个参数模板,并修改对应参数值,修改后将新参数模板关联到该实例。 检查是否有慢查询,建议添加索引进行优化。
  • 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支持实例级别和节点级别的指标监控,需要根据监控指标支持的维度在告警规则页面设置对应的维度。不同的指标他的维度是不同,详情请参见文档数据库支持的监控指标。 例如:CPU使用率支持的监控对象类型为:文档数据库集群实例下的dds mongos节点、文档数据库实例下的主节点和文档数据库实例下的备节点。 那么在 云监控服务 界面配置告警规则时,维度需要选择“文档数据库实例-文档数据库节点”,就可以在“告警策略”中查看到CPU使用率了。 图1 配置监控维度
  • 什么是DDS实例的只读状态? 为保护DDS实例的正常运行,在存储空间即将被写满的时候,数据库会被设置成磁盘满只读状态,该状态下只支持数据的读取,不支持写入和更新,可以通过扩容存储空间来解除该状态,重新获得写入和更新的能力。 具体规则如下: 用户购买的存储空间超过600GB,当剩余的可用存储空间为18GB时,实例状态将被设置为只读。 用户购买的存储空间小于等于600GB,当实际使用量到总存储空间的97%时,实例状态将被设置为只读。 用户购买的存储空间超过600GB,当剩余的可用存储空间大于90GB时,只读状态会自动解除。 用户购买的存储空间小于等于600GB,当实际使用量小于总存储空间的85%时,只读状态会自动解除。 此时建议您清理多余的资源或进行存储空间扩容。 父主题: 数据库存储
  • 逻辑会话的实现细节 会话ID 每个会话都有一个唯一的会话ID,该ID在会话的整个生命周期中保持不变。会话ID用于跟踪和管理会话内的操作。 会话资源管理 服务端根据会话的活动情况动态分配资源。未使用的会话元数据会被自动清理,会话元数据清理的writeConcern是majority,这意味着如果majority个数的备机都有时延,则无法清理会话残留的元数据,即使会话结束,服务端的会话元数据也会累积,并且占用会话数量。对于长时间运行的会话,服务端会定期检查其状态,确保不会占用过多资源。
  • 会话的生命周期 会话的创建 会话的显式创建 会话在客户端请求时由服务端创建。会话通常由驱动程序通过API创建。例如,使用mongo shell创建session: // Start a session. session = db.getMongo().startSession( { readPreference: { mode: "primary" } } ); 创建的会话将在服务端维护一个独特的会话ID,用于识别和管理会话。 session { "id" : UUID("1c6480a3-8e8d-4726-9f1b-6bf2f6b2b606") } 会话的隐式创建 隐式会话是指在执行某些操作时,驱动程序自动创建会话而无需显式地调用startSession方法。隐式会话主要用于简化开发者的代码,使操作更加便捷。当客户执行数据库操作而没有显式地提供会话参数时,驱动程序会自动创建一个会话。例如,在插入文档或查询数据时,驱动程序会在后台创建一个隐式会话,并在操作完成后自动结束会话。 服务端可以缓存的最大会话数默认为1000000,当会话数大于该值时,将无法显式或者隐式创建会话。 会话达到上限时的行为 拒绝新的会话:如果会话资源达到上限,DDS将无法创建新的会话。这意味着新的操作请求将会被拒绝或阻塞,直到现有的会话释放资源。 资源争用:大量的会话可能会导致资源争用,例如内存和CPU利用率增加。这可能会影响数据库的性能和响应时间。 事务失败:如果在会话达到上限时尝试启动新事务,可能会导致事务失败。客户端会收到错误消息,指示会话资源已耗尽。 会话的使用 会话在使用过程中可以进行多种数据库操作,包括读写操作和事务操作。所有在会话上下文中的操作都会绑定到该会话。例如: coll1 = session.getDatabase("mydb1").foo; coll2 = session.getDatabase("mydb2").bar; coll1.insertOne( { abc: 1 } ); coll2.insertOne( { xyz: 999 } )。 会话的终止 会话可以显式终止,也可以在超时后自动终止。显式终止通过调用endSession方法: session.endSession(); 服务器会自动清理终止会话所占用的资源。 会话的管理 事务管理 会话是事务管理的核心。在事务开始时,服务器会在会话上下文中记录事务操作,确保这些操作要么全部提交,要么全部回滚。例如: db.getSiblingDB("mydb1").foo.insertOne( {abc: 0}, { writeConcern: { w: "majority", wtimeout: 2000 } } ) db.getSiblingDB("mydb2").bar.insertOne( {xyz: 0}, { writeConcern: { w: "majority", wtimeout: 2000 } } ) // Start a session. session = db.getMongo().startSession( { readPreference: { mode: "primary" } } ); coll1 = session.getDatabase("mydb1").foo; coll2 = session.getDatabase("mydb2").bar; // Start a transaction session.startTransaction( { readConcern: { level: "local" }, writeConcern: { w: "majority" } } ); // Operations inside the transaction try { coll1.insertOne( { abc: 1 } ); coll2.insertOne( { xyz: 999 } ); } catch (error) { // Abort transaction on error session.abortTransaction(); throw error; } // Commit the transaction using write concern set at transaction start session.commitTransaction(); session.endSession(); 会话超时 会话有默认的超时时间,默认超时时间为30分钟。服务器会在超时后自动终止未活动的会话,以释放资源。
  • 如何启用MapReduce命令 MapReduce命令由DDS参数模板参数“security.javascriptEnabled”控制,默认值为“false”,表示mapreduce和group命令将无法使用。如果需要使用MapReduce命令,将参数值修改为“true”,修改后需要重启实例才生效。 对于集群实例,需要变更全部shard节点关联参数模板中对应参数值,再重启实例生效。 对于副本集或单节点实例,直接变更实例关联参数模板中对应参数值,再重启实例生效。 如何变更参数值请参见编辑参数模板。
  • 使用MapReduce命令失败时常见报错处理 报错信息:cannot run map reduce without the js engine或map is not defined 图1 案例一 图2 案例二 可能原因:MapReduce命令被限制不能使用。 处理方法:将实例参数模板中参数“security.javascriptEnabled”的值修改为“true”,并重启实例生效,即可使用该命令。 如果实例参数模板为默认参数模板,由于默认参数模板中不允许修改参数值,您可以创建一个参数模板,并修改对应参数值,修改后将新参数模板关联到该实例,具体请参见应用参数模板。
  • 使用RocksDB存储引擎的华为云DDS在执行大量增删改操作时,发现监控中出现磁盘来回波动、CPU毛刺的现象,这是为什么? RocksDB存储引擎下,所有的写入均为追加写,不管是更新还是删除,都不会直接修改原数据,而是追加写在尾端,因此同key可能会在磁盘上存在不同版本的值。追加写过程中,同一条数据的多版本同时存在,磁盘容量会上升。 不同版本的值最终会在新写入的数据量到达一定量后触发后台归并,即RocksDB的Compaction动作。归并数据动作是异步操作,当一轮运行结束后会将本轮涉及到的多版本数据进行归并合一,归并后会生成新的单版本数据数据文件,删除旧的多版本数据文件,在生成新文件和删除老文件这段过渡期,新老文件会同时存在,即磁盘此时会短暂上涨,归并数据结束后,磁盘容量会即时下降。 归并数据操作本身会占用少量CPU资源,因此可能会出现轻微的CPU毛刺现象。 如果发现磁盘和CPU占用持续过高,请联系华为工程师处理。
  • RocksDB优势在哪里? 表1从开源生态、存储空间、可定制化、内存高压场景、频繁更新删除场景、多表场景六个方面描述了RocksDB对比WiredTiger的优势。 表1 RocksDB与WiredTiger对比 存储引擎 RocksDB WiredTiger 开源生态 RocksDB相比WiredTiger有更好的开源生态(github stars),一些知名数据库比如TIDB/CRDB/YUGADB都采用了RocksDB为存储引擎。 开源社区生态不如RocksDB。 存储空间 RocksDB数据写入过程中,部分业务场景会临时保存多个版本的数据,多版本数据会在后续做异步归并为最终版本,因此存储空间可能会存在临时上涨。 WiredTiger落盘只保留最新版本的数据,存储空间消耗相对少。 可定制化 RocksDB性能调优参数较多,支持根据业务的读写能力要求做定制化的参数修改。 WiredTiger性能调优参数较少。 内存高压场景 RocksDB读写性能稳定,不会随着内存压力变化。 WiredTiger需要频繁地刷脏页,进行内存与磁盘数据置换,引起读写性能波动比较大。 频繁更新删除场景 RocksDB在积攒了一定量的新写数据后,会自动异步触发后台compact线程对同一数据的多版本进行归并聚合,释放多余的磁盘空间,因此基本上不会出现磁盘碎片化问题。 WiredTiger在删除数据进行数据多版本归并聚合后,会空余出磁盘空间碎片,并且不会将这部分磁盘空间返回给操作系统,而是留待后续写入使用,磁盘碎片化问题较为明显。 多表场景 RocksDB支持10K以上的表及索引数量。 WiredTiger在表及索引数量达到1K以上时,读写性能会受到影响。
  • RocksDB和WiredTiger两者有什么区别? 写机制的区别 WiredTiger存储引擎的数据结构为B+ tree,落盘数据中一个键(key)对应一个版本号(version),对某一个键(key)进行插入、更新或删除操作都是直接操作对应的数据节点。 Rocksdb存储引擎的数据结构为LSM-tree,写数据就像写日志,以追加写的方式进行。落盘数据除了一个键(key),值(value)之外,还有对应的版本号(version)。同一个键(key)在磁盘上有多个版本(version)的数据。业务层的插入、更新、删除操作,在Rocksdb侧都是写操作。这些多版本数据积压到一定阈值后,会触发后台自动归并,对多版本(version)的数据进行合并,这个行为就是RocksDB的Compaction。 数据组织的区别 WiredTiger存储引擎中一个集合(collection)的数据或者一个索引的数据对应一个磁盘文件,集合是多大,对应的文件就是多大。 RocksDB存储引擎下则没有集合(collection)维度,而是64M一个文件分布在磁盘上。
  • 华为云DDS 4.2及其以上版本将存储引擎切换为RocksDB会对业务产生影响吗? 功能方面:存储引擎是数据库的一个组件,负责管理数据在内存和磁盘中的存储方式。RocksDB和WiredTiger虽然是不同的存储引擎,数据库服务会封装存储引擎,极大兼容社区接口使用方式,开发者使用层面无使用差异感知,业务无差异影响。 性能方面:当前RocksDB存储引擎已经经过长期的社区演进,结合DDS团队对其定制化的开发,性能方面二者切换无明显差异,部分查询场景下RocksDB存储引擎表现更优,存储或计算资源使用方面或存在少量差异。
  • 使用RocksDB存储引擎在典型业务场景下有哪些表现差异与优化建议? 表2描述了RocksDB相较于WiredTiger在一些典型业务场景下的表现差异与优化建议。 表2 典型业务场景下RocksDB的表现差异与优化建议 业务场景 RocksDB的表现差异 优化建议 示例 多文档扫描 RocksDB在文档扫描(docsExamined)多的业务场景下对CPU、IO等资源消耗相较于WiredTiger更多。 建议通过添加适当的索引进行优化,提高扫描效率,降低CPU、IO等资源的消耗。 例如,在coll表A字段没有添加索引的情况下以该字段为条件进行查询:db.coll.find({A: 1})。
  • 高版本MongoDB迁移至低版本时,兼容度如何评估? 文档数据库作为一种数据库软件类云服务与传统软件一样,高版本兼容低版本的功能,少数情况出现功能断代时官方资料会给予专门的总结和公布。 当从高版本迁移至低版本时意味着高版本出现的新功能在低版本中均不支持,所以需要您侧重评估在业务中是否使用了这类新功能。 评估方式通常为预估建议和演练建议: 预估建议:通过查询社区文档版本发布说明,可以查看新本发布时的新增特性,进行逐一分析判断是否在业务代码中使用该特性; 演练建议:通过华为云 数据复制服务 或者社区提供的通过mongodump和mongorestore工具迁移数据至低版本,进行业务功能模拟测试,通过观察业务功能实际表现验证迁移至低版本是否可行; 如果您的业务较为复杂,也可以联系华为技术专家寻求专业的评估支撑。 父主题: 数据库迁移
  • 导入Windows操作系统 单击“开始”,运行框输入“MMC”,回车。 在MMC控制台菜单栏中单击“文件”,选择“添加/删除管理单元”。 在“添加或删除管理单元”对话框,选择“可用的管理单元”区域的“证书”。单击“添加”添加证书。 在“证书管理单元”对话框,选择“计算机账户”,单击“下一步”。 在“选择计算机”对话框,单击“完成”。 在“添加或删除管理单元”对话框,单击“确定”。 在MMC控制台,双击“证书”。 右键单击“受信任的根证书颁发机构”,选择“所有任务”,单击“导入”。 单击“下一步”。 单击“浏览”。 找到下载的根证书ca.crt文件,单击“打开”,然后在向导中单击“下一步”。 单击“下一步”。 单击“完成”。 单击“确定”,完成根证书导入。
  • DDS是否支持设置majority级别的readConcern MongoDB可以通过writeConcern来定制写策略,通过readConcern来定制读策略。 当指定readConcern级别为majority时,能保证用户读到的数据已经写入到大多数节点,而这样的数据不会发生回滚,避免了脏读的问题。 DDS目前不支持设置majority级别的readConcern。 如果有该需求的场景,可以将WriteConcern设置为majority,表示将数据写入到大多数节点,这样就保证了大多数节点的数据一致。然后通过读取单个节点数据就能保证用户读到的数据已经写入到大多数节点,而这样的数据不会发生回滚,避免了脏读的问题。 父主题: 数据库参数
  • 用户需要关注实例的哪些参数 参数相关说明如下: 各参数的详细说明请参见MongoDB官网。 “net.maxIncomingConnections”依赖于实例的规格,实例规格不同对应其默认值也不同,因此,此参数在用户未设置前显示为“default”。 “disableJavaScriptJIT”和“security.javascriptEnabled”配合使用,设置统计函数功能。 “disableJavaScriptJIT”,默认值为“true”,表示禁用JavaScriptJIT编译技术。 “security.javascriptEnabled”,默认值为“false”,表示不允许mongod上执行javascript脚本,mapreduce、group等命令将无法使用。 父主题: 数据库参数
  • 解决方案 对于集群实例,可能是因为选择和设置的分片不合理导致数据分布不均衡,从而引起磁盘空间使用率高的情况。 此时,可以对数据库集合进行合适的分片,具体操作请参见设置数据分片以充分利用分片性能。 随着业务数据的增加,原来申请的数据库磁盘容量不足。此时建议扩容磁盘空间,确保磁盘空间足够。 集群实例,请参见扩容集群实例的磁盘空间。 副本集实例,请参见扩容副本集实例的磁盘空间。 单节点实例,请参见扩容单节点实例的磁盘空间。 如果原有实例规格的磁盘已是最大的,请先升级规格。 集群实例,请参见变更集群实例的CPU和内存规格。 副本集实例,请参见变更副本集实例的CPU和内存规格。 单节点实例,请参见变更单节点实例的CPU和内存规格。 存在大量过期的数据文件占用磁盘空间,此时需要及时处理过期数据文件。例如:如果整个库不需要了,则可以执行dropDatabase命令进行删除,从而快速释放磁盘空间。 后台数据处理机制原因。 无论写入、更新或删除(包括索引插入和删除)等操作,在后台实际上都会转成写入。实例在使用过程中,删除数据并不会回收磁盘空间,这些未被回收的磁盘空间被称为磁盘碎片。磁盘碎片会被数据库继续使用,当有新数据插入时,会重复利用这些碎片,而不需要新申请磁盘空间。根据底层存储引擎的不同(RocksDB和WiredTiger),又会有不同的具体表现。 RocksDB在删除数据后,将删除操作直接转化为追加写,在积攒了一定数据量的冗余数据后,会自动触发后台compact线程对同一数据的多版本进行归并聚合,从而释放多余的磁盘空间,因此建议等待系统自动回收。当磁盘空间使用率较高,接近只读状态阈值时,请联系华为工程师处理。 WiredTiger在删除数据,进行数据多版本归并聚合后,也会空余出磁盘空间碎片,但wiredTiger并不会将这部分磁盘空间返还给操作系统,而是打上标记预留给当前collection后续的写入,此collection后续的写入会优先使用这部分预留的磁盘空间,如果需要释放这部分磁盘空间,可以尝试通过执行compact命令进行释放(注:此命令会阻塞正常业务,因此默认情况下是禁用状态)。
共100000条
提示

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