3.7.2数据库系统-数据库控制技术:数据库的安全性、数据库备份与恢复技术、数据备份、数据库故障与恢复

news/2024/5/5 17:23:09/文章来源:https://blog.csdn.net/qq_41929714/article/details/130130876

3.7.2数据库系统-数据库控制技术:数据库的安全性、数据库备份与恢复技术、数据备份、数据库故障与恢复

  • 数据库的安全性
  • 数据库备份与恢复技术
    • 数据备份
    • 数据库故障与恢复

数据库的安全性

在做信息系统开发的过程当中,数据库是其中很大的占比,信息系统的安全来说的话,数据库页式其中比较重要的一个板块。信息系统的安全性一方面可以通过数据库管理系统自身的机制来控制,也可以通过应用程序来实现对数据库的访问和控制。

这里介绍下数据库安全性的措施和方案。

措施说明
用户标识和鉴定最外层的安全保护措施,可以使用用户账户、口令及随机数检验等方式
存取控制对用户进行授权,包括操作类型(如查找、插入、删除、修改等动作)和数据对象(主要是数据范围)的权限。(Grant和Revoke)
密码存储和传输对远程信息用密码传输
视图的保护对视图进行授权
审计使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来

数据库备份与恢复技术

数据备份

  • 冷备份也称为静态备份,是将数据库正常关闭,在停止状态下,将数据库的文件全部备份(复制)下来。现在正常数据库都是7×24小时不间断运行,因此热备份比较多。
  • 热备份也称为动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来。
优点缺点
冷备份非常快速的备份方法(只需复制文件);容易归档(简单复制即可);容易恢复到某个时间点上(只需将文件再复制回去);能与归档方法结合,做到数据库”最佳状态“的恢复;低度维护,高度安全单独使用时,只能提供到某一时间点上的恢复;在实施备份的全过程中,数据库必须要作备份而不能做其它工作;若磁盘空间有限,只能在复制到磁带等其他外部存储设备上,速度会很慢;不能按表或用户恢复
热备份可在表空间或数据库文件级备份,备份的时间短;备份时数据库仍可使用;可达到秒级恢复(恢复到某一时间点上);可对几乎所有数据库实体做恢复;恢复是快速的不能出错,否则后果严重;若热备份不成功,所得结果不可用于时间点的恢复;困难于维护,所以要特别小心,不允许”以失败告终“
  • 完全备份(海量备份):备份所有数据,
  • 差量备份:仅备份上一次完全备份之后变化的数据
  • 增量备份:备份上一次备份之后变化的数据

完全备份,也叫海量备份:可以将所有数据都备份下来,数据量大,备份时间长,效率相比于其它(差量备份/增量备份)的较慢,但是后面的,差量备份/增量备份这种,必须遵循上一次备份变化后的数据来进行备份,一般是三者相结合来使用的。

差量备份和增量备份:数据量小,但是如果需要恢复的时候,需要找到前一次备份的文件才能进行恢复。
备份的时候都会有一个时间结点去执行,比如有些喜欢计划在星期天晚上的0点或1点进行备份,但是数据库的崩溃可不看你这个时间点,一般可能出现崩溃的时间点是在两次备份过程之间,这样除了要恢复备份文件,还需要去查看日志文件,做相应的恢复操作。

日志文件:事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中。一个事务的完成,一般是遵循先写日志,再写数据库的原则,这样都完成了才算是一个事务完成。而在数据库崩溃的过程中,会有以下情况:

  1. 日志记录了,也写数据库:这个时候,根据记录的修改情况,重新写一遍
  2. 日志记录了,没写数据库:这个时候,因为没有真正的完成,因此要对这一部分数据内容进行撤销
  3. 日志没记录:这个时候,压根没看到事务

日志和备份通常会结合起来来使用。平时做数据库备份的时候,可以自己做计划,一般是数据库管理员去做计划。

请添加图片描述
如上图,假如周六崩溃了,需要恢复。流程如下

  1. 先找到完全备份的文件,A
  2. 找到离A最近的差备,即周五的,B+C+D+E+F
  3. 再找到离B+C+D+E+F最近的增备(没有就不管),即G
  4. 综合才是完整的备份文件数据
  5. 再加上日志文件分析相关数据

数据库故障与恢复

