【数据库原理 • 六】数据库备份与恢复

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 数据库技术是计算机科学技术中发展最快,应用最广的技术之一,它是专门研究如何科学的组织和存储数据,如何高效地获取和处理数据的技术。它已成为各行各业存储数据、管理信息、共享资源和决策支持的最先进,最常用的技术。当前互联网+与大数据,一切都建立在数据库之上,以数据说话,首先需要聚集数据、分析数据和管理数据,数据库技术已成为各种计算机系统的核心技术。数据库相关知识也已成为每个人必须掌握的知识。

一、事务

事务在数据库管理系统对的运行管理功能中发挥着巨大的作用,是并发控制和故障恢复的重要基础理论。


1.1 什么是事务?

事务是指用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。在关系数据库系统中,一个事务可以是一条SQL语句,也可以是一组SQL语句。


我们要知道事务是恢复和并发控制中功能语句的基本单位。


1.2 事务的特性(ACID)

事务具有四个特性:


原子性(Atomicity)

一致性(Consistency)

隔离性(Isolation)

持续性(Durability)

这四个特性也简称为ACID特性


1.2.1 原子性

事务是数据库的逻辑工作单位,事务中包括的各操作要么都做,要么都不做


1.2.2 一致性

事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。

因此当数据库中只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,系统将事务中对数据库的所有已完成的操作全部撤消,回退到事务开始时的一致状态。


一致性与原子性实例:


银行转帐:从帐号A中取出一万元,存入帐号B。


定义一个事务,该事务包括两个操作


A B

A=A-1

B=B+1

以上这两个操作要么全做,要么全不做


全做或者全不做,数据库都处于一致性状态。

如果只做一个操作,数据库就处于不一致性状态。


1.2.3 隔离性

一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。


A B

1 R(A)=16

2  R(A)=16

3 W(A)=A-1,A=15

4  W(A)=A-2,A=14

1.2.4 持续性

持续性指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。


1.3 事务控制语句

根据事务的ACID特定,如Oracle提供了如下一组语句对事务进行控制


(1)SET TRANSACTION


设置事务的属性。


(2)SET CONSTRAINS


在当前事务中设置约束模式。约束模式是指在事务中修改数据时,数据库中的约束是立即应用于数据,还是将约束推迟到当前事务结束后应用。


(3)SAVEPOINT


在事务中建立一个存储点。当事务处理发生异常而回滚事务时,可指定事务回滚到某存储点,然后从该存储点重新执行。


(4)RELEASE SAVEPOINT


删除一个存储点。


(5)ROLLBACK


回滚事务,即取消对数据库所做的任何修改。


(6)COMMIT


提交事务,即把事务中对数据库的修改进行永久保存。


二、 数据库的恢复技术

2.1 故障的种类

数据库系统中可能发生各种各样的故障,破坏事务原子性和引起数据库错误的原因很多,大致可以分为以下4类。


事务内部的故障

它是指由于事务没有达到预期的终点,导致数据库可能处于一种不正确的状态。


系统故障

系统故障(通常称为软故障,Soft Crash)是指在造成系统停止运转的任何事件(如硬件故障、操作系统错误、DBMS代码错误、突然停电等)的影响下,使正在运行的事务都以非正常的方式终止,从而引起的内存信息丢失,但未破坏外存中的数据,致使系统需要重新启动。


介质故障

系统故障常称为软故障(Soft Crash),介质故障称为硬故障(Hard Crash)。硬故障指外存故障,如磁盘损坏、磁头碰撞,瞬时强磁场干扰等。这类故障将破坏数据库或部分数据库,并影响正在存取这部分数据的所有事务。这类故障比前两类故障发生的可能性小得多,但破坏性最大。

这类故障的恢复需要装入数据库发生介质故障前某个时刻的数据副本,重做自此时开始的所有成功事务,将这些事务已提交的结果重新记入数据库中


计算机病毒

计算机病毒是一种人为的故障或破坏,是一些恶作剧者研制的一种计算机程序。这种程序与其他程序不同,它像微生物学所称的病毒一样可以繁殖和传播,并造成对计算机系统包括数据库的危害。数据库一旦被破坏,仍要求用恢复技术对数据库加以恢复。


总结各类故障,对数据库的影响有两种可能性。一是数据库本身被破坏。二是数据库没有破坏,但数据可能不正确,这是因为事务的运行被非正常终止造成的。


2.2 数据转储与恢复

