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

news2024/11/25 2:55:26

六、容灾方案的应用评估

上文中设计了油田数据级容灾系统,完成了基于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对该数据级容灾系统进行了应用评估,经过模拟故障测试,实战演练的评估论证了该套数据级容灾系统完全能够满足数据库容灾的需要,且投入小、 产出高,在管理方面具有一定的方便性,很适合油田的全面部署推广。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

统信UOS_麒麟KYLINOS上跨架构下载离线软件包

原文链接:统信UOS/麒麟KYLINOS上跨架构下载离线软件包 hello,大家好啊,今天给大家带来一篇在统信UOS/麒麟KYLINOS上跨架构下载离线软件包的实用教程。在我们的日常工作中,可能会遇到这样的情况:需要为不同架构的设备下…

可学习超图拉普拉斯算子代码

python版本:3.6。sklearn版本:scikit-learn0.19 问题1:ERROR: Could not build wheels for ecos, scs, which is required to install pyproject.toml-based projects| 解决办法:cvxpy安装过程中遇到的坑_ecos 2.0.7.post1 cp37 …

使用Python提取PDF文件中指定页面的内容

在日常工作和学习中,我们经常需要从PDF文件中提取特定页面的内容。在本篇文章中,我们将介绍如何使用Python编程语言和两个强大的库——pymupdf和wxPython,来实现这个任务。 1. 准备工作 首先,确保你已经安装了以下两个Python库&…

软件无线电SDR-频谱采集python实现

sdr做的频谱采集,保存的500张频谱图,能看出来是什么东西吗?

SQL错题集2

1.插入记录 用户1001在2021年9月1日晚上10点11分12秒开始作答试卷9001,并在50分钟后提交,得了90分; 用户1002在2021年9月4日上午7点1分2秒开始作答试卷9002,并在10分钟后退出了平台。 2.请把exam_record表中2021年9月1日之前开始作…

2023 CCF中国软件大会(CCF ChinaSoft) “区块链可靠性分析”论坛成功召开

2023年12月1日上午,2023年度CCF中国软件大会区块链可靠性分析论坛成功召开。 本次论坛由中山大学郑子彬、澳门科技大学张涛、中科院软件所蔡彦和中山大学陈嘉弛四位老师联合组织举办。本论坛重点关注区块链可靠性,邀请了近年来在区块链可靠性研究方面有先…

JavaEE 08 线程池简介

前言 前面我们谈完了定时器,单例模式,阻塞队列等的操作并且做了模拟实现,今天我们再来说一说线程池的操作以及一些锁策略. 注:本章几乎均为理论篇,实践较少. 下面就让我们开始吧. 线程池 我们知道因为进程的频繁创建和销毁,带来的开销过大,我们无法接受,所以我们引入了更轻量级…

【rabbitMQ】springboot整合rabbitMQ模拟简单收发消息

目录 1.创建项目和模块 2.添加rabbitMQ依赖 3.启动rabbitMQ服务 4.引入rabbitMQ服务端信息 5.通过单元测试模拟业务发送消息 6. 接收消息 1.创建项目和模块 2.添加rabbitMQ依赖 <!-- rabbitmq依赖--> <dependency> <groupId>org.sp…

泊车功能专题介绍 ———— AVP系统技术要求之运动控制SOTIF

文章目录 运动控制要求车辆子系统控制系统配置要求车辆运动控制系统要求驱动系统制动系统驻车系统转向系统换档系统自动启停系统车联网系统车辆运行数据采集系统灯光系统门锁车窗系统续航里程车内HMI系统胎压监测系统无钥匙进入及启动系统雨刮系统空调系统安全系统电动后视镜系…

谈谈多模态大模型

引言 长期以来&#xff0c;每个机器学习模型都以一种数据模式运行——文本&#xff08;翻译、语言建模&#xff09;、图像&#xff08;对象检测、图像分类&#xff09;或音频&#xff08;语音识别&#xff09;。 然而&#xff0c;自然智能并不仅限于单一模态。人类可以阅读和…

计网Lesson8 - NAT技术与链路层概述

