数据库在资源充足的表现

数据库在资源充足的表现,第1张

如何应对数据库CPU打满?最优解在这里

阿里云数据库

2020-04-26 16:48·字数:4996·阅读:129

如何用好数据库,调校数据库使其发挥最优的性能?

如何快速诊断和应对各种原因导致的突发数据库性能问题?

如何以最低资源成本满足业务需求?

这些复杂的运维难题最优解到底是什么?

今天(4月22日)15:00数据库自治服务DAS重磅发布会

现场为你揭晓答案!

数据库自动驾驶时代一触即发点击这里

即可预约直播

今天提前为大家揭秘数据库自治服务DAS的一个创新功能 —— AutoScale,基于数据库实例的实时性能数据作为输入,由DAS完成流量异常发现、合理数据库规格建议和合理磁盘容量建议,使数据库服务具备自动扩展存储和计算资源的能力。

01背 景

为业务应用选择一个合适的数据库规格,是每个数据库运维同学都会经常面临的一个问题。若规格选的过大,会产生资源浪费;若规格选的过小,计算性能不足会影响业务。

通常情况下,运维同学会采用业务平稳运行状态下,CPU可处于合理水位(例如50%以下)的一个规格(如4核CPU配8G内存)并配一个相对富余的磁盘规格(如200G)。

然而在数据库应用运维同学的日常生活里,线上应用流量突增导致数据库资源打满的情况时有发生,而引发这类问题的场景可能多种多样:

1、新业务上线,对业务流量预估不足,导致资源打满,如新上线的应用接入了大量的引流,或基础流量比较大的平台上线了一个新特性功能。

2、不可预知的流量,如突发的舆论热点带来的临时流量,或某个网红引发的限时抢购、即兴话题等。

3、一些平时运行频次不高,但又偶发集中式访问,如每日一次的上班打卡场景,或每周执行几次的财务核算业务。这类业务场景平时业务压力不高,虽已知会存在访问高峰,但为节省资源而通常不会分配较高的规格。

当上述业务场景突发计算资源不足状况时,通常会让运维同学措手不及,严重影响业务,如何应对“数据库资源打满”是运维同学常常被挑战的问题之一。

在数据库场景下,资源打满可分为计算资源和存储资源两大类,其主要表现:

1、计算资源打满,主要表现为CPU资源利用率达到100%,当前规格下的计算能力不足以应对;

2、存储资源打满,主要表现为磁盘空间使用率达到100%,数据库写入的数据量达到当前规格下的磁盘空间限制,导致业务无法写入新数据;

针对上述两类问题,数据库自治服务 DAS 进行了服务创新,使数据库服务具备自动扩展存储和计算资源的技术能力,应对上述的问题。

DAS AutoScale基于数据库实例的实时性能数据作为输入,由DAS完成流量异常发现、合理数据库规格建议和合理磁盘容量建议,使数据库服务具备自动扩展存储和计算资源的能力。

接下来,本文将对DAS AutoScale服务的架构进行详细的介绍,包括技术挑战、解决方案和关键技术。

02技术挑战

计算节点规格调整是数据库优化的一种常用手段,尽管计算资源规格只涉及到CPU和内存,但在生产环境进行规格变配的影响还是不容忽视,将涉及数据迁移、HA切换、Proxy切换等 *** 作,对业务也会产生影响。

业务有突发流量时,计算资源通常会变得紧张甚至出现CPU达到100%的情况。通常情况下,这种情况会通过扩容数据库规格的方式来解决问题,同时DBA在准备扩容方案时会至少思考如下三个问题:

1扩容是否能解决资源不足的问题?

2何时应该进行扩容?

3如何扩容,规格该如何选择?

解决这三个问题,DAS同样面临如下三个方面挑战:

21 挑战一:如何判别扩容是否能够解决问题?

