华为云用户手册

  • 概述 Web应用防火墙 (WAF)、DDoS高防(Advanced Anti-DDoS)、内容分发网络(CDN)会对用户的流量进行反向代理,部署后,CFW接收到的源IP为上述服务的回源IP。 当配置了华为云的其他产品后,业务流量会经过多道防护,在对入云流量进行防护时,如果CFW前存在反向代理服务(即购买了CDN、DDoS高防或云模式WAF),需配置放行回源IP策略,避免误拦截,购买独享模式WAF或ELB模式WAF时,按业务需要配置即可。
  • 约束条件 仅“专业版”支持VPC边界防火墙。 依赖企业路由器(Enterprise Router, ER)服务引流。 仅支持防护当前账号所属企业项目下的VPC。 如果您存在私用公网(即使用10.0.0.0/8、 172.16.0.0/12、192.168.0.0/16 以及运营商级NAT保留网段100.64.0.0/10 以外的公网网段作为私网地址段)的情况,请您提交工单进行私网网段扩容,否则 云防火墙 可能无法正常转发您VPC间的流量。
  • 配置原理 您需要按以下步骤操作: 创建防火墙(以命名vpc-cfw-er为例)并关联子网,请参见步骤一:创建防火墙。 配置企业路由器。 配置所有VPC(包括防火墙VPC和需要互联的VPC)的路由转向企业路由器,请参见将路由转向企业路由器。 创建所有VPC(包括防火墙VPC和需要互联的VPC)的连接,请参见添加连接。 创建两个路由表(以er-RT1和er-RT2为例),请参见创建两个路由表。 配置关联路由表er-RT1将流量从VPC传输到云防火墙,请参见配置路由表er-RT1。 配置传播路由表er-RT2将流量从云防火墙传输到VPC,请参见配置路由表er-RT2。 修改VPC的路由表,请参见修改VPC的路由表。 开启VPC防护,并验证流量正常通信。 配置防护规则,并查看防护效果。 图2 流量走势图
  • 注意事项 如果业务迁移时组网发生改变,则需要重新改写原有策略中的网络信息(如IP地址)。 为减小迁移对业务的影响,建议将所有规则的“启用状态”先设置为“禁用”(尤其是阻断类策略),待导入表格并检查策略配置正确后,再启用策略。 导入后的策略优先级低于已创建的策略。 云防火墙与网络ACL、安全组等防护检测服务的策略都设置为放行时,才能正常放行指定流量。 导入并引用对象组(如IP地址组)时,需要在对应的信息表(如地址信息表)中填写组的信息,再在防护策略表中引用。
  • 什么是可疑DNS活动 DNS(Domain Name System, 域名 系统),是用于将域名转换成用于计算机连接的IP地址的一套查询和转换系统。当用户在浏览器中输入网站的域名时,浏览器会向域名解析服务器(DNS服务器)发送域名解析请求,DNS服务器返回域名对应的IP地址,最终,用户通过IP地址获取到相应的网站资源。 可疑DNS活动是指在网络中出现的异常DNS请求或响应行为。攻击者利用DNS缺陷或通过发送超量请求等各种方式攻击DNS,致使DNS出现异常请求或响应的行为,最终导致DNS解析域名错误、解析超时或DNS系统瘫痪等,这不仅会影响用户的上网体验,还可能带来经济损失甚至法律责任等严重后果。
  • 常见的可疑DNS活动及其危害 常见的可疑DNS活动及其危害,包括但不限于以下几种: DNS缓存中毒:攻击者利用DNS服务器的漏洞来接管DNS,通过篡改DNS服务器的缓存记录,将用户访问重定向到恶意网站,从而实施钓鱼、恶意软件下载等攻击行为。 DNS缓冲区溢出攻击:攻击者利用DNS服务器的漏洞,通过向DNS服务器的缓存区发送大量恶意数据,导致DNS服务器缓存区溢出,最终使得恶意数据覆盖了原有的合法数据,从而实现篡改DNS响应、重定向流量、中间人攻击等攻击行为。
  • 什么是特洛伊木马 特洛伊木马(Trojan Horse)简称木马,是指寄宿在计算机中为实现非法意图的一种恶意软件程序。特洛伊木马通常伪装成正常的软件,通过诱导用户下载到用户计算机中,攻击者通过木马控制用户的计算机系统并实现窃取用户的个人信息、密码或其他敏感数据,或者破坏用户的计算机系统等目的。 木马与计算机病毒的区别在于木马不会自我复制,不具有传染性,也不会主动发起攻击。木马的主要特点如下: 伪装性强:木马通常会伪装成一些看似正常的程序或文件,以此欺骗用户主动安装或打开它们。木马伪装方式很多,例如修改木马程序的图标为常用的文本、图片或HTML等文件图标,或将木马的名称修改为系统文件的名称等。 潜伏性强:木马一旦被植入到目标计算机以后,能够长时间潜伏在用户计算机中不易被发现和查杀,等待攻击者的指令。木马藏匿于合法的程序中,运行时不会在“任务栏”中生成图标,不会在任务管理器中被轻易发现。 危害性大:当木马被植入到目标计算机以后,攻击者可以通过对客户端的远程控制进行一系列能造成严重后果的非法行为,例如窃取用户隐私信息、控制系统的运行、破坏系统的数据等。
  • 特洛伊木马的类型及其危害 常见的特洛伊木马类型及其危害,包括但不限于以下几种: 远程控制型:远程控制是木马的基本功能,在用户不知情的情况下,攻击者通过下发命令实现对用户计算机的远程控制,并完成木马传播者下发的攻击指令,例如篡改文件和数据、下载恶意软件等。 盗取密码型:这类木马以找到所有的隐藏密码为主,如各种社交账号的账户和密码,网络游戏中游戏账号和密码,并在受害者不知情的情况下将密码信息发送出去。 记录键值型:这类木马可以记录用户每一次敲击键盘的操作,通过键盘操作记录,攻击者可以获取到用户的密码等有用信息。此类木马会随着操作系统的启动而自动加载,分为在线和离线两种,分别记录用户在在线和离线两种状态下敲击键盘的情况。记录键值型木马一般也有邮件发送功能,能通过邮件将记录的信息发送给控制者。
  • 蠕虫病毒的危害 蠕虫病毒对网络业务安全构成严重威胁,具体表现如下: 破坏系统:蠕虫病毒可以破坏系统文件和数据,导致系统崩溃或无法正常工作。 盗取信息:蠕虫病毒可以窃取用户的敏感信息,如密码、银行账户信息等。 滥用网络资源:蠕虫病毒可以利用被感染的计算机进行DDoS攻击、垃圾邮件发送等非法行为,造成网络拥塞和服务不可用。 传播其他恶意软件:蠕虫病毒可以利用被感染的计算机传播其他恶意软件,如木马病毒、间谍软件等。
  • 什么是蠕虫病毒 蠕虫病毒(Computer Worm)是一种能够自我复制并通过网络进行传播的恶意软件,它通过扫描网络中的漏洞,利用这些漏洞感染其他服务器,从而在网络中迅速扩散。蠕虫病毒不需要依附于其他程序,就可以独立存在并自主运行。 蠕虫病毒具有如下显著特点: 利用漏洞:蠕虫病毒通常利用操作系统或应用程序中的安全漏洞进行传播。当这些漏洞被发现时,如果系统没有及时安装补丁或更新,就可能成为蠕虫病毒的攻击目标。 自我复制:蠕虫病毒能够复制自身的全部或部分代码,并将这些复制体传播到网络中的其他服务器上。这种自我复制的能力是蠕虫病毒能够迅速扩散的基础。 独立传播:与需要用户交互(如打开附件)的传统病毒不同,蠕虫病毒能够自主地在网络中搜索并感染其他易受攻击的服务器,而无需用户的直接干预。这种独立传播性使得蠕虫病毒更加难以防范。
  • 访问控制攻击的危害 访问控制攻击对系统安全造成严重威胁,其主要危害表现为: 数据泄露:攻击者可以通过绕过访问控制机制,获取系统中未授权的敏感数据,如用户个人信息、财务数据等,导致数据泄露。 数据篡改:攻击者可以通过绕过访问控制机制,篡改系统数据,导致数据不真实和不可靠。 系统瘫痪:攻击者可以通过绕过访问控制机制,获取系统中的管理员权限,导致系统被破坏和瘫痪,无法正常运行。 信息安全风险:访问控制攻击会导致系统中的安全机制被破坏,增加系统面临的信息安全风险,如恶意软件、病毒、木马等的入侵。
  • 什么是访问控制攻击 访问控制攻击是指攻击者通过利用系统或应用中的访问控制漏洞,以非法方式获取或提升其在系统或应用中的访问权限,执行未授权的操作或访问敏感资源。 常见的访问控制攻击包括: 越权访问攻击 垂直越权:普通用户能够访问或执行只有管理员才具有权限的资源或功能。 水平越权:某一用户可以访问或执行另一个用户才有权限访问或执行的资源或功能。 多阶段越权:在需要多个步骤的操作中(如银行转账),攻击者可能跳过前面的步骤直接执行最后的步骤。 密码攻击 暴力破解:攻击者通过尝试所有可能的组合来破解用户的账户名和密码,包括纯粹式暴力破解(地毯式搜索)和字典式暴力破解(使用预设的单词字典)。 彩虹表攻击:一种批处理字典攻击的实现方式,通过查找预生成的密码与哈希串对照表来破解密码。 会话劫持攻击 攻击者通过获取用户的会话ID,使用该ID登录目标账号并执行未授权操作。这通常发生在用户会话标识被泄露或预测的情况下。 访问聚合攻击 在深度测试中经常应用的一种方式,通过收集多个非敏感信息,结合来获得敏感信息,通过这些信息的组合,进行对比完成攻击。
  • 黑客工具的危害 滥用黑客工具会给个人和社会带来巨大的安全风险和经济损失,包括但不限于以下几个方面: 盗取信息:黑客工具可以窃取个人隐私信息,如账号密码、银行账户信息、社交媒体账号等,导致财产损失和个人隐私泄露。 破坏系统:黑客工具可以攻击计算机系统,破坏系统文件和数据,导致系统崩溃或数据丢失等问题。 恶意攻击:黑客工具可以用于进行恶意攻击,如DDoS攻击、病毒攻击等,使网站无法正常访问或瘫痪。 网络犯罪:黑客工具可以被用于进行犯罪活动,如网络诈骗、网络敲诈等,导致社会安全问题。
  • 什么是黑客工具 黑客工具(Hack Tools)是一种用于实施网络攻击的恶意软件程序,它通常由黑客或者恶意程序安装到您的计算机中,用于窃取敏感信息、破坏系统或网络、远程控制计算机或网络等非法活动。在合法的情况下,黑客工具也可以被安全研究人员用于测试系统或网络的安全性。 黑客工具包括如下显著特点: 隐蔽性:黑客工具通常被设计得十分隐蔽,它们可能伪装成合法的软件或服务,或者以其他不易被察觉的形式存在,以便在不被发现的情况下进行攻击。 繁杂性:黑客工具种类繁多,包括但不限于端口扫描器、 漏洞扫描 器、密码破解器、远程控制软件、木马程序、网络监听工具等,可以用于不同场景的攻击。 低门槛:黑客工具通常可以通过简单的操作实现复杂的攻击或渗透。随着互联网信息的高度共享,网络上流传的黑客工具繁多,并且大部分工具教程详细、操作简便,使得使用黑客工具的技术门槛不断降低,攻击者无需精通专业技术即可利用这些工具进行攻击。 破环性:黑客工具有极强的破坏性,可以进行各种攻击、渗透、破解等操作,并且可以快速地发现和利用目标系统的漏洞,从而实现高效的攻击。
  • 漏洞攻击的危害 漏洞攻击的危害是多方面的,包括但不限于: 经济损失:漏洞攻击可能导致受害者业务中断、数据泄露等,从而蒙受巨大的经济损失。 信息泄露:攻击者可以通过漏洞获取用户的通讯录、聊天记录等敏感信息,侵犯个人隐私。 网络破坏:当黑客成功攻击一台服务器后,可能会将其变成“傀儡机”,用于对其他主机发起攻击,扩大攻击范围。 恶意软件传播:攻击者可能利用漏洞在受害者的系统中植入恶意软件,如病毒、木马等,进一步破坏系统安全。
  • 什么是漏洞攻击 漏洞攻击是指攻击者利用系统、软件或硬件中存在的安全漏洞,通过精心构造的攻击手段,在未授权的情况下访问或破坏目标系统,以达到其恶意目的的行为。这些漏洞通常是由于设计、实现或配置过程中的缺陷所导致的,它们为攻击者提供了绕过正常安全防护机制的机会。 漏洞攻击可以涉及多种技术和方法,包括但不限于: 注入攻击:如SQL注入、命令注入等,攻击者通过向应用程序的输入字段中插入恶意代码,以执行非预期的操作或访问敏感数据。 跨站脚本(XSS):攻击者利用网站的安全漏洞,在用户浏览器中注入恶意脚本,从而窃取用户信息、会话令牌或进行其他恶意活动。 跨站请求伪造( CS RF):攻击者诱使用户在已登录的Web应用程序上执行非预期的操作,如转账、更改密码等,而用户往往对此毫不知情。 缓冲区溢出:攻击者通过向程序发送超出其处理能力的数据,导致程序崩溃或执行恶意代码。
  • 准备工作 准备两个部署于不同Region的 CCE Turbo 1.21及以上版本集群,或者网络模型为underlay的Kubernetes集群。 规划应用部署的地域,并购买相应地域的ELB实例服务,为保证跨Region容灾能力,请保证两个ELB实例,跨Region部署。该ELB实例需要为独享型、支持应用型(HTTP/HTTPS)、支持私网(有私有IP地址),并且开启了跨VPC后端开关,具体创建步骤请参见创建独享型负载均衡器。 打通ELB的VPC与Kubernetes集群间的网络,确保ELB实例与容器Pod IP网络可达,并保证成员集群间网络网段不冲突。 准备联邦内可用的工作负载(Deployment)和服务(Service),若无请参考无状态负载和集群内访问(ClusterIP)进行创建。
  • 跨地域应用故障迁移验证 示例应用分别部署在集群“ccecluster-01”和“ccecluster-02”中,并以公网EIP的方式提供了服务的访问入口。 故障场景构造 构造单地域故障的场景,以Region1故障为例,执行以下操作,构造单地域故障: 休眠Region1的cce-cluster01集群,并关机集群下的节点。 解绑Region1的ELB实例的EIP1。 容灾能力验证 在DNS的域名解析页面,在记录集中手动删除Region1的ELB实例绑定的ELB IP地址。 检查ELB的实例后端是否显示存在健康检查结果异常的后端服务器。 在ECS上访问对应的服务,检查服务是否访问正常,返回结果是否为200。
  • 功能验证 按照上述集群应用部署操作,示例应用分别部署在集群“ccecluster01”、“ccecluster02”中,并以“负载均衡”类型的服务对外提供访问。 下面将通过UCS的流量分发功能,实现多集群应用的故障倒换,验证应用的高可用容灾能力。 实践中的应用仅作示例,在实际生产环境中可替换为用户自有应用,且对示例集群的提供商、地域、数量不作限制。 登录UCS控制台,在左侧导航栏中单击“流量分发”。 在流量管理控制台页面,单击右上角“创建流量策略”,填写域名地址解析,设置本例中的测试域名为“demo.example.com”。 图4 创建流量策略 为两个集群服务分别添加调度策略,添加完成后单击“确定”。 本示例中,为模拟不同地域下的集群应用部署,添加三条调度策略: 集群“ccecluster01”线路类型设置为“地域解析-中国大陆/华东地区/上海”。 集群“ccecluster02”线路类型设置为“地域解析-中国大陆/华南地区/广东”。 为域名添加默认线路解析记录,设置集群“ccecluster01”线路类型为“全网默认”。如不设置默认线路解析将会造成指定线路外的地区用户访问失败。 图5 添加调度策略 此时已为测试域名“demo.example.com”添加了三条解析,用户流量将根据设置的线路类型和权重正常访问两个集群中的应用。 图6 调度策略列表 上海地区用户:将访问集群“ccecluster01”中的应用,版本为1.0.0。 广东地区用户:将访问集群“ccecluster02”中的应用,版本为2.0.0。 其他用户:将默认访问集群“ccecluster01”中的应用,版本为1.0.0。 广东地区用户通过域名“demo.example.com”访问应用,版本为2.0.0,说明访问的是集群“ccecluster02”中的应用。 图7 查看访问结果 此时手动停止集群“ccecluster02”中的应用,将实例个数调整为0,模拟环境故障。 图8 调整实例个数 广东地区用户访问应用时,依旧被解析至集群“ccecluster02”,返回错误。 此时需要在“流量分发”页面单击集群“ccecluster02”对应调度策略的“暂停”按钮,进行应用故障倒换。 图9 暂停调度策略 广东地区用户访问域名“demo.example.com”时,不再解析至集群“ccecluster02”,只会将默认线路解析结果返回,用户访问到集群“ccecluster01”,访问正常。待运维人员完成故障集群修复后,可单击“启用”按钮重新使用该线路解析。
  • 环境搭建 将集群注册到UCS并接入网络。具体操作请参见注册集群。 例如,将集群“ccecluster01”、“ccecluster02”添加至UCS,并查看集群是否处于正常运行状态。 在添加至UCS的两个集群中分别创建一个工作负载。 为展示流量切换的效果,本实践中两个集群的容器镜像版本不同。 集群“ccecluster01”:示例应用版本号为1.0.0。 集群“ccecluster02”:示例应用版本号为2.0.0。 图2 创建工作负载 分别为两个集群中的应用创建“负载均衡”类型的服务。 仅支持访问类型为“负载均衡”的服务,其他类型的服务将被自动过滤。 浏览器访问负载均衡IP地址,查看部署结果。 图3 查看部署结果
  • 准备工作 准备应用所运行的集群,本文以CCE集群为例进行演示,参考购买CCE集群在两个不同区域(如:华南-广州和华东-上海一)创建CCE集群,要求Kubernetes版本为1.19及以上,并且各个集群中至少拥有一个可用节点。 在实际生产环境中,多个集群可位于不同区域、可用区,甚至不同云服务商,实现应用的多活容灾。 已购买公网域名,并添加至华为云云解析(DNS)服务,具体操作请参考快速添加网站域名解析。
  • 应用场景 为了应对云单点宕机故障,UCS的集群联邦提供多云多活应用、秒级流量接管能力。业务应用的实例可以多云多活的部署在不同云上的容器服务中,当云单点宕机故障发生时,集群联邦可以秒级自动完成应用实例的弹性迁移以及流量的切换,业务的可靠性大大提升。 多活容灾方案示意如图1所示,通过创建域名访问规则,将应用分发到3个Kubernetes集群,包括两个华为云CCE集群(部署在不同Region)和一个其他云的Kubernetes集群,实现应用的多活容灾。 图1 多云集群应用多活容灾示意图
  • DDS的备份是如何收费的 文档数据库服务所有的全量备份和增量备份都存储在 对象存储服务 上,不占用用户购买实例的存储空间,DDS提供了和实例磁盘大小相同的部分免费存储空间,用于存放您的备份数据。 自动备份的生命周期和实例的生命周期相同。如果实例删除,那么自动备份也会同时被删除,如果您有手动备份,手动备份不会自动删除,具体请参见删除手动备份。 举个例子,假如用户购买实例时,存储空间选择了200GB,那么所有的备份空间合计,只有超过200GB才开始计费,前200GB是免费的。对于超过免费容量的存储空间,目前仅支持按需计费,用多少收取多少费用,具体收费请参见计费说明。 免费的存储空间是在收取了数据盘的存储空间费用后赠送的,数据盘存储空间冻结以后不再收费,因此不再享受备份赠送空间。 用户实例冻结后,将没有免费的存储空间,会导致实例原有备份收费。 如果选择解冻实例,将恢复免费的存储空间。 如果直接删除冻结的实例,原有的自动备份将会同时被删除,原有的手动备份需要手动删除,删除后备份空间不会继续收费。 父主题: 备份与恢复
  • DDS是否支持添加节点 DDS的集群和副本集实例均支持添加节点,单节点由于架构比较特殊,不支持添加节点。 集群实例 集群实例由dds mongos(路由)、Config(配置)和Shard(分片)节点组成。其中,Shard节点和dds mongos节点支持添加节点,Config节点不支持添加节点。 具体操作请参见添加集群实例的节点。 副本集实例 副本集实例由主节点、备节点和隐藏节点组成。系统默认提供的是三节点的实例,您可以根据需要新增节点至五节点或七节点副本集,新增的节点均为Secondary节点。 具体操作请参见添加副本集实例的节点。 父主题: 扩容及规格变更
  • DDS和GeminiDB Mongo有什么区别 文档数据库服务(DDS)完全兼容社区版MongoDB协议,提供安全、高可用、高可靠、弹性伸缩和易用的数据库服务,同时提供一键部署、弹性扩容、容灾、备份、恢复、监控和告警等功能,主要面向数据规模较小,性能要求一般的业务场景。更多DDS信息请参见产品简介。 GeminiDB Mongo,也称增强版MongoDB,是基于华为自主研发的计算存储分离架构的分布式NoSQL数据库服务。100%兼容MongoDB接口,并提供高性能、高可靠的优势和企业级服务。更多GeminiDB Mongo信息请参见产品简介。 父主题: 产品咨询
  • 解决方案 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命令失败时常见报错处理 报错信息:cannot run map reduce without the js engine或map is not defined 图1 案例一 图2 案例二 可能原因:MapReduce命令被限制不能使用。 处理方法:将实例参数模板中参数“security.javascriptEnabled”的值修改为“true”,并重启实例生效,即可使用该命令。 如果实例参数模板为默认参数模板,由于默认参数模板中不允许修改参数值,您可以创建一个参数模板,并修改对应参数值,修改后将新参数模板关联到该实例,具体请参见应用参数模板。
共100000条