数据库容灾的设计与实现(五)

六、容灾方案的应用评估

上文中设计了油田数据级容灾系统,完成了基于Oracle Data Guard数据级容灾架构的设计和实施,实现了Broker Failover的FSFO切换技术、触发器提供不间断服务器端服务、客户端使用TAF实现透明故障转移的,完成了数据级容灾系统的建设。为了了解容灾是否满足生产业务的容灾需要,需对数据级容灾系统进行评估。

怎么做容灾系统的评估?当然是以容灾系统建设的目标的实现程度作为评价标准,数据级容灾系统的主要目标是数据安全、数据快速恢复的能力,以下的内容结合目标对我们的容灾系统进行评估。

(一)评价指标RTO及RPO

RTO,Recovery Time Objective,是指灾难发生后,从IT系统当机导致业务停顿之刻开始,到IT系统恢复至可以支持各部门运作,业务恢复运营之时,此两点之间的时间段称为RTO。一般而言,RTO时间越短,即意味要求在更短的时间内恢复至可使用状态。虽然从管理的角度而言,RTO时间越短越好,但是,这同时也意味着更多成本的投入,即可能需要购买更快的存储设备或高可用性软件。对于我们的数据级容灾系统来说,就是要把数据库恢复正常服务需要的时间,这个时间包括了数据库使用FSFO切换需要的时间,以及使用数据库的应用服务器或客户端恢复到能正常使用数据库的时间。

RPO,Recovery Point Objective,是指从系统和应用数据而言,要实现能够恢复至可以支持各部门业务运作,系统及生产数据应恢复到怎样的更新程度。这种更新程度可以是上一周的备份数据,也可以是上一次交易的实时数据。与RTO目标不同,RPO目标的确定不是依赖于企业业务规模,而是决定于企业业务的性质和业务操作依赖于数据的程度。对于我们的数据级容灾系统来来说,就是在灾难发生后,对数据库进行恢复后,保证我们的油气生产业务的连续性不受影响或者将影响降低到最小程度。结合油田的业务情况,油田开发生产业务对数据的实时性要求不高,少量的数据丢失不会对油气田的生产造成影响。

(二)RPO评估

数据安全的目标是在灾难发生时有备用的数据来保证我们的油气生产业务不受影响。数据安全的目标就是针对RPO的。

哪些事件可以定义为灾难呢?典型的灾难事件是自然灾难,如火灾、洪水、地震、飓风、龙卷风、台风等,还有其它如原先提供给业务运营所需的服务中断,如设备故障、软件错误、电信网络中断和电力故障等等。此外,人为的因素往往也会酿成大祸,如操作员错误、破坏、植入有害代码和恐怖袭击。

从以上可以看出,灾难大致分为两类,一类是客观的因素造成的,一类是人为因素造成。

1. 客观灾难下的数据安全评估

针对客观因素的灾难,我们的数据级容灾系统考虑了本地研究院和开发事业部机房的同城数据级容灾和相距200公里的轮南异地容灾,对油田开发的业务数据实现了非常安全的保护。在客观因素造成灾难之后,同城数据由于采用数据库复制技术的同步复制功能,通过没有任何数据损失,通过基于Broker Failover的FSFO灾难切换技术,实现数据库服务的快速恢复。在库尔勒基地的数据库因电力故障、自然灾难降而全部停运时,对轮南采用异步数据复制的Standby数据库通过Data guard的灾难切换failover恢复数据库服务,虽然可能有少量的数据丢失,对我们的油气生产业务基本没有什么影响,少量的数据损失也是在业务部门也在可接受的程度内。

在实际应用中,经过实际油田开发数据库服务的尖峰时刻为每秒产生500K的的REDO日志数据

综上所述,因客观灾难降临时,基于Data guard的同步复制可以数据更新程度到上一次个交易的级别,实现交易零数据丢失;异步复制在网络繁忙时和库尔勒基地数据库也只有5秒的数据同步差距,实际情况低于5秒,这对于油田现有的生产业务是没有影响的。

2. 人为因素灾难下的数据安全评估

针对人为因素的灾难,通过Oracle数据库内置的Flashback技术完成对数据库逻辑错误的快速恢复。也可以使用基于RMAN的数据备份对数据库进行恢复。

Oracle的Flashback技术从10G开始,支持数据库级、表级、行级及事务级闪回能够恢复几乎所有的数据库错误(除文件损坏、介质错误等问题之外)。

据库级别的闪回(Flashback Bataba.se )能够将整个数据库恢复到过去的时间点;表级闪回能够将数据表闪回到过去的时间点,或者对DROP掉的数据库进行闪回恢复;行级恢复闪回查询可以将表中的记录恢复到过去的时间点;通过事务级闪回,可以按照事务将数据库变更闪回。