在数据库场景下,CPU打满只是一个计算资源不足的表征,导致这个现象的根因多样,解法也同样各异。例如业务流量激增,当前规格的资源确实不能够满足计算需求,在合适的时机点,d性扩容是一个好的选择,再如出现了大量的慢SQL,慢SQL堵塞任务队列,且占用了大量的计算资源等,此时资深的数据库管理员首先想到的是紧急SQL限流,而不是扩容。在感知到实例资源不足时,DAS同样需要从错综复杂的问题中抽丝剥茧定位根因,基于根因做出明智的决策,是限流,是扩容,还是其它。

22 挑战二:如何选择合适的扩容时机和扩容方式?

对于应急扩容时机,选择的好坏与紧急情况的判断准确与否密切相关。“紧急”告警发出过于频繁,会导致实例频繁的高规格扩容,产生不必要的费用支出;“紧急”告警发出稍晚,业务受到突发情况影响的时间就会相对较长,对业务会产生影响,甚至引发业务故障。在实时监控的场景下,当我们面临一个突发的异常点时,很难预判下一时刻是否还会异常。因此,是否需要应急告警变得比较难以决断。

对于扩容方式,通常有两种方式,分别是通过增加只读节点的水平扩容,以及通过改变实例自身规格的垂直扩容。

其中,水平扩容适用于读流量较多,而写流量较少的场景,但传统数据库需要搬迁数据来搭建只读节点,而搬迁过程中主节点新产生的数据还存在增量同步更新的问题,会导致创建新节点比较慢。

垂直扩容则是在现有规格基础上进行升级,其一般流程为先对备库做升级,然后主备切换,再对新备库做规格升级,通过这样的流程来降低对业务的影响,但是备库升级后切换主库时依然存在数据同步和数据延迟的问题。因此,在什么条件下选择哪种扩容方式也需要依据当前实例的具体流量来进行确定。

23 挑战三:如何选择合适的计算规格?

在数据库场景下,实例变更一次规格涉及多项管控运维 *** 作。以物理机部署的数据库变更规格为例,一次规格变更 *** 作通常会涉及数据文件搬迁、cgroup隔离重新分配、流量代理节点切换、主备节点切换等 *** 作步骤;而基于Docker部署的数据库规格变更则更为复杂,会额外增加Docker镜像生成、Ecs机器选择、规格库存等微服务相关的流程。因此,选择合适的规格可有效地避免规格变更的次数,为业务节省宝贵的时间。

当CPU已经是100%的时候,升配一个规格将会面临两种情况:第一种是升配之后,计算资源负载下降并且业务流量平稳;第二种是升配之后,CPU依然是100%,并且流量因为规格提升后计算能力增强而提升。

第一种情况,是比较理想的情况,也是预期扩容后应该出现的效果,但是第二种情况也是非常常见的情形,由于升配之后的规格依然不能承载当前的业务流量容量,而导致资源依然不足,并且仍在影响业务。如何利用数据库运行时的信息选择一个合适的高配规格是将直接影响升配的有效性。

03解决方案

针对上述提到的三项技术挑战,下面从DAS AutoScale服务的产品能力、解决方案、核心技术这三个方面进行解读,其中涉及RDS和PolarDB两种数据库服务,以及存储自动扩容和规格自动变更两个功能,最后以一个案例进一步具体说明。

31 能力介绍

在产品能力上,目前DAS AutoScale服务针对阿里云RDS数据库和PolarDB数据提供存储自动扩容服务和规格自动变配服务。

其中,针对即将达到用户已购买规格上限的实例,DAS存储自动扩容服务可以进行磁盘空间预扩容,避免出现因数据库磁盘满而影响用户业务的发生。在该服务中,用户可自主配置扩容的阈值比例,也可以采用DAS服务预先提供的90%规格上界的阈值配置,当触发磁盘空间自动扩容事件后,DAS会对该实例的磁盘进行扩容;

针对需要变更实例规格的数据库实例,DAS规格自动变配服务可进行计算资源的调整,用更符合用户业务负载的计算资源来处理应用请求,在该服务中,用户可自主配置业务负载流量的突发程度和持续时间,并可以指定规格变配的最大配置以及变配之后是否回缩到原始规格。