故障关系故障原因解决方法
事务本身的可预期故障本身逻辑在程序中预先设置Rollback语句
事务本身的不可预期故障算术溢出、违反存储保护由DBMS的恢复子系统通过日志,撤销事务对数据库的修改,回退到事务初始状态
系统故障系统停止运转通常使用检查点法(系统重启时自动完成,用户不需干预,基本的步骤是:
通过日志文件,由日志的尾部,从尾部向头部反向扫描,扫描每一个事务有没有成功完成的标志;
如果成功完成了,说明数据库此时有修改,所以已完成的会重新做一遍相关的修改,这部分事务会放在重做的队列中去,即REDO队列;
那么有部分是没有看到正常完成状态的,此时就需要将前面没有完成事务操作的撤销,会把相应的事务放入UNDO队列,然后进行撤销)

系统故障通常可以使用检查点的方式进行恢复,所谓的检查点的方法:就是在一个检查点中记录它的内容,包括这个检查点的时间和当前时刻正在执行的事务的清单,以及这些事务最近一个日志它记录的地址,方便我们利用相应的检查点进行恢复,恢复的时候,从相应地址找到日志的位置(即最后一个检查点记录),然后对正在执行的任务清单来建立UNDO和REDO的队列,建立队列之后,按之前的描述进行重做或者撤销,直到日志结束。
介质故障外存被破坏一般使用日志重做业务
  • 撤销事务(UNDO):反向扫描故障发生时未完成的事务,放入Undo撤销
  • 重做事务(REDO):正向扫描故障发生前已提交的事务,放入Redo重做

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

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

相关文章

【MySQL入门指南】数据库基本操作

