`

影子数据库

阅读更多

什么是数据库中的影子文件?

A shadow file is an additional copy of the primary database file(s). More than one shadow file may exist for any given database and these may be activated and de-activated at will using the gfix utility.

注:gfix utility是一种数据库系统工具。

 

怎么个应用?

在DBMS(Database Management System 数据库管理系统)中,事务管理器和恢复管理器提供对事务原子性和持久性实现的支持。影子数据库方案是一种提供对事务原子性和持久性实现的方案之一。

具体过程是:欲更新数据库的事务首先创建数据库的一个完整拷贝,所有的更新都在新建的拷贝上进行,而原始数据库(称为影子拷贝)则原封不动。如果任何时候DBMS中的事务不得不中止,则新拷贝简单地被删除,原始数据库不受任何影响;如果事务执行完成,则它的提交过程如下:首先操作系统确保数据库新拷贝上的所有页已被写到磁盘上(在Unix系统中,flush命令用来达到这个目的)。在刷新完成后,名为db-pointer的指针被修改为指向数据库的新拷贝,而影子拷贝则被删除。如图1所示。

 影子技术和镜像技术的区别

影子技术不同于传统的镜像技术,在整个数据恢复的过程中,影子技术是不需要创建镜像的,只是将读取过的区域在影子盘上建立相应的影子,下次读盘时将直接从影子盘上读取,减少了对源盘的读取次数,从而对读源盘起到了很好的保护。影子技术对源盘的读取范围也是非常灵活的,可以从任意的LBA值范围读取,这些都是创建镜像技术所无法比拟的。

 

1、问题的提出
  在DBMS中,事务管理器和恢复管理器提供对事务原子性和持久性实现的支持。这是一个非常复杂的过程,我们以一个简单但效率极低的方案为例,理解DBMS中实现事务原子性和持久性的原理。这个方案就是影子数据库(Shadow-Database)方案,它的前提条件是:
  - 某一时刻DBMS中只有一个活动事务;
  - 要处理的数据库只是磁盘上的一个文件;
  - 磁盘上有一个称为db-pointer的指针指向该文件。

2、影子数据库方案
  在影子数据库方案中,欲更新数据库的事务首先创建数据库的一个完整拷贝,所有的更新都在新建的拷贝上进行,而原始数据库(称为影子拷贝)则原封不动。如果任何时候DBMS中的事务不得不中止,则新拷贝简单地被删除,原始数据库不受任何影响;如果事务执行完成,则它的提交过程如下:首先操作系统确保数据库新拷贝上的所有页已被写到磁盘上(在Unix系统中,flush命令用来达到这个目的)。在刷新完成后,db-pointer指针被修改为指向数据库的新拷贝,而影子拷贝则被删除。
  如图1所示,在影子数据库方案中,只有当修改后的db-pointer指针写到磁盘上后,事务才算是提交了。因此无论是在db-pointer指针修改之前或之后发生故障,都能保证事务的原子性和持久性。现在问题的核心变成了db-pointer指针写操作的原子性!而磁盘系统提供扇区或块更新的原子性。

 

3、与文本编辑的比较
  整个文本编辑的过程也可以看成是一个事务,事务的更新操作就是读文件和写文件。开始编辑文本之前都要复制旧文件的一个副本,不存盘退出就相当于中止事务,存盘退出就相当于提交事务。提交的过程就相当于执行文件重命名命令,而文件重命名是文件系统上的原子操作。

4. While designing the business continuity plan (BCP) for an airline reservation system, the MOST appropriate method of data transfer/backup at an offsite location would be:

A. shadow file processing.

B. electronic vaulting. 电子保险箱,电子储藏室

C. hard-disk mirroring.

D. hot-site provisioning.

--- In shadow file processing, exact duplicates of the files are maintained at the same site or at a remote site. The two files are processed concurrently. This is used for critical data files, such as airline booking systems. Electronic vaulting electronically transmits data either to direct access storage, an optical disc or another storage medium. This is a method used by banks. Hard-disk mirroring provides redundancy in case the primary hard disk fails. All transactions and operations occur on two hard disks in the same server. A hot site is an alternate site ready to take over business operations within a few hours of any business interruption and is not a method for backing up data.

 

  在影子文件处理过程中,最初数据文件的复制文件保留在同一站点或者远程站点,这两种文件处理时保持一致性,这种方法用于重要数据文件,比如在线预约系统、订票系统。电子保险柜将数据电子地传输到直接存储设备、光盘或者其他存储媒体,这种方法常被银行使用。硬盘镜像是在硬盘失败时提供冗余,所有事务和操作在同一服务器两个硬盘上同时发生。热站。

 

  总之,影子数据库方案的致命缺陷是效率极低,一个事务的执行要求复制整个数据库,而且该方案不允许事务并发执行。但DBMS中其他高效的实现方案其原理与此相似!

  影子数据库方案的效率非常低,但是它提供了一个基本思路,要保存用于恢复的数据,就得在事务提交之前,在永久存储设备上保存在事务执行之前的所有数据。保留备份有两种方式,一种是全部备份,就像影子数据库一样;还有就是部分备份,只是对相关的数据进行备份。目前使用的方法一般都是后者,即部分备份。
 

 


 

分享到:
评论

相关推荐

    sierra-shadow-dataset:从Sierra影子数据库sql转储生成联接(和清除)的围兜和商品数据集所需的代码

    NYPL Sierra阴影数据集生成介绍 这是连接Sierra数据副本postgresql bib和item数据库表的sql_dumps的代码。 在此过程中,内部JSON字段被拆开并提取最相关的信息。 此外,还有大量的数据清理和合并,尤其是控制编号。 ...

    影子银行数据(2003-2019).rar

    影子银行数据(2003-2019).rar

    影子ACCESS数据库SQL指令练习器

    自己写的,在网上找了下。没有发现比我这个更好用的ACCESS数据库的SQL指令练习器器了。文件中包含了使用指导。包您30秒内上手!

    MySQL书籍全集

    检索的介绍以及使用、SQL语句的设计、影子数据库使用,存储过程

    斯坦福大学数据库系统实现

    经典教材,数据库实现方面的圣经,你会发现最新的数据库实现方法中很多都可以在其中找到描述或影子。

    MSSQL数据库查看器

    、数据库基本对象的查看(库、表、主键、过程、函数、触发器、游标、视图等) 、数据库相关系统信息 、建表脚本 、表字段相关信息 、表内数据前100条 、存储过程脚本 、过程参数列表 、数据库基本操作(分离、...

    unixium.cr:在基于Unix的系统上为Crystal提供各种有用的实用程序

    Unixium Unixium库为Unix系统提供以下有用的功能: 访问基于Unix的系统的用户数据库,影子数据库和组数据库获取行和列的终端大小还有更多! 注意:该库仍在开发中,在未来几个月内,我们可能会进行各种重大更改,...

    基于PHP 影子系统 v0.001-vd的毕业设计,虚拟化技术Docker、加密技术、缓存技术、MySQL数据库

    我将使用PHP编写前端和后端代码,并使用MySQL数据库存储用户和应用程序数据。 我还将考虑使用其他技术来增强系统的安全性和性能,例如: - 虚拟化技术,如Docker,以提供更安全的隔离环境。 - 加密技术,以确保...

    影子系统(PowerShadow) v8.5.1 正式版.zip

    这些操作包括增加删除文件,软件产生的本地文件或者数据库记录,病毒或者木马程序对电脑的感染,浏览器等软件产生的缓存或者是垃圾文件此模式适合测试新程序,"裸奔"上网,公用电脑管理…… 2、单一影子模式:保护...

    OSLO-Discussion:该存储库是OSLO公共工作组的讨论论坛

    这样,可以创建高质量的最新数据,并避免使用本地影子数据库。这个仓库该存储库的目的是跟踪与各种OSLO标准有关的实质性和语义性问题以及相关问题。 反馈可以随时提供,但其处理方式取决于标准所处的生命周期阶段:...

    计算机网络数据库技术的应用(1).doc

    应用 引言 计算机如今广泛地应用于各行各业,极大地提升了人们的工作效率,几乎和我们的生 活息息相关,在现代各种计算机应用里,几乎都能够看到数据库的影子。比如计算机的 存储系统,各种应用软件以及各种互联网...

    Apache ShardingSphere分布式数据库中间层生态圈 v5.3.2 alpha

    目前,数据分片、读写分离、多数据副本、数据加密、影子库压测等功能,以及对MySQL、PostgreSQL、SQLServer、Oracle等SQL与协议的支持,均通过插件的方式织入项目。开发者能够像使用积木一样定制属于自己的

    论文研究-一种融入MD5的影子表算法研究.pdf

    为了快速提取源头数据、快速识别变化记录以及实现数据的快速...基于影子表的增量提取方法是一种通用的增量捕获方法, 能在任何数据库上实现; 应用程序可以方便地在多种平台间移植, 因此很适合解决异构数据库复制问题。

    fastdb源码 (一个高效率的内存数据库系统)

    事务提交协议基于一个影子根页算法,对数据库执行原子更新操作。恢复操作执行起来非常快,给关键应用程序提供了高效率。另外,它还取消了事务日志,提高了系统的整体性能,并且能够更加有效地使用系统资源。  ...

    影子卫士 Shadow Defender

    影子卫士 Shadow Defender是一种易于使用的数据安全软件,可以还原由于程序员对系统调整引起的bug,至于具体使用请自行开发,比如我就用他处理不想使用虚拟机在win10上安装ORACLE数据库的清洁与debug过程,不过切记...

    C++多表查询(Access数据库)

    C++连接三个表:影子图书馆(图书库存,创建CBookSet记录集);借书登记表、学生表(两表合起来创建CStudentSet记录集)。 在CBookView视图中按下切换到CStudentView视图的按钮【借书登记卡】出错,提示“参数不足,...

    oracle8i_9i数据库基础

    oracle8i_9i数据库基础

    LiquiBase数据库版本管理组件使用示例

    LiquiBase数据库版本管理组件使用示例和详细介绍 1、语法简单,开箱即用 2、功能强大,满足日常数据库脚本变更需求 3、版本管理方便,每次修改都有记录 4、与项目集成,项目启动执行数据库变更,发布省去手动初始化...

    Apache ShardingSphere分布式数据库中间层生态圈-其他

    Apache ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由JDBC、Proxy和Sidecar(规划中)这3款相互独立,却又能够混合部署配合使用的产品组成。它们均提供标准化的数据分片、分布式事务和...

Global site tag (gtag.js) - Google Analytics