(1)整个数据库闪回

当启动了Flashback Database功能后,数据库会定期将发生变化的数据块的前镜像写人闪回日志的日志文件中,在进行数据库闪回时,这些数据块可以被直接复制回来以满足数据库的恢复需求,同时Redo Log可以被应用以辅助数据恢复到更精确的时间点,从而极大的缩短了恢复时间。在传统的数据库恢复中,如果为了应对用户错误,那么通常需要进行基于时间点的不完全恢复,恢复的过程需要恢复数据文件、归档日志,再通过日志应用恢复到指定的时间点,这种恢复方式可能需要更长的恢复时间,而闪回数据库则可以避免文件恢复的过程,从而缩减恢复时间。初始化参数db_flashback_retention_target用于定义一个时间上限,用于设置数据库能够闪回的最大时间上限,单位是分钟。这个参数设置的只是一个期望值,确切的闪回时间取决于闪回区中保留的闪回数据。闪回区参数的设置我们在前文中已经描述,这里不再叙述。

(2)表级闪回

在生产环境中,可能用户会因为误操作而Drop掉了有用的数据表,从而导致了严重的数据库故障,在以前的版本中,恢复这样的错误一般需要通过备份进行不完全恢复。为了加快这类用户错误的恢复过程,Oracle 10g提供了 flashback drop的功能。 Oracle 10g的flashback drop功能,允许你从当前数据库中恢复一个被drop 了的对象,在执行drop操作时,现在Oracle不是真正删除它,而是将该对象自动将放入回收站(RecycleBin ), 对于一个对象的删除,Oracle其实仅仅就是进行了类似重命名操作。 所谓的回收站,是一个虚拟的容器,用于存放所有被删除的对象。在回收站中,被删除的对象将占用创建时的同样的空间,你甚至还可以对已经删除的表査询,也可以利用flashback功能来恢复它,这个就是flashback drop功能。

(3)行级恢复闪回查询

Oracle 10g对Oracle 9i中引人的闪回査询进行了增强,我们知道10g之前的闪回査询只能得到过去某个时间点上的数据版本,但是在当前时间和过去的某个时间点上,一个表中的数据 可能已经被变更或修改过多次,单一版本可能无法满足恢复的需要。 Oracle 10g通过Flashback Version Query允许我们对不同时间段内数据表的不同版本进行查询,查询可以反映不同时段内数据表的变更。根据变更可以说实现行级的闪回。

(4)事务级闪回

具备了 Flashback Version Query查询的基础,就可以进行基于Flashback Version Query的恢复,这就是 Flashback Transaction Query。

Flashback Transaction Query是一个诊断恢复工具,可以用于在事务级识别数据库的变更,与Flashback Versions Query类似,Flashback Transaction Query允许我们获取两个特定时间点之间的所有变更,更进一步的,flashback Transaction Query允许我们对于表进行基于事务的恢复。

(5)为了最大可能的减少用户错误的发生,在信息系统在建设和实施应充分控制好权限。程序员进行程序设计时使用测试数据库,比如通过Standby数据库复制一份作为测试库,这样可以避免主库造成影响。生产库的数据库录入人员,对录入权限进行严格的控制,比如油田开发数据库的录入用户,用户对当日数据具备修改权限,完成单日数据录入后由数据审核员审核后,当日数据就被加锁,失去修改数据的权限。如果发现历史数据录入错误需要修改,需要数据管理员解锁后才能修改,一次解锁只能修改一天的数据。通过这样的严格权限控制,可以保证数据库的安全

从以上可以看出,采用同步或异步的数据库复制技术结合数据库的闪回技术可以很好的满足油田开发的数据业务需要。可以得出这样一个结论,基于Data Guard数据级容灾系统可以充分保证数据库的安全,达到业务RPO目标,实现数据安全保护的目的。

(三)RTO评估

为了对RTO指标进行评估,对数据库进行故障切换测试,请示了油田相关领导,业务的尖峰时刻上午11点,对生产库进行了模拟故障切换,FSFO切换阈值设置为15秒的情况,实际总的切换时间为26秒。在这里主库和备库有千兆网络互连,备库采用实时应用REDO方式。

下图为Oracle的官方测试结果,总的时间不包含FSFO切换阈值的时间