在用户交互层面,DAS AutoScale主要采用消息通知的方式展示具体的进度以及任务状态,其中主要包括异常触发事件、规格建议和管控任务状态三部分。异常触发事件用于通知用户触发变配任务,规格建议将针对存储扩容和规格变配的原始规格和目标值进行说明,而管控任务状态则将反馈AutoScale任务的具体进展和执行状态。

32 方案介绍

为了实现上面介绍的具体能力,DAS AutoScale实现了一套完整的数据闭环,如图1:

图1 DAS AutoScale数据闭环

在该闭环中,包含性能采集模块、决策中心、算法模型、规格建议模块、管控执行模块和任务跟踪模块,各模块的具体功能如下:

性能采集模块负责对实例进行实时性能数据采集,涉及数据库的多项性能指标信息、规格配置信息、实例运行会话信息等;

决策中心模块则会根据当前性能数据、实例会话列表数据等信息进行全局判断,以解决挑战一的问题。例如可通过SQL限流来解决当前计算资源不足的问题则会采取限流处理;若确实为突增的业务流量,则会继续进行AutoScale服务流程;

算法模型是整个DAS AutoScale服务的核心模块,负责对数据库实例的业务负载异常检测和容量规格模型推荐进行计算,进而解决挑战二和挑战三的具体问题;

规格建议校验模块将产出具体建议,并针对数据库实例的部署类型和实际运行环境进行适配,并与当前区域的可售卖规格进行二次校验,确保的建议能够顺利在管控侧进行执行;

管控模块负责按照产出的规格建议进行分发执行;

状态跟踪模块则用于衡量和跟踪规格变更前后数据库实例上的性能变化情况;

接下来,将分别针对DAS AutoScale支持的存储扩容和规格变配两个业务场景进行展开介绍。

