自治数据库这个概念怎么定义呢?目前自治数据库的概念十分泛滥,很多数据库都号称自己是“自治数据库”。如果一个数据库产品提供很强的预警能力,或者提供了类似ADDM这样的自动诊断报告,这个数据库算不算自治数据库呢?答案是否定的。
哪怕数据库自身有很强的预警能力,数据库的预警可以很及时的推送到告警台上,DBA也无法马上对此进行确定,他们很可能要利用自己的经验和知识,借助一系列自动化的工具对系统发生的问题进行分析,得到最终的确认后才能够采取消缺的操作。这也许意味着很长的时间间隔,在这段时间里,没有任何主动动作可以采取。如果数据库自动发生问题后,进行了自动修复,自己把隐患消除了,这样才符合自治数据库的特征。
自治数据库会将基础设施的动态灵活性与应用的自适应机器学习的智能响应性相结合。这个设计目标是最小化或消除人工劳动和相关的人为错误,并确保数据安全和最佳性能。企业会发现数据库的自治能力可以进一步帮助IT部门提高效率,使他们能够专注于更高价值的活动,而不是日常的、消耗大量人力资源的任务。据统计,多达75%的IT运维成本被用于手动数据库管理,自治数据库可以帮助组织将IT运营转变为现代的软硬件融合模式,降低运营成本,消除成本高昂的停机时间,并最终使其能够在使用更少资源的同时进行更多创新。
我们来看看数据库行业的标杆,Oracle数据库,是如何来实现“自治数据库”的目标的,Oracle的自治数据库的“自治”主要体现在三个方面:
l自动驾驶:Autonomous Database自动化了数据库和基础设施的调配、管理、监控、备份、恢复和调优;
l自我保护:自治数据库比手动操作的数据库更安全,因为它自动保护自己免受内部和外部漏洞和攻击。Oracle通过云平台提供持续的威胁检测,而自治数据库自动应用所有安全性在线更新,并提供“始终在线”的端到端加密。这种预防性方法至关重要,因为目前85%的安全漏洞在发出CVE(常见漏洞和暴露)警报后发生;
l自我修复:自主数据库提供针对所有计划外和计划内停机的预防性保护,以及快速自动恢复无需停机即可避免停机。通过使用基于AI的自动数据库可用性和性能管理提升到一个新的水平集成多个诊断领域的自主性,能够在运行时进行分析和采取行动,以最小化或消除操作破坏。
要实现自动驾驶首先要了解Oracle内部运作的机理以及运行状态,这是一切自主化运行的基础与关键;自我保护首先要感知自己面临的安全风险,其次是能够在线修复,这一切都依赖于数据库自身的能力;而自我修复是数据库能够依靠AI分析,利用平台的整体能力进行自动优化,解决已经被发现与确定的缺陷。实际上通过对Oracle自治数据库的一些白皮书的解读,我们不难发现,Oracle的自治数据库的能力只有在Oracle自己的云和一体机上才能够充分的发挥出来。这是因为只有对已知环境的调整才是最为可靠的,如果我们的数据库是跑在一个资源共享,并且数据库并不完全知晓的环境中,那么针对环境与资源的调整是无法做到自治化的,必须由运维人员来确认才能正确实施。
从上面的图可以十分清晰的看出,Oracle的观点是,可完全自治的数据库产品,可完全自治的IT基础设施,再加上云平台提供的机器学习加持的自动化数据中心,才能构成一个完美的自治数据库系统。我觉得这个描述是十分合理的,起码比目前号称自治数据库的一些国产数据库要靠谱一些。
如果我们再深入的了解一些细节,我们会发现Oracle的自治数据库实际上集成了大量Oracle以往的成熟技术,包括MAA高可用架构,ADG,RAC,自动备份技术,在线补丁技术,GDS全局数据库服务等。
利用RAC技术,Oracle自治数据库实现了服务的高可用与自动管理,当某个服务出现故障时可以发起自动切换转移。
利用MAA架构,Oracle实现了一种极高的可用性,利用这种极高可用性的计算框架,可以实现故障的自动修复。利用自动备份服务,Oracle定期将数据自动备份到Oracle云中的对象存储中。
从上面的一些描述可以看出,Oracle的自治数据库不是简单的数据库技术,而是一个十分复杂的技术集成的成果。这也是我今天最想表达的观点,要想真正的让自治数据库技术实用化,绝对不是在数据库内引入一些AI算法那么简单。自治数据库的目的是降低IT成本,减少运维人员参与数据库日常琐碎的运维,要想实现这一点,仅仅在数据库内核做文章是不够的。
Oracle自治数据库采用整体方法设计,由集成并协同工作的组件组成。比如自修复功能是由备份、恢复、在线补丁和MAA高可用故障切换等技术整合而成的。
自主监测和响应能力是基于机器学习的自我适配能力,Oracle自治数据库监控和响应是现有和下一代集成工具的集合,可补充Oracle MAA,也是自治数据库自我修复能力的关键。与Oracle MAA一样,许多监控和响应功能,也可用于本地Oracle数据库环境,这些能力已在Oracle云中扩展,利用Oracle云的柔性获得一些额外能力。
Oracle自治数据库监控和响应组件结合了自动驾驶和自动修复功能,在管理框架上可自主工作以保持Oracle数据库的健康和运行,同时最小化或消除人为反应时间。这些工具一起识别对数据库系统可能致命的情况,尽可能防止这些问题,并采取纠正措施,快速地解决这些问题。
Oracle监控和响应组件已得到增强,并由应用的机器学习驱动以最大效率提高数据库运行时可用性和性能。许多健康监测解决方案从异常检测的角度利用机器学习,但无法提供响应。Oracle的自主监测和响应超越异常检测和症状并可以深入到根因分析。这种更深入的应用和自适应机器学习方法带来了数据科学、算法和领域专业知识在一起它基于数千小时的机器学习,使用从数千个客户部署中开发的知识库十年这些结果已在Oracle实验室环境中复制、分析和解决,并由Oracle技术部门的主题专家进行监督。这些工作都必须在云上才可以实现,而无法让私有云部署的用户直接受益。
最后我们来看看Oracle自治数据库目前能解决些什么问题。Oracle监控和响应解决了单节点和群集数据库环境的可用性和性能问题。这些问题通常是由系统和数据库管理员处理,包括与操作系统、硬件和软件的安装、修补、升级和资源可用性相关的管理员数据库资源。Oracle监控和响应自动化有助于在运行时解决这两类问题。
在具体的方面,Oracle自治数据库可以解决以下几个问题:1)服务器可用性:这些问题可能导致服务器从RAC集群中退出,并关闭该服务器上运行的所有数据库实例,导致数据库中断。例如:服务器耗尽可用物理内存导致的内存压力;网络拥塞或网络故障;2)数据库可用性:这些问题可能导致数据库或其某个实例无响应,最终不可用。例如:CPU资源不足或者挂起,软件错误或配置更改;3)数据库服务器性能:这些问题可能导致数据库服务器的性能低于最佳性能。例如:与配置的偏差,最佳实践、瓶颈资源、构造糟糕的SQL或可以通过补丁修复的已知错误;4) 数据库客户端驱动的性能:这些客户端问题也会影响数据库性能。
从我今天对Oracle自治数据库的分析,大家应该可以看出,自治数据库是一个全栈的解决方案,绝对不能只在数据库层面来实现,数据库产品提供了支撑自治数据库的基础能力,而云才是实现自治数据库的关键。