Oracle测试环境:测试的数据库容量为100GB,当然故障切换时间不受数据库容量的影响,每台主机相互之间使用千兆网络互连,生产数据库每秒产生3 MB的 redo数据,上图中对数据库的单实例和多实例的RAC配置都进行了测试。测试的Data Guard配置中包括了故障切换到REDO应用的物理数据库和SQL应用的逻辑数据库。在以上条件下,总的切换时间不包括切换阈值为10到25秒之间。加上切换阈值15秒,可以计算出为25秒到35秒之间。主机性能也会影响这个结果,Oracle测试数据库的繁忙程度是油田开发数据库尖峰时刻的6倍,从官方的测试结果分析,油田开发数据库FSFO的切换时间最大不会超过30秒。

从上面的结果可以看出,从观察器检测到系统发生故障到自动执行切换命令,1分钟内完成(这里假定切换阈值15秒),期间已包括了数据库启动的时间,具有非常快速的恢复灾难的效率。而且修复损坏的主机数据库后,可以很容易的加入原来的容灾系统,恢复到原来的正常运行状态。

在实际工作中,调整监听文件中SDU设置有助于提高切换时间。

从客户端tnsnames.ora参数设置中可以看出,客户端在秒级就可以切换到新的主库上,综合考虑各种复杂因素,灾难切换的对用户端影响在分钟级,对数据业务连续性要求不高油田开发业务来说,可以很好的满足工作需要。

(四)数据级容灾系统应用情况

油田数据级容灾系统首先对开发事业部的油田开发数据库进行了部署。油田开发数据库是油田开发生产报表数据处理业务,包括塔里木油田油气藏工程月报、动态监测月报、油气生产综合日报、采油采气工艺报表处理系统的核心数据库。主库部署在油田中心机房的P590上,部署在开发事业部机房的P720上的备库和主库采用同步复制,部署在轮南的P560上的备库与主库采用异步数据复制,从而实现对开发数据库的数据保护。同时通过基于Data Guard Broker管理架构及FSFO技术实现对油田开发数据库服务的自动灾难切换。对油田开发数据库实施容灾后,经过反复测试评估后,确认完全可以满足整个油田的数据库容灾需要,在油田信息管理部的统一组织下,首先对整个油田的Oracle数据库进行了基于Data Guard及FSFO技术的本地容灾部署。

本章小结

本章分别从RPO/RTO对该数据级容灾系统进行了应用评估,经过模拟故障测试,实战演练的评估论证了该套数据级容灾系统完全能够满足数据库容灾的需要,且投入小、 产出高,在管理方面具有一定的方便性,很适合油田的全面部署推广。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/237449.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java最全面试题专题---2、Java集合容器(2)

Map接口 说一下 HashMap 的实现原理? HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 HashMap的数据…

EasyExcel使用模板导出复杂Excel

1&#xff09;添加easyexlce的依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.0-beta1</version> </dependency>2&#xff09;添加excel模板文件 实现的效果&#xff1a;…

java工程(ajax/axios/postman)向请求头中添加消息

1、问题概述 在项目中我们经常会遇到需要向请求头中添加消息的场景&#xff0c;然后后端通过request.getRequest()或者RequestHeader获取请求头中的消息。 下面提供几种前端向请求头添加消息的方式 2、创建一个springmvc工程用于测试 2.1、创建工程并引入相关包信息 sprin…

kettle+report designer导出带样式的excel包含多个sheet页

场景介绍&#xff1a; 运用pentaho report designer报表设计器&#xff0c;查询数据库字典表生成带有样式的excel&#xff0c;通过kettle pentaho报表输出组件导出形成数据字典&#xff0c;最终形成的数据字典样式如下图&#xff1a; 案例适用范围&#xff1a; pentaho repor…

开源治理典型案例分享(汇编转)

当前&#xff0c;越来越多的企业申请通过信通院的开源治理成熟度评估和认证&#xff0c;获得增强级或先进级评估。这些企业包括中国工商银行股份有限公司、中国农业银行、上海浦东发展银行股份有限公司、中信银行股份有限公司、中国太平洋保险&#xff08;集团&#xff09;股份…

停车场物联网解决方案4G工业路由器应用

随着物联网技术的发展&#xff0c;停车场也实现了数字化、智能化。停车场管理系统是一个集计算机、网络通信、自动控制等技术为一体的综合性系统&#xff0c;它的实施&#xff0c;对加强停车场管理&#xff0c;提高工作效率&#xff0c;提升服务质量和现代化水平&#xff0c;进…

ubuntu18.04配置cuda+cudnn+tensorrt+anconda+pytorch-gpu+pycharm

一、显卡驱动安装 执行nvidia-smi查看安装情况 二、cuda安装 cuda官网下载cuda_11.6.2_510.47.03_linux.run&#xff0c;安装执行 sudo sh cuda_11.6.2_510.47.03_linux.run提升安装项&#xff0c;驱动不用安装&#xff0c;即第一项&#xff08;Driver&#xff09;&#xff…

TrustZone之完成器:外围设备和内存