数据库若要成功地进行恢复,备份的过程中必须涉及的一个关键问题即如何建立冗余数据。建立冗余数据最常用的技术是数据转储和日志文件。通常在一个数据库系统中,这两种方法是一起使用的。


2.2.1 数据转储

所谓转储即DBA(数据库管理员)定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些备用的数据文本称为后备副本或后援副本。


2.2.2 转储方法

静态转储与动态转储


海量转储与增量转储


微信图片_20230527151414.png


2.2.3 静态及动态转储

什么是静态转储?


在系统中无运行事务时进行转储,转储开始时数据库处于一致性状态,转储期间不允许对数据库的任何存取、修改活动。


优点: 实现简单。


缺点: 转储必须等用户事务结束;新的事务必须等转储结束;降低了数据库的可用性。


利用静态转储副本进行恢复:


微信图片_20230527151418.png


什么是动态转储?


转储操作与用户事务并发进行,转储期间允许对数据库进行存取或修改。


优点: 不用等待正在运行的用户事务结束;不会影响新事务的运行。


缺点: 不能保证副本中的数据正确有效。


2.2.4 日志文件

日志文件是用来记录事务对数据库的更新操作的文件。不同数据库系统采用的日志文件格式并不完全一样,但是日志的功能是相同的。日志文件在数据库恢复中都起着非常重要的作用。可以用来进行事务故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复。

当数据库毁坏后可重新装入后援副本把数据库恢复到转储结束时刻的正确状态,然后利用日志文件,把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤消处理。这样不必重新运行那些已完成的事务程序就可把数据库恢复到故障前某一时刻的正确状态。

微信图片_20230527151425.png


目录
相关文章
|
1月前
|
缓存 算法 关系型数据库
Mysql(3)—数据库相关概念及工作原理
数据库是一个以某种有组织的方式存储的数据集合。它通常包括一个或多个不同的主题领域或用途的数据表。
50 5
Mysql(3)—数据库相关概念及工作原理
|
17天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
34 2
|
5月前
|
存储 关系型数据库 MySQL
MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)
MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)
|
1月前
|
SQL 关系型数据库 数据库
SQL数据库:核心原理与应用实践
随着信息技术的飞速发展,数据库管理系统已成为各类组织和企业中不可或缺的核心组件。在众多数据库管理系统中,SQL(结构化查询语言)数据库以其强大的数据管理能力和灵活性,广泛应用于各类业务场景。本文将深入探讨SQL数据库的基本原理、核心特性以及实际应用。一、SQL数据库概述SQL数据库是一种关系型数据库
54 5
|
1月前
|
SQL 关系型数据库 MySQL
sql注入原理与实战(三)数据库操作
sql注入原理与实战(三)数据库操作
sql注入原理与实战(三)数据库操作
|
1月前
|
SQL 存储 Java
sql注入原理与实战(二)数据库原理
sql注入原理与实战(二)数据库原理
|
3月前
|
消息中间件 Kafka 数据库
深入理解Kafka的数据一致性原理及其与传统数据库的对比
【8月更文挑战第24天】在分布式系统中,确保数据一致性至关重要。传统数据库利用ACID原则保障事务完整性;相比之下,Kafka作为高性能消息队列,采用副本机制与日志结构确保数据一致性。通过同步所有副本上的数据、维护消息顺序以及支持生产者的幂等性操作,Kafka在不牺牲性能的前提下实现了高可用性和数据可靠性。这些特性使Kafka成为处理大规模数据流的理想工具。
82 6
|
4月前
|
存储 SQL 关系型数据库
(六)MySQL索引原理篇:深入数据库底层揭开索引机制的神秘面纱!
《索引原理篇》它现在终于来了!但对于索引原理及底层实现,相信大家多多少少都有了解过,毕竟这也是面试过程中出现次数较为频繁的一个技术点。在本文中就来一窥`MySQL`索引底层的神秘面纱!
340 5
|
4月前
|
SQL 存储 安全
SQL数据库:核心原理、应用实践与未来展望
在电子商务领域,SQL数据库用于存储商品信息、用户信息、订单信息等。通过SQL数据库,电商平台可以实现商品的快速检索、用户行为的跟踪分析、订单状态的实时更新等功能,提升用户体验和运营效率。
|
3月前
|
存储 NoSQL 关系型数据库
Web中的数据库:原理、应用与代码实现
Web中的数据库:原理、应用与代码实现
109 0