数据库备份与恢复方案

1) 综述
    随着办公自动化和电子商务的飞速发展,企业对信息系统的依赖性越来越高,数据库作为信息系统的核心担当着重要的角色。尤其在一些对数据可靠性要求很高的行业如银行、证券、电信等,如果发生意外停机或数据丢失其损失会十分惨重。为此数据库管理员应针对具体的业务要求制定详细的数据库备份与灾难恢复策略,并通过故障模拟对每种可能的情况进行严格测试,只有这样才能保证数据库的高可用性。
    数据库的备份与恢复是两个相对应的概念,备份是恢复的基础,恢复是备份的目的。数据库备份是指系统管理员定期或不定期地将数据库部分或全部内容复制到磁带或另一个磁盘上保存起来的过程。数据库恢复是指在数据库遭到破坏时使数据库从有效的备份中恢复正常。

    数据库的备份是一个长期的过程,而恢复只在发生事故后进行,恢复可以看作是备份的逆过程,恢复效果的好坏很大程度上依赖于备份的策略。此外,数据库管理员在数据恢复时采取的步骤正确与否也直接影响最终的恢复结果。


2) 常见的故障类型

        用户在实际应用神通数据库系统时难免会出现软件、硬件或是突发性故障导致数据库系统无法运行或是数据丢失等情况。常见的数据库故障可以分为两大类:介质故障和非介质故障。 

1、介质故障

      介质故障要称为硬故障,如硬盘损坏磁场干扰,硬件故障导致物理数据库受损(如读写错误, 误删重要文件等)。介质故障发生的可能性小,但破坏性最大。

2、非介质故障

       ■ 事务故障

      由于某种原因(数据输入错误、违背安全性条件、违反了完整性约束、并发事务竞争资源导致死锁等)使事务未运行到正常终止点而夭折,这种情况就称为事务故障。

      ■ 数据库例程故障

       数据库例程故障(OS或DBMS系统有问题、突然停电等)将导致所有正在运行的事务以非正常方式终止。此时内存中数据库缓冲区的数据全部丢失,但物理数据库上的数据未受影响。


3)数据库应对故障的备份策略

     一般来说,数据库产品应对上述故障的备份策略分为物理备份和逻辑备份两种。

     ■ 应对非介质故障的逻辑备份

      逻辑备份就是对数据库对象(如用户、表、存储过程等)利用逻辑备份工具进行导出工作,主要用于应对非介质类型的故障,如系统错误、数据库实例、SQL语句错误等。在故障发生时,可以利用逻辑恢复工具把逻辑备份文件导入到数据库。

      ■ 应对介质故障的物理备份

       物理备份就是转储物理文件(如数据文件、控制文件、归档日志文件等),一旦数据库发生故障,可以利用这些文件进行还原。

      ■ 逻辑备份和物理备份的比较

       逻辑备份是通过逻辑手段记录要备份的数据库对象的信息,是一种对象级备份的方案,因此逻辑备份的备份集的可移植性比较强,可以把数据库的逻辑备份恢复到不同版本不同平台的数据库上,也正因为逻辑备份是对象级的备份,所以备份和恢复的效率比较低,对于大型的系统,采用逻辑备份,其恢复时间之长是大多数大型业务系统所不能忍受的。

       相对而言,物理备份不具备移植性,备份环境和恢复环境必须是完全相同的,由于物理备份是对数据库的文件(Block)进行备份,其备份和恢复速度相对比较快,在大型业务系统中较多地使用物理备份。


4)神通数据库备份与恢复实现机制

       神通数据库支持逻辑备份和物理备份。利用逻辑备份,用户可以对指定数据库中的单个或一组对象执行备份操作。逻辑备份的数据将存放在客户端用户指定的文件中。利用物理备份工具可以对整个神通数据库执行物理备份操作,备份数据将存放在服务器端用户指定的文件夹中,而且可以进行完全备份和增量备份。

  ■ 逻辑备份操作说明

        目前神通数据库的逻辑备份支持表、索引、视图、存储过程、触发器、序列对象,暂时不支持角色、表空间、数据文件、日志组。逻辑备份工具采用图形化的操作界面如下图:


 

       进入欢迎界面点击下一步。如下图:

 
       输入服务器地址、端口、数据库名称、用户名,密码用于连接数据库服务器,执行下一步操作。如下图:

选择要备份的数据库对象,数据库中的对象将以树的形式显示出来,用户可以在对话框中选择需要进行备份的数据库对象。如下图:

 

      在对话框中,单击〈展开结点〉按钮将展开树中当前显示的所有结点,多次点击可以展开所有结点;单击〈刷新〉按钮将刷新对象树;单击〈关闭〉按钮将关闭对象选择对话框。在备份对象设置界面上单击〈下一步〉按钮,如果输入正确的话将进入目标设置界面如下图:

点击执行按钮进入备份进程界面。如图:

 

■ 逻辑恢复操作说明

