nkj827
作者nkj827·2020-04-04 14:42
项目经理·长春长信华天

关于数据库的备份与恢复

字数 4654阅读 4316评论 0赞 18

前言(引言): 数据库运行过程中,会产生各种各样的事件,从而导致系统的不完全或者不能正 常工作而崩溃,如突然断电,病毒,黑客等。同时在备份的过程中也是难免要遇到问题,如事务故障、系统故障、磁盘故障等,这些时刻威胁着系统的安全,所以如 何做好事前备份及事后恢复来减少数据损失是至关重要,但是何时备份、何时恢复也是很重要的因素,如果备份时间间隔过短会加大系统的开销,但是相反可能会丢 失很多数据,选择何时的备份尤其重要。

1 目前数据备份与恢复系统的发展与研究情况

1.1 发展背景

当今信息社会,人类的生活方式越来越依赖计算机系统。最珍贵的不是计算机软件,更不是计算机硬件,而是存储在计算机系统内的数据。然而,人为的操作错误、 软件的缺陷、硬件损坏、病毒的破坏、自然灾害等诸多因素都可能造成计算机系统内的数据失效。所以应该强调指出:数据是资产,备份最重要。

但是数据的备份目前为止还没有引起国内学术界政府结构、企事业单位的足够重视。数据的备份在一些用户和操作者中也没有得到足够的重视。基于数据失效,在灾前进行备份数据,在灾后能及时、准确地恢复数据。有备无患,定期做好数据备份是非常有必要的。

1.2 目前针对该系统的研究情况、研究方向及设计思想

就目前查阅的文献和论文资料来看,现在还没有用 Java 实现数据库备份与恢复的系统,但是找到了大量的数据库利用自身恢复的方法和技巧,数据库备份及恢复具体的方法和发展如下几个方面:

1.2.1 数据库备份技术

1.2.1 .1 数据备份的方式

按照备份数据库的大小数据库备份有四种类型,分别应用于不同的场合,下面简要介绍一下。

(1) 、完全备份

这是大多数人常用的方式,它可以备份整个数据库,包含用户表、系统表、索引、视图和存储过程等所有数据库对象。但它需要花费更多的时间和空间,所以,一般推荐一周做一次完全备份。

(2) 、事务日志备份

事务日志是一个单独的文件,它记录数据库的改变,备份的时候只需要复制自上次备份以来对数据库所做的改变,所以只需要很少的时间。为了使数据库具有鲁棒性,推荐每小时甚至更频繁的备份事务日志。

(3) 、差异备份

也叫增量备份。它是只备份数据库一部分的另一种方法,它不使用事务日志,相反,它使用整个数据库的一种新映象。它比最初的完全备份小,因为它只包含自上次完全备份以来所改变的数据库。它的优点是存储和恢复速度快。推荐每天做一次差异备份。

(4) 、文件备份

数据库可以由硬盘上的许多文件构成。如果这个数据库非常大,并且一个晚上也不能将它备份完,那么可以使用文件备份每晚备份数据库的一部分。由于一般情况下数据库不会大到必须使用多个文件存储,所以这种备份不是很常用。

按照数据库的状态可分为三种:

(1) 、冷备份,此时数据库处于关闭状态,能够较好的保证数据库的完整性。

(2) 、热备份,数据库正处于运行状态,这种方法依赖于数据库的日志文件进行备份。

(3) 、逻辑备份,使用软件从数据库中提取数据并将结果写到一个文件上。

1.2.2 备份软件该具备哪些功能

(1) 、 集中式管理 : 跨网络备份,只要一台管理工作站,便能管理到整个网络的备份工作,并且可以从工作站上备份与存回个整网络上的数据。

(2) 、自动化备份与恢复 : 自动化不需要人力去操作或更换磁带媒体 ( 使用自动换带机 ) 可以降低人员维护成本 , 而自动化作业不需要人工操作的特性 , 也可以确保人为操作上的错误不致发生,增加备份的可靠度。