文章目录MySQL库操作一、SQL语句二、创建数据库1.语法2.案例3.极其不推荐的方式三、查看数据库1.语法四、修改数据库五、删除数据库六、字符集与校验规则1.是什么2.相关指令3.校验规则的影响七、备份数据库1.基本语法2.注意事项MySQL库操作 一、SQL语句 DDL(data definition l…

Visual Studio Code跳转到CSS定义

Visual Studio Code 快速跳转到 VUE文件 或 CSS文件的定义位置(跳转到class定义,跳转到css定义),插件Css Peek、Vue Peek 对提升开发效率上,事半功倍。 目录 1、跳转到CSS定义 1.1、CSS Peek 1.2、Vue Peek 2、其他…

全国青少年软件编程(Scratch)等级考试一级考试真题2023年3月——持续更新.....

一、单选题(共25题,共50分) 1. 下列说法不正确的是?( ) A.可以从声音库中随机导入声音 B.可以录制自己的声音上传 C.可以修改声音的大小 D.不能修改声音的速度 试题解析:针对声音可以进行导入,上传&…

【C++】哈希的应用 -- 布隆过滤器

文章目录一、布隆过滤器的引入二、哈希函数个数的选择三、布隆过滤器的实现四、布隆过滤器的应用五、布隆过滤器总结一、布隆过滤器的引入 我们在上一节中学习了 位图,知道了位图可以用来快速判断某个数据是否在一个集合中,但是位图有如下的缺点&#x…

计网第五章.运输层—TCP的三次握手与四次挥手

以下来自湖科大计算机网络公开课笔记及个人所搜集资料 目录一、TCP三次握手建立连接为什么TCP客户进程最后还要发送一个普通的TCP确认报文段呢?能不能两次握手?总结:二、TCP四次挥手释放连接四次挥手过程问题1:TCP客户进程在发送完…

论文阅读 - ANEMONE: Graph Anomaly Detection with Multi-Scale Contrastive Learning

目录 摘要 1 简介 2 问题陈述 3 PROPOSED ANEMONE FRAMEWORK 3.1 多尺度对比学习模型 3.1.1 增强的自我网络生成 3.1.2 补丁级对比网络 3.1.3 上下文级对比网络 3.1.4 联合训练 3.2 统计异常估计器 4 EXPERIMENTS 4.1 Experimental Setup 4.1.1 Datasets 4.1.2 …

HuggingGPT强势来袭,LLM+专家模型,迈向更通用的AI

出品人:Towhee 技术团队 超级组合:HuggingFace ChatGPT HuggingGPT强势来袭。人类仿佛距离真正的AGI又更近了一步。 HuggingGPT是浙江大学与微软亚洲研究院的联手研究,发布之后迅速引发关注,已经开源。 它的使用非常简单&#x…

极氪X上市,18.98万元起售,进军紧凑豪华车市场

HiEV消息(文/Amy)4月12日,纯电SUV极氪X上市,共发布三个版本,官方零售价为: •ME版 五座后驱 189,800元 •YOU版 五座四驱 209,800元 •YOU版 四座后驱 209,800元全系三款车型预计将于6月起开启交付。极氪X限…

分享一个RecyclerView嵌套webview 滑动不流畅的解决方法

因RecyclerView 和webview 或者X5的webview 都具有滑动的功能 所以在做嵌套的时候 会出现滑动不流畅 等问题 解决思路 就是判断滑动的时候 是否自身消耗 或者父布局的RecycleView消耗 开发中还遇到个问题 就是 更换成x5的时候 getScrolly() 返回的一直是0 改成getWebScrollY(…

借助Nacos配置中心实现一个简易的动态线程池

目录 一、实现思路 二、实现说明概览 三、代码实现 DynamicThreadPool RejectedProxyInvocationHandler DynamicThreadPoolRegister DynamicThreadPoolRefresher 测试动态线程池 平常我们系统中定义的一些线程池如果要想修改的话,需要修改配置重启服务才能生…

HTTPS-TSL握手

HTTP一般基于TCP协议,而HTTPS就是在这之间加了SSL/TLS协议,那么在TCP三次握手建立TCP连接后,就需要TLS握手建立SSL/TLS连接。 TLS握手-流程 (基于RSA算法) (1)首先,客户端向服务器发…

Linux_vim编辑器

Vi编辑器是所有Unix及Linux系统下标准的编辑器,类似于windows系统下的notepad(记事本)编辑器,由于在Unix及Linux系统的任何版本,Vi编辑器是完全相同的,因此可以在其他任何介绍vi的地方都能进一步了解它&…

多路I/O转接 poll(了解)

poll() 的机制与 select() 类似,与 select() 在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是 poll() 没有最大文件描述符数量的限制(但是数量过大后性能也是会下降)。 p…

LeetCode_单调栈_中等_1019.链表中的下一个更大节点

目录1.题目2.思路3.代码实现(Java)1.题目 给定一个长度为 n 的链表 head。对于列表中的每个节点,查找下一个更大节点的值。也就是说,对于每个节点,找到它旁边的第一个节点的值,这个节点的值严格大于它的值…

最火爆的持续集成工具 jenkins ,详细教程来啦(傻瓜式教程)

很多小伙伴在安装以及配置jenkins的时候,总会遇到一些问题。 今天在这边特地把jenkins的安装,以及常用的一些功能的配置整理到了这篇文章中,希望对大家有所帮助! 1安装JDK JDK安装完需要配置环境变量,大家可以自行百度…

(四)栈—中缀表达式转后缀表达式

一、基本介绍 二、应用实例 将中缀表达式"1((23)x4)-5" 转换为 后缀表达式"1 2 3 4 x 5 -" 思路: 1.初始化两个栈:运算符栈s1和存储中间结果的栈s2; 2.从左至右扫描中缀表达式&#x…

java审计-JDBC注入审计

sql注入 基础 在常见的web漏洞中,SQL注入漏洞较为常见,危害也较大。攻击者一旦利用系统中存在的SQL注入漏洞来发起攻击,在条件允许的情况下,不仅可以获取整站数据,还可通过进一步的渗透来获取服务器权限,…

叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践

导读: 随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时 OLAP 数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实…

阿里云服务器搭建网站流程by宝塔Linux面板

阿里云服务器安装宝塔面板教程,云服务器吧以阿里云Linux系统云服务器安装宝塔Linux面板为例,先配置云服务器安全组开放宝塔所需端口8888、888、80、443、20和21端口,然后执行安装宝塔面板命令脚本,最后登录宝塔后台安装LNMP&#…

crypto-js AES-CTR 实现密文前缀式局部解密细节 踩坑点

项目有需求,长明文经过AES-CTR模式加密后,在解密的时候,密文不能直接得到,每次通过某些方法尝试后,只能得到一块密文(按顺序),所以只能一块一块的拼接解密。在使用crypto-js这个库的…