文章目录 NAT 技术1. 因特网的接入方式2. 公网和私网3. NAT 技术 链路层1. 数据链路层概述2. 数据链路层的三个问题2.1 封装成帧2.2 透明传输2.3 差错检测 NAT 技术 1. 因特网的接入方式 光猫将电信号转换为数字信号发送给路由器 光纤入户 光纤传递的就是数字信号&#xff0c…

AI智能雷达名片平台版小程序源码系统 附带完整的搭建教程

随着人工智能技术的快速发展&#xff0c;名片交往在商务社交中变得越来越重要。然而&#xff0c;传统的名片管理系统存在许多问题&#xff0c;如信息不准确、更新不及时、无法快速筛选等。为了解决这些问题&#xff0c;我们开发了AI智能雷达名片平台版小程序源码系统。该系统基…

UPCX:一个日本背景的区块链支付创新项目,面向全球的支付和金融服务市场

日本是区块链技术的发源地之一&#xff0c;也是全球区块链技术的领先国家之一。日本政府对区块链技术持积极支持的态度&#xff0c;制定了一系列的法律法规和政策措施&#xff0c;为区块链技术的发展提供了良好的环境和基础。日本国内各大金融机构和互联网公司等也在积极介入区…

基于SSM+MySQL学生宿舍管理系统的设计与实现(源码+数据库+文档)

摘 要 近年来&#xff0c;随着计算机技术的不断发展和运用&#xff0c;许多实际问题都得到了较好地解决。随着现代社会对企业经营的需求日益增长&#xff0c;企业的无纸办公也逐渐得到了推广。本学生宿舍管理系统的设计开发&#xff0c;目标就是解决宿舍管理复杂的人为管理&a…

【EI会议征稿】第三届光学与机器视觉国际学术会议(ICOMV 2024)

第三届光学与机器视觉国际学术会议(ICOMV 2024) 2024 3rd International Conference on Optics and Machine Vision 第三届光学与机器视觉国际学术会议(ICOMV 2024)将于2024年1月19-21日在中国南昌举行。本次会议将围绕“光学”与"机器视觉”等研究领域展开讨论&#xf…

系统架构设计师教程(三)信息系统基础知识

信息系统基础知识 3.1 信息系统概述3.1.1 信息系统的定义3.1.2 信息系统的发展3.1.3 信息系统的分类3.1.4 信息系统的生命周期3.1.5 信息系统建设原则3.1.6 信息系统开发方法 3.2 业务处理系统 (TPS)3.2.1 业务处理系统的概念3.2.2 业务处理系统的功能3.2.3 业务处理系统的特点…

springboot+ssm+java植物养护花卉花圃管理系统

花圃管理系统&#xff0c;主要的模块包括查看个人中心、游客管理、员工管理、植物种类管理、植物信息管理、植物绿化管理、花圃园区管理、商品服务管理、系统管理等功能。系统中管理员主要是为了安全有效地存储和管理各类信息&#xff0c;还可以对系统进行管理与更新维护等操作…

java--LocalDate、LocalTime、LocalDateTime、ZoneId、Instant

1.为什么要学习JDK8新增的时间 LocalDate&#xff1a;代表本地日期(年、月、日、星期) LocalTime&#xff1a;代表本地时间(时、分、秒、纳秒) LocalDateTime&#xff1a;代表本地日期、时间(年、月、日、星期、时、分、秒、纳秒) 它们获取对象的方案 2.LocalDate的常用API(…

Linux上的MAC地址欺骗

Linux上的MAC地址欺骗 1、查看mac地址法1&#xff1a;ifconfig法2&#xff1a;ip link show 2、临时性改变 MAC 地址法1&#xff1a;使用iproute2工具包法2&#xff1a;使用macchanger工具 3、永久性改变 MAC 地址3.1 在 Fedora、RHEL下实践3.2 在 Debian、Ubuntu、Linux Mint下…

ABAP ALV报表多个屏幕不共用一个布局的处理方法 (独立布局)<转载>

原文链接&#xff1a;https://zhuanlan.zhihu.com/p/592842221 问题描述&#xff1a; 自开发的ALV报表有多个屏幕&#xff0c;如果调整其中一个屏幕的默认布局&#xff0c;则会影响其他ALV界面的布局。 解决方法&#xff1a; 定义内表ls_variant DATA: ls_variant TYPE d…