(3) 、安全性与可靠性 : 备份数据前自动对文件进行病毒扫描 , 能够确保备份的数据并未遭受病毒感染 , 以后再读出验证 , 以及提供同位检查信息 , 能确保储存在磁带媒体上的数据是正确的。

(4) 、灾难防治与重建 : 可以在系统毁损而必须完全重新安装操作系统 , 应用程序的状态下 , 提供简便且快速的能力 , 以简单的几个步骤 , 跳过重新安装操作系统与应用程序的步骤 , 直接将损毁的系统在最短的时间内恢复原状。

(5) 、多磁带设备的管理功能 : 可以在最短的时间内同时对大量的数据进行备份 , 以同时写入数据至多磁带的功能 , 提供高速的备份能力 .

1.2.2 .1 该设计所需技术

目前存在的 VB 、 Delphi 技术都能实现这种系统的功能,下面就它们共有的技术进行列举:

(1) 、用 VB 实现的数据库备份与恢复用 ADO 连接 SQL-Server 数据库

备份时首先要断开所有数据库的连接,还要将连接的数据库所要备份的数

据库改成 Master 。因为在恢复时,该数据库不能有任何连接,必须独占,而

ADO 又一定要连一个真实的数据库。所以,就选择一个 SQL 的系统数据库 Master 。

通过对前台的操作来实现数据库的备份与恢复操作 , 使得数据库的维护工作变得非常简单方便 , 操作人员无需任何 SQL-Server 知识。杜绝了数据库误操作的可能性 , 保证了数据的安全性。

该系统最大的弊端就是备份时系统不能工作,对于实时性要求较高的

系统来说是不可能的,而且这种备份也是不可能,效率比低,所以不现实。

(2) 、 Delphi 中 SQL Server 数据库备份与恢复的实现

本系统是用 Delphi 作前端开发工具 , 用 SQL Server 作后台数据库服务器 , 是目前开发管理信息系统非常常见的情况。数据库的备份与恢复是信息系统中必不可少的功能 , 尽管 SQL Server 数据库提供了备份与恢复的功能 , 但操作较复杂 , 需要有数据库的专业知识。本系统能提供给客户端简便的数据库备份与恢复功能。本文介绍的方法是 在 Delphi 中进行 SQL Server 数据库备份与恢复 , 实现起来简便、可靠 , 并已成功地应用于作者开发的 “ 售楼管理系统 ” 中。

存储过程是 SQL 语句和可选控制流语句的预编译集合 , 以一个名称存储并作一个单元处理。存储 过程保存在数据库端 , 用于可以在客户端直接调用执行存储过程。在存储过程中允许使用用户声明的变量 , 可以接受参数、输出参数、返回单个或多个结果集以及返 回值等。存储过程处理起来非常灵活 , 而且也不容易掌握 , 属于数据库应用的高级专题。灵活使用存储过程可以设计出高效的、功能强大的数据应用程序。

在 Delphi 中调用 SQL Server 的两个存储过程就可以实现数据库备份与恢复。存储过程利用输入参数从客户端获取所要备份或恢复的路径或文件名。

在数据库备份与恢复时 , 只允许除本身数据库以外的一个数据库连接 , 并且必须独占数据库 , 若条 件不满足则不能进行。因而在进行备份或恢复时 , 要动态地获取计算机名即 SQL Server 数据库服务器名 , 建立数据库的连接 , 由于本实现方法是将以上 2 个存储过程存放于系统数据库 master 中 , 所以应建立与系统数据库 master 的连接。为给用户提供较大的灵活性 , 应允许用户选择备份或恢复的路径或文件名。由 Delphi 创建一个窗体 , 用户在窗体中可选择备份或恢复的路径或文件名 , 动态地创建相应的 SQL 语句 , 调用存储过程提交给数据库执行数据库的备份或恢 复。

1.2.3 中和前两种技术的数据库备份与恢复