逻辑恢复就是将之前逻辑备份文件导入数据库中,如下图:

 

      点击“下一步”同样先进入数据库认证界面,输入服务器地址、端口、数据库名称、用户名,密码用于连接数据库服务器。如下图:

 

选择之前的备份文件,进行数据库对象的恢复。如下图:

 
 

      用户选择备份文件后,恢复工具将对备份文件进行分析,解析出所有的备份对象将它们显示在对象树上,对象树可以通过单击〈选择要恢复的数据库对象…〉弹出的对象选择对话框进行查看。如下图:

 

      单击〈展开结点〉按钮将展开树中当前显示的所有结点,多次点击可以展开所有结点;单击〈刷新〉按钮,恢复工具将会重新分析备份文件并更新对象树,单击〈关闭〉按钮将关闭对象选择对话框。所有设定都完成以后,恢复工具将进行恢复操作,进入恢复进程界面,用户可以大致了解恢复的进行状态。如下图:

■ 物理备份操作说明
      物理备份在保证数据一致性的前提下,将与数据库恢复有关的文件进行备份。物理备份方式可分为两种:联机备份(热备份)和脱机备份(冷备份)。
      联机备份:在不中断数据库的正常服务的情况下,由管理员对数据库执行的备份。联机备份必须工作在归档(achieve)模式,在发生介质故障进行恢复时, 能够恢复到与数据库备份结束时一致的状态。
      脱机备份:关闭数据库例程,用操作系统的命令或实用工具备份数据库文件。脱机备份分为归档模式和非归档模式。

神通数据库物理备份工具同样也采用了图形化的操作界面。在“物理备份与恢复”节点点击右键,或在“物理备份与恢复”操作面板单击右键,选择“物理备份数据库”,点击物理备份数据库连接进入物理备份数据库界面。

      对话框中可以填写物理备份的信息。其中基本信息包括描述、备份对象、备份模式和备份到目标路径,高级选项包括永久保存和加密备份两个选项。

     备份时可以选择备份整个数据库或单独备份某(几)个表空间、数据文件。在备份对象下拉菜单中选择表空间可以查看到当前连接的数据库实例中所有的表空间。神通数据库支持对表空间的完全备份,暂不支持增量备份和差异备份。当选择“备份对象”为数据文件时可以查看到当前数据库的所有数据文件,然后选中想要备份数据文件复选框即可。

      神通数据库支持三种备份模式:完全备份、增量备份、差异备份。

      完全备份:对当前数据库的控制文件和数据文件进行全面的备份,包含从创建数据库到备份时的所有数据。

      增量备份:当前数据库与基准点物理备份(最新的物理备份,可以是完全备份、增量备份和差异备份)做比较,备份这期间所有发生变化的数据。
      差异备份:备份上一次完全备份后发生变化的所有数据,其基准备份为最新的完全备份。
对话框中的“高级选项”的永久保存和加密备份的作用如下:
      永久保存:选择“永久保存”后,此备份将不能被“删除物理备份类型的调度任务”清除,只能手动删除。
      加密备份:对备份文件进行加密压缩,增加安全性并节省存储空间。

      设置好物理备份属性后点击〈确定〉按钮,将进行物理备份操作,并弹出【物理备份数据库进度】窗口,显示备份进度,完成备份操作。

■ 物理恢复操作说明

      在“物理备份与恢复”节点点击右键,或在“物理备份与恢复”操作面板单击右键,选择“物理恢复数据库”。

      物理恢复数据库时使用的物理备份有两种来源,分别是“内部备份”和“外部备份”。其中内部备份是神通数据库服务器内保存有备份信息的备份,而从外部备份是其他服务器的备份文件或本服务器上已删除数据库的备份文件。

恢复内部备份

       目前神通数据库有三种恢复模式,分别是〈完全恢复〉、〈备份点恢复〉和〈时间点恢复〉。

       完全恢复:通过应用相关备份、归档日志和在线日志将数据库恢复到故障点(数据库最后一次正常或非正常退出)的一致性状态。

       备份点恢复:将数据库的控制文件,数据文件恢复到指定备份点的一致性状态,并重建在线日志组文件。

       时间点恢复:通过应用相关备份、归档日志和在线日志将数据库恢复到过去某个时间点的一致性状态。

       所有的设定都完成以后点击〈确定〉按钮进行恢复操作,如果数据库正在运行会出现提示信息,如果数据库已停止则进入恢复进度界面。

恢复外部备份

      如果当前数据库没有任何可用的内部备份,用户只能选择“外部备份”。需要将其他数据库服务器上的备份复到目标服务器上。使用外部备份时,需要用户通过【浏览物理备份】对话框,然后指定外部备份所在目录,系统会列出该目录下(不包括子目录)的所有备份文件(包括内部备份),用户可以选择相应的备份文件来进行恢复。

       在浏览外部备份时,系统只有在遍历到的文件扩展名为“.osrbk”的文件时才会进一步检查该文件是否为神通数据库的物理备份文件,所以如果因其他原因造成备份文件扩展名改变的需要改回“.osrbk”。