!图2 存储扩容方案](>

想象一下凌晨两点多,你接到了一个紧急呼叫,来自世界另一端帮你运行矿池 (质押池) 的人。从大约 14 分钟前开始,你的池子和其他几个人从链中分离了出来,而网络仍然维持着 79% 的算力。根据你的节点,多数链的区块是无效的。这时出现了余额错误:区块似乎错误地将 450 万枚额外代币分配给了一个未知地址。

一小时后,你和其他两个同样遭遇意外的小矿池参与者、一些区块浏览器和交易所方在一个聊天室中,看见有人贴出了一条推特的链接,开头写着“宣布新的链上可持续协议开发基金”。

到了早上,相关讨论广泛散布在推特以及一个不审查内容的社区论坛上。但那时 450 万枚代币中的很大一部分已经在链上转换为其他资产,并且进行了数十亿美元的 defi 交易。79%的共识节点,以及所有主要的区块链浏览器和轻钱包的端点都遵循了这条新链。也许新的开发者基金将为某些开发提供资金,或者也许所有这些都被领先的矿池、交易所及其裙带所吞并。但是无论结果如何,该基金实际上都成为了既成事实,普通用户无法反抗。

或许还有这么一部主题**。或许会由 MolochDAO 或其他组织进行资助。

这种情形会发生在你的区块链中吗?你所在区块链社区的精英,包括矿池、区块浏览器和托管节点,可能协调得很好,他们很可能都在同一个 telegram 频道和微信群中。如果他们真的想出于利益突然对协议规则进行修改,那么他们可能具备这种能力。以太坊区块链在十小时内完全解决了共识失败,如果是只有一个客户端实现的区块链,并且只需要将代码更改部署到几十个节点,那么可以更快地协调客户端代码的更改。能够抵御这种社会性协作攻击的唯一可靠方式是“被动防御”,而这种力量来自去一个中心化的群体:用户。

想象一下,如果用户运行区块链的验证节点 (无论是直接验证还是其他间接技术),并自动拒绝违反协议规则的区块,即使超过 90% 的矿工或质押者支持这些区块,故事会如何发展。

如果每个用户都运行一个验证节点,那么攻击很快就会失败:有些矿池和交易所会进行分叉,并且在整个过程中看起来很愚蠢。但是即使只有一些用户运行验证节点,攻击者也无法大获全胜。相反,攻击会导致混乱,不同用户会看到不同的区块链版本。最坏情况下,随之而来的市场恐慌和可能持续的链分叉将大幅减少攻击者的利润。对如此旷日持久的冲突进行应对的想法本身就可以阻止大多数攻击。

Hasu 关于这一点的看法:

“我们要明确一件事,我们之所以能够抵御恶意的协议更改,是因为拥有用户验证区块链的文化,而不是因为 PoW 或 PoS。”

假设你的社区有 37 个节点运行者,以及 80000 名被动监听者,对签名和区块头进行检查,那么攻击者就获胜了。如果每个人都运行节点的话,攻击者就会失败。我们不清楚针对协同攻击的启动群体免疫的确切阈值是多少,但有一点是绝对清楚的:好的节点越多,恶意的节点就越少,而且我们所需的数量肯定不止于几百几千个。

那么全节点工作的上限是什么?

为了使得有尽可能多的用户能够运行全节点,我们会将注意力集中在普通消费级硬件上。即使能够轻松购买到专用硬件,这能够降低一些全节点的门槛,但事实上对可扩展性的提升并不如我们想象的那般。

全节点处理大量交易的能力主要受限于三个方面:

算力:在保证安全的前提下,我们能划分多少 CPU 来运行节点?

带宽:基于当前的网络连接,一个区块能包含多少字节?

存储:我们能要求用户使用多大的空间来进行存储?此外,其读取速度应该达到多少?(即,HDD 足够吗?还是说我们需要 SSD?)

许多使用“简单”技术对区块链进行大幅扩容的错误看法都源自于对这些数字过于乐观的估计。我们可以依次来讨论这三个因素:

算力

错误答案:100% 的 CPU 应该用于区块验证

正确答案:约 5-10% 的 CPU 可以用于区块验证

限制之所以这么低的四个主要原因如下:

我们需要一个安全边界来覆盖 DoS 攻击的可能性 (攻击者利用代码弱点制造的交易需要比常规交易更长的处理时间)

节点需要在离线之后能够与区块链同步。如果我掉线一分钟,那我应该要能够在几秒钟之内完成同步

运行节点不应该很快地耗尽电池,也不应该拖慢其他应用的运行速度

节点也有其他非区块生产的工作要进行,大多数是验证以及对 p2p 网络中输入的交易和请求做出响应

请注意,直到最近大多数针对“为什么只需要 5-10%?”这一点的解释都侧重于另一个不同的问题:因为 PoW 出块时间不定,验证区块需要很长时间,会增加同时创建多个区块的风险。这个问题有很多修复方法,例如 Bitcoin NG,或使用 PoS 权益证明。但这些并没有解决其他四个问题,因此它们并没有如许多人所料在可扩展性方面获得巨大进展。

并行性也不是灵丹妙药。通常,即使是看似单线程区块链的客户端也已经并行化了:签名可以由一个线程验证,而执行由其他线程完成,并且有一个单独的线程在后台处理交易池逻辑。而且所有线程的使用率越接近 100%,运行节点的能源消耗就越多,针对 DoS 的安全系数就越低。

带宽

错误答案:如果没 2-3 秒都产生 10 MB 的区块,那么大多数用户的网络都大于 10 MB/秒,他们当然都能处理这些区块

正确答案:或许我们能在每 12 秒处理 1-5 MB 的区块,但这依然很难

如今,我们经常听到关于互联网连接可以提供多少带宽的广为传播的统计数据:100 Mbps 甚至 1 Gbps 的数字很常见。但是由于以下几个原因,宣称的带宽与预期实际带宽之间存在很大差异:

“Mbps”是指“每秒数百万 bits”;一个 bit 是一个字节的 1/8,因此我们需要将宣称的 bit 数除以 8 以获得字节数。

网络运营商,就像其他公司一样,经常编造谎言。

总是有多个应用使用同一个网络连接,所以节点无法独占整个带宽。

P2P 网络不可避免地会引入开销:节点通常最终会多次下载和重新上传同一个块 (更不用说交易在被打包进区块之前还要通过 mempool 进行广播)。

当 Starkware 在 2019 年进行一项实验时,他们在交易数据 gas 成本降低后首次发布了 500 kB 的区块,一些节点实际上无法处理这种大小的区块。处理大区块的能力已经并将持续得到改善。但是无论我们做什么,我们仍然无法获取以 MB/秒为单位的平均带宽,说服自己我们可以接受 1 秒的延迟,并且有能力处理那种大小的区块。

存储

错误答案:10 TB

正确答案:512 GB

正如大家可能猜到的,这里的主要论点与其他地方相同:理论与实践之间的差异。理论上,我们可以在亚马逊上购买 8 TB 固态驱动 (确实需要 SSD 或 NVME;HDD 对于区块链状态存储来说太慢了)。实际上,我用来写这篇博文的笔记本电脑有 512 GB,如果你让人们去购买硬件,许多人就会变得懒惰 (或者他们无法负担 800 美元的 8 TB SSD) 并使用中心化服务。即使可以将区块链装到某个存储设备上,大量活动也可以快速地耗尽磁盘并迫使你购入新磁盘。

一群区块链协议研究员对每个人的磁盘空间进行了调查。我知道样本量很小,但仍然

此外,存储大小决定了新节点能够上线并开始参与网络所需的时间。现有节点必须存储的任何数据都是新节点必须下载的数据。这个初始同步时间 (和带宽) 也是用户能够运行节点的主要障碍。在写这篇博文时,同步一个新的 geth 节点花了我大约 15 个小时。如果以太坊的使用量增加 10 倍,那么同步一个新的 geth 节点将至少需要一周时间,而且更有可能导致节点的互联网连接受到限制。这在攻击期间更为重要,当用户之前未运行节点时对攻击做出成功响应需要用户启用新节点。

交互效应

此外,这三类成本之间存在交互效应。由于数据库在内部使用树结构来存储和检索数据,因此从数据库中获取数据的成本随着数据库大小的对数而增加。事实上,因为顶级 (或前几级) 可以缓存在 RAM 中,所以磁盘访问成本与数据库大小成正比,是 RAM 中缓存数据大小的倍数。

不要从字面上理解这个图,不同的数据库以不同的方式工作,通常内存中的部分只是一个单独 (但很大) 的层 (参见 leveldb 中使用的 LSM 树)。但基本原理是一样的。

例如,如果缓存为 4 GB,并且我们假设数据库的每一层比上一层大 4 倍,那么以太坊当前的 ~64 GB 状态将需要 ~2 次访问。但是如果状态大小增加 4 倍到 ~256 GB,那么这将增加到 ~3 次访问。因此,gas 上限增加 4 倍实际上可以转化为区块验证时间增加约 6 倍。这种影响可能会更大:硬盘在已满状态下比空闲时需要花更长时间来读写。

这对以太坊来说意味着什么?

现在在以太坊区块链中,运行一个节点对许多用户来说已经是一项挑战,尽管至少使用常规硬件仍然是可能的 (我写这篇文章时刚刚在我的笔记本电脑上同步了一个节点!)。因此,我们即将遭遇瓶颈。核心开发者最关心的问题是存储大小。因此,目前在解决计算和数据瓶颈方面的巨大努力,甚至对共识算法的改变,都不太可能带来 gas limit 的大幅提升。即使解决了以太坊最大的 DoS 弱点,也只能将 gas limit 提高 20%。

对于存储大小的问题,唯一解决方案是无状态和状态逾期。无状态使得节点群能够在不维护永久存储的情况下进行验证。状态逾期会使最近未访问过的状态失活,用户需要手动提供证明来更新。这两条路径已经研究了很长时间,并且已经开始了关于无状态的概念验证实现。这两项改进相结合可以大大缓解这些担忧,并为显著提升 gas limit 开辟空间。但即使在实施无状态和状态逾期之后,gas limit 也可能只会安全地提升约 3 倍,直到其他限制开始发挥作用。

另一个可能的中期解决方案使使用 ZK-SNARKs 来验证交易。ZK-SNARKs 能够保证普通用户无需个人存储状态或是验证区块,即使他们仍然需要下载区块中的所有数据来抵御数据不可用攻击。另外,即使攻击者不能强行提交无效区块,但是如果运行一个共识节点的难度过高,依然会有协调审查攻击的风险。因此,ZK-SNARKs 不能无限地提升节点能力,但是仍然能够对其进行大幅提升 (或许是 1-2 个数量级)。一些区块链在 layer1 上探索该形式,以太坊则通过 layer2 协议 (也叫 ZK rollups) 来获益,例如 zksync, Loopring 和 Starknet。

分片之后又会如何?

分片从根本上解决了上述限制,因为它将区块链上包含的数据与单个节点需要处理和存储的数据解耦了。节点验证区块不是通过亲自下载和执行,而是使用先进的数学和密码学技术来间接验证区块。

因此,分片区块链可以安全地拥有非分片区块链无法实现的非常高水平的吞吐量。这确实需要大量的密码学技术来有效替代朴素完整验证,以拒绝无效区块,但这是可以做到的:该理论已经具备了基础,并且基于草案规范的概念验证已经在进行中。

以太坊计划采用二次方分片 (quadratic sharding),其中总可扩展性受到以下事实的限制:节点必须能够同时处理单个分片和信标链,而信标链必须为每个分片执行一些固定的管理工作。如果分片太大,节点就不能再处理单个分片,如果分片太多,节点就不能再处理信标链。这两个约束的乘积构成了上限。

可以想象,通过三次方分片甚至指数分片,我们可以走得更远。在这样的设计中,数据可用性采样肯定会变得更加复杂,但这是可以实现的。但以太坊并没有超越二次方,原因在于,从交易分片到交易分片的分片所获得的额外可扩展性收益实际上无法在其他风险程度可接受的前提下实现。

那么这些风险是什么呢?

最低用户数量

可以想象,只要有一个用户愿意参与,非分片区块链就可以运行。但分片区块链并非如此:单个节点无法处理整条链,因此需要足够的节点以共同处理区块链。如果每个节点可以处理 50 TPS,而链可以处理 10000 TPS,那么链至少需要 200 个节点才能存续。如果链在任何时候都少于 200 个节点,那可能会出现节点无法再保持同步,或者节点停止检测无效区块,或者还可能会发生许多其他坏事,具体取决于节点软件的设置。

在实践中,由于需要冗余 (包括数据可用性采样),安全的最低数量比简单的“链 TPS 除以节点 TPS”高几倍,对于上面的例子,我们将其设置位 1000 个节点。

如果分片区块链的容量增加 10 倍,则最低用户数也增加 10 倍。现在大家可能会问:为什么我们不从较低的容量开始,当用户很多时再增加,因为这是我们的实际需要,用户数量回落再降低容量?

这里有几个问题:

区块链本身无法可靠地检测到其上有多少唯一用户,因此需要某种治理来检测和设置分片数量。对容量限制的治理很容易成为分裂和冲突的根源。

如果许多用户突然同时意外掉线怎么办?

增加启动分叉所需的最低用户数量,使得防御恶意控制更加艰难。

最低用户数为 1,000,这几乎可以说是没问题的。另一方面,最低用户数设为 100 万,这肯定是不行。即使最低用户数为 10,000 也可以说开始变得有风险。因此,似乎很难证明超过几百个分片的分片区块链是合理的。

历史可检索性

用户真正珍视的区块链重要属性是永久性。当公司破产或是维护该生态系统不再产生利益时,存储在服务器上的数字资产将在 10 年内不再存在。而以太坊上的 NFT 是永久的。

是的,到 2372 年人们仍能够下载并查阅你的加密猫。

但是一旦区块链的容量过高,存储所有这些数据就会变得更加困难,直到某时出现巨大风险,某些历史数据最终将……没人存储。

要量化这种风险很容易。以区块链的数据容量 (MB/sec) 为单位,乘以 ~30 得到每年存储的数据量 (TB)。当前的分片计划的数据容量约为 13 MB/秒,因此约为 40 TB/年。如果增加 10 倍,则为 400 TB/年。如果我们不仅希望可以访问数据,而且是以一种便捷的方式,我们还需要元数据 (例如解压缩汇总交易),因此每年达到 4 PB,或十年后达到 40 PB。Internet Archive (互联网档案馆) 使用 50 PB。所以这可以说是分片区块链的安全大小上限。

因此,看起来在这两个维度上,以太坊分片设计实际上已经非常接近合理的最大安全值。常数可以增加一点,但不能增加太多。

结语

尝试扩容区块链的方法有两种:基础的技术改进和简单地提升参数。首先,提升参数听起来很有吸引力:如果您是在餐纸上进行数学运算,这就很容易让自己相信消费级笔记本电脑每秒可以处理数千笔交易,不需要 ZK-SNARK、rollups 或分片。不幸的是,有很多微妙的理由可以解释为什么这种方法是有根本缺陷的。

运行区块链节点的计算机无法使用 100%的 CPU 来验证区块链;他们需要很大的安全边际来抵抗意外的 DoS 攻击,他们需要备用容量来执行诸如在内存池中处理交易之类的任务,并且用户不希望在计算机上运行节点的时候无法同时用于任何其他应用。带宽也会受限:10 MB/s 的连接并不意味着每秒可以处理 10 MB 的区块!也许每 12 秒才能处理 1-5 MB 的块。存储也是一样,提高运行节点的硬件要求并且限制专门的节点运行者并不是解决方案。对于去中心化的区块链而言,普通用户能够运行节点并形成一种文化,即运行节点是一种普遍行为,这一点至关重要。

我们就说三个层次的灾备系统的标准:首先看国际标准SHARE78,这个标准将灾难恢复分成八个层次:那么从存储结构来看,SHARE78涵盖最简单的本地磁盘的备份,到将备份的磁带存储在异地,再到建立应用系统实时的切换的异地备份系统。那么从恢复的时间点角度来看,SHARE78涵盖几天级,几小时级、几分钟、几秒级,这是零数据丢失。

SHARE78它将异地灾备的定义为如下七个级别,我们国家六个级别,它是定义七级别。

第一个级别第0级容灾方案:这个时候数据仅在本地进行备份,没有在异地备份,并且没有制定灾难恢复计划,这是最简单的一种,对吧,也是最便宜的一种。

第1级容灾方案,它将关键数据备份到本地磁带介质上,然后送往异地保存。

第2级容灾方案,就是在第1级的容灾方案的基础上,再增加了一个热备中心。

那么从第0级,第1级,第2级这三种容灾方案,到目前来说,应该说对于大中型企事业单位,已经不能再用了,已经被淘汰了。被小的机构用是另外一回事。

大机构用的都是下面要介绍的3级以上的容灾方案,或者是容灾级别。

第3级,那么在这一级中,就通过网络将关键的数据进行备份,并且存放至异地,制定有相应的灾难恢复计划,有备份中心,并且配备部分数据处理系统及其网络通信系统。

第4级的容灾方案,那么这个时候增加了备份管理软件,自动通过通信网络将部分关键数据定时的备份到异地,这么一种功能。同时还制定了相应的灾难恢复计划。

第5级的容灾方案,增加了硬件的镜像技术和软件的数据复制技术。也就是说可以实现在应用站点与备份站点的数据多备份更新。

第6级容灾方案,这个时候利用专用的存储网络,将关键数据同步镜像至备援中心,数据不仅在本地进行确认,而且需要在异地进行确认,这个异地就是备援中心那个地方进行确认,实现零数据的丢失。

第7级也就是最高级的容灾方案。那么这个时候当一个工作中心发生灾难时,能够提供一定程度的跨站点动态负载平衡和自动系统的故障切换功能,这是最高级的,这是SHARE78的情况。

灾备的7个层次

据国际标准SHARE78的定义,灾难恢复解决方案可根据以下主要方面所达到的程度分为七级,即从低到高有七种不同层次的灾难恢复解决方案。可以根据企业数据的重要性以及您需要恢复的速度和程度,来设计选择并实现您的灾难恢复计划

以上就是关于数据库在资源充足的表现全部的内容,包括:数据库在资源充足的表现、什么是区块链扩容、order数据库里的dg数据库灾备方案是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9743535.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存