第一个方法比较简单, VB 可视化界面设计方便快捷,但是也存在许多不足,由于 VB 的自身许多因素,使用 VB 编写是程序已经很少了。对于第二种方法 — Delphi 中 SQL Server 数据库备份与恢复的实现可以作为很重要的参考实现方法,很明显这是 Delphi 是现在比较流行的语言,尤其重要的是对数据库的支持及其强大的 功能很受程序员喜爱,所以用 Delphi 开发是值得考虑的方法,但是以上的数据库备份和恢复在使用上的局限也很明显的,所以开发一种通用数据库备份尤为重 要。

2 目前数据库备份方面存在的体系结构

2.1 系统结构分析

目前系统结构设计的主流技术有:针对 oracle 、针对 SQL-Server 和 Ubase 等数据库备份。

由于目前的数据库备份软件只能针对某个单一系统的数据库的备份,甚至有的只是简单的备份,没有恢复功能,功能单一,从本次设计所要实现的功能来看,这样难以满足设计要求,所以使用多数据库的备份和恢复是本文主要考虑的问题。

2.2 系统结构的选择

鉴于方便用户、赢得顾客满意度考虑,以及对设计所要完成的功能要求来看通用性是最佳选择。

3 当前数据库存在的开发环境、开发工具及涉及的数据库技术

3.1 基于 Java 开发的系统软件平台分析

从参考文献得知 Java 具有如下优点:

(1) 、 Java 是简单的

(2) 、 Java 是面向对象的

(3) 、 Java 是静态类型的

(4) 、 Java 是健壮的

(5) 、 Java 是与平台无关的

(6) 、 Java 是可扩展的

(7) 、 Java 是安全的

(8) 、 Java 是快速的

(9) 、 Java 是多线程的

(10) 、 Java 是动态语言

最重要的是 Java 具有良好的移植性,这也是我考虑使用 Java 的重要的原因,因为他不受平台的限制,一次编译,处处运行,这就带来了方便。

3.2 数据库技术分析

(1) 、 Access 数据库

是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效 率也很高。但是它的同时访问客户端不能多于 4 个。 access 数据库有一定的极限,如果数据达到 100M 左右,很容易造成服务器 IIS 假死,或者消耗掉服 务器的内存导致服务器崩溃。

(2) 、 SQL Server 数据库

是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比 Access 要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。因为现在数据库都使用标准的 SQL 语言对数据库进行管理,所以如果 是标准 SQL 语言,两者基本上都可以通用的。 SQL Server 还有更多的扩展,可以用存储过程,数据库大小无极限限制。

3.3 系统软件平台的选择

由于系统结构采用的是 Java 结构,又因要求数据的安全性高、执行速度要快,所以本次开发我将选择基于 Java 技术的软件平台,即采用 Jbuilder2006 。

4 数据库备份与恢复系统设计中,准备实现的最基本的功能模块

4.1 用户管理模块

用户管理模块中包括对管理员的信息管理以及对普通用户的管理。

只有系统超级管理员才能添加或删除其他的管理员信息, 普通管理员只

能修改自己的基本信息。对普通用户的管理即用来对数据处理信息。

4.2 数据库备份与恢复模块

4.2.1 数据库备份管理

主要实现选择你所要备份的数据库、备份类型等,其中包括自动备份和手动备份设置。而且包括备份间隔时间等信息。

4.2.2 数据库恢复管理

数据恢复可以选择恢复的具体的时间等信息。

结论:本文从数据库备份与恢复系统现状分析出发,介绍了数据库备份与恢复系统的概况及作用, 对数据备份与恢复系统设计和实现的思路有了比较清楚的理解,这会对在以后的开发过程起了建设性的指导作用。并通过当前流行的几种开发技术的介绍分析,确定 了使用 Java 开发数据库备份与恢复系统的技术。并介绍了 Java 编写数据库备份与恢复程序的优势。然后介绍了基于 Java 数据库的备份与恢复系统所要实 现的基本功能。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

18

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广