到目前为止,在本指南中,我们集中讨论了处理器,但TrustZone远不止是一组处理器功能。要充分利用TrustZone功能,我们还需要系统其余部分的支持。以下是一个启用了TrustZone的系统示例: 本节探讨了该系统中的关键组件以及它们在TrustZone中的作用。 完成器:外围设备…

centos7部署docker

文章目录 &#xff08;1&#xff09;安装前准备&#xff08;2&#xff09;卸载旧版Docker&#xff08;3&#xff09;安装docker&#xff08;4&#xff09;配置镜像加速 &#xff08;1&#xff09;安装前准备 在开始安装之前&#xff0c;首先需要检查内核版本。使用 uname -r 命…

Python基础期末复习 新手 2

虽然age 10在__init__方法中定义了一个局部变量age&#xff0c;但这个局部变量并不会影响类属性age的值。类属性是在类级别上定义的&#xff0c;不属于任何一个实例。因此&#xff0c;在创建实例s1和s2时&#xff0c;它们的age属性值都为类属性的初始值0。 尽管对类的属性值进…

【JVM从入门到实战】(一) 字节码文件

一、什么是JVM JVM 全称是 Java Virtual Machine&#xff0c;中文译名 Java虚拟机。 JVM 本质上是一个运行在计算机上的程序&#xff0c;他的职责是运行Java字节码文件。 二、JVM的功能 解释和运行 对字节码文件中的指令&#xff0c;实时的解释成机器码&#xff0c;让计算机…

kafka学习笔记--broker工作流程、重要参数

本文内容来自尚硅谷B站公开教学视频&#xff0c;仅做个人总结、学习、复习使用&#xff0c;任何对此文章的引用&#xff0c;应当说明源出处为尚硅谷&#xff0c;不得用于商业用途。 如有侵权、联系速删 视频教程链接&#xff1a;【尚硅谷】Kafka3.x教程&#xff08;从入门到调优…

VSCode中如何查看EDI报文?

VSCode是开发人员常用的一款软件&#xff0c;为了降低EDI报文的阅读门槛&#xff0c;知行的开发人员设计了EDI插件&#xff0c;可以在VSCode中下载使用。 如何打开一个EDI报文——VSCode EDI插件介绍 EDI插件下载流程 进入VSCode&#xff0c;打开Extensions&#xff0c;在搜索…

数组|73. 矩阵置零 48. 旋转图像

73. 矩阵置零 **题目:**给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 题目链接&#xff1a;矩阵置零 class Solution {public void setZeroes(int[][] matrix) {Stack<int[]> mapofzerone…

基于大语言模型的复杂任务认知推理算法CogTree

近日&#xff0c;阿里云人工智能平台PAI与华东师范大学张伟教授团队合作在自然语言处理顶级会议EMNLP2023上发表了基于认知理论所衍生的CogTree认知树生成式语言模型。通过两个系统&#xff1a;直觉系统和反思系统来模仿人类产生认知的过程。直觉系统负责产生原始问题的多个分解…

react中img引入本地图片的方式

在html文件中&#xff0c;可以直接<img src./roadBook.png /> 但是在jsx文件中&#xff0c;不支持这种写法 必须这样写 在css样式中 App.css .img{background: url(./img/roadBook.png) }App.js import ./App.css;<div classNameimg></div> 1.基于es6Mod…

【面试总结】Java面试题目总结(一)

&#xff08;以下仅为个人见解&#xff0c;如果有误&#xff0c;欢迎大家批评并指出错误&#xff0c;谢谢大家&#xff09; 1.项目中的验证码功能是如何实现的&#xff1f; 第一步&#xff1a;在项目的pom.xml文件中导入 EasyCaptcha 的依赖&#xff1b; <dependency>…

联邦蒸馏中的分布式知识一致性 | TIST 2024

联邦蒸馏中的分布式知识一致性 | TIST 2024 联邦学习是一种隐私保护的分布式机器学习范式&#xff0c;服务器可以在不汇集客户端私有数据的前提下联合训练机器学习模型。通信约束和系统异构是联邦学习面临的两大严峻挑战。为同时解决上述两个问题&#xff0c;联邦蒸馏技术被提…

【开源】基于Vue+SpringBoot的教学资源共享平台

文末获取源码&#xff0c;项目编号&#xff1a; S 068 。 \color{red}{文末获取源码&#xff0c;项目编号&#xff1a;S068。} 文末获取源码&#xff0c;项目编号&#xff1a;S068。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课…

Camunda 7.x 系列【60】流程分类

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. 前言2. 案例演示2.1 后端2.2 前端2.3 测试1. 前言 钉钉中的OA审批分类: 企业级的业务…