ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 用 Data Studio Administrator 恢复数据库

用 Data Studio Administrator 恢复数据库

原创 Linux操作系统 作者:ArtCode 时间:2009-06-05 16:26:53 0 删除 编辑

Tawanna Harris, 专职软件工程师, IBM
Sailaja Bandlamoori, 专职软件工程师, IBM

简介

几乎所有 DBA 都有过这样的经历:当意识到一些无法控制的状况已经毁坏或丢失了数据库中的数据时,一定会感到很沮丧。当务之急是从意外事故中恢复过来。一切可用于让恢复任务变得更简单的办法都有助于缩短停机时间。从长远来看,将恢复管理变成一种更自然的日常行为,这样可以减轻出现问题时的压力,并更快地进行恢复。

本文讲述一个名叫 Erik 的 DBA 的故事。 Erik 在 JK Enterprises Great Outdoors(一家虚构的公司)工作,他使用 IBM Data Studio Administrator 备份公司的关键销售数据库。在错误的应用程序逻辑意外地删除了多个表中的数据之后,Erik 开始挽救和恢复数据库。他还可以将数据库前滚到应用程序破坏数据之前的一个时间点。

免费版的 Data Studio Administrator 提供了本文中描述的功能,可以通过下载 Data Studio Administrator 试用版并且禁用 Database Change Management 获得这些功能。 安装和购买 Database Change Management 特性可获得以下好处:它提供对扩展的变更的支持,包括数据保留和对依赖对象的管理,例如约束、视图、触发器和引用完整性。

下面概述了本文描述的备份和恢复步骤:

  1. 如果还没有建立连接,则建立与受影响的数据库的连接。
  2. 查看数据,看看表中有哪些行。
  3. 使用备份任务助手备份系统。
  4. 运行示例 delete 语句,模拟删除两个表中所有行的错误的应用程序逻辑。
  5. 使用恢复任务助手恢复数据库,并前滚到运行 delete 语句之前的时间点。
  6. 查看更新后的行数,验证执行恢复操作之后数据是否完整无缺。
    文档选项
    将打印机的版面设置成横向打印模式

    打印本页

    将打印机的版面设置成横向打印模式

    打印本页

    将此页作为电子邮件发送

    将此页作为电子邮件发送

    将此页作为电子邮件发送

    将此页作为电子邮件发送

    未显示需要 JavaScript. 的文档选项

    英文原文

    英文原文


    级别: 初级

    Tawanna Harris, 专职软件工程师, IBM
    Sailaja Bandlamoori, 专职软件工程师, IBM

    2009 年 5 月 31 日

    作为一名 DBA,在备份和恢复策略中安排定期的数据库系统备份非常重要。当应用程序或硬件出现故障时,就可以使用备份来恢复数据库。本文遵循在一家虚构公司担任 DBA 的 Erik 的日常工作场景进行论述。这一天,问题来了,Erik 发现错误的应用程序逻辑删除了公司的 GOSALES 数据库中多个表中的记录。但是,由于 Erik 之前使用 Data Studio Administrator 2.1 对数据库进行了备份,他可以将数据库恢复到初始的状态。

    简介

    几乎所有 DBA 都有过这样的经历:当意识到一些无法控制的状况已经毁坏或丢失了数据库中的数据时,一定会感到很沮丧。当务之急是从意外事故中恢复过来。一切可用于让恢复任务变得更简单的办法都有助于缩短停机时间。从长远来看,将恢复管理变成一种更自然的日常行为,这样可以减轻出现问题时的压力,并更快地进行恢复。

    本文讲述一个名叫 Erik 的 DBA 的故事。 Erik 在 JK Enterprises Great Outdoors(一家虚构的公司)工作,他使用 IBM Data Studio Administrator 备份公司的关键销售数据库。在错误的应用程序逻辑意外地删除了多个表中的数据之后,Erik 开始挽救和恢复数据库。他还可以将数据库前滚到应用程序破坏数据之前的一个时间点。

    免费版的 Data Studio Administrator 提供了本文中描述的功能,可以通过下载 Data Studio Administrator 试用版并且禁用 Database Change Management 获得这些功能。 安装和购买 Database Change Management 特性可获得以下好处:它提供对扩展的变更的支持,包括数据保留和对依赖对象的管理,例如约束、视图、触发器和引用完整性。

    下面概述了本文描述的备份和恢复步骤:

    1. 如果还没有建立连接,则建立与受影响的数据库的连接。
    2. 查看数据,看看表中有哪些行。
    3. 使用备份任务助手备份系统。
    4. 运行示例 delete 语句,模拟删除两个表中所有行的错误的应用程序逻辑。
    5. 使用恢复任务助手恢复数据库,并前滚到运行 delete 语句之前的时间点。
    6. 查看更新后的行数,验证执行恢复操作之后数据是否完整无缺。




    回页首


    先决条件

    使用以下步骤安装和配置一个环境,以便遵循 Erik 的场景:

    1. 该场景要求安装 Data Studio Administrator Version 2 Release 1 和 Fix Pack 1。

      如果还没有安装 Data Studio Administrator Version 2 Release 1,那么请使用 参考资料 小节中的链接下载该产品的试用版。

      如果还没有将 Fix Pack 1 安装到 Data Studio Administrator Version 2 Release 1 系统上,请使用 参考资料 小节中的链接获得 Fix Pack 1 安装文件和说明。

    2. 另外还必须安装一个受支持的 DB2® 版本。如果还没有安装 DB2,请使用 参考资料 小节中的链接下载 DB2 Express-C,这是免费版的 DB2 Express Edition。
    3. 遵循以下步骤创建一个名为 GSDB 的示例数据库:
      1. 从本文的 下载 小节获得 GSDB_Database.zip 文件,并从中提取 GSDB_Database.sql 文件。
      2. 打开一个 DB2 Command Window。
      3. 导航到保存 GSDB_Database.sql 文件的位置。
      4. 输入以下命令:
        db2 -td~ -f GSDB_Database.sql
    4. 将默认的循环日志记录(circular logging)改为使用归档日志记录。要使用归档日志记录,必须使用 UPDATE DATABASE CONFIGURATION 命令将 LOGARCHMETH1 设置为 OFF 以外的一个值,如下所示:
      UPDATE DB CFG FOR GSDB USING logarchmeth1 "DISK:C:\GSDB_ARCHIVE" failarchpath \
      "C:\GSDB_failure" logprimary 2 logsecond 0 logfilsiz 1024;
      


      所谓恢复,是在出现问题,例如媒介或存储故障、断电或应用程序故障后,重建数据库或表空间。如果已经备份了数据库或单个的表空间,那么一旦它们被毁坏,就可以重建它们。

      循环日志记录 意味着日志被不断覆盖,只保留确保当前 事务的完整性所需的日志。由于这种类型的恢复操作是将数据恢复到特定的时间点,在此时间点曾做过完全备份,因此被称作版本恢复。当创建数据库时,这是默认的日志记录选项,正因为如此,才需要显式更改它,以便能遵循本文描述的场景。

      为了支持前滚恢复,重新应用备份之后做出的更改,必须使用归档日志记录(archive logging)。顾名思义,归档日志记录确保您具有所需的日志,以便通过适当的归档和归档日志恢复到特定的时间点。

      要了解更多信息,请参阅 DB2 for Linux®, Unix®, and Windows® Information center 中的 “Understanding recovery logs” 专题。

      注意:在以上显示的命令中,第一行末尾的反斜杠字符只是用于表明同一行的延续。因此不要在命令中输入反斜杠。在 DB2 Command Window 中实际上只需输入一个连续的字符串作为命令。



      以上命令指定:

      • 使用归档日志记录。
      • 将归档日志保存到 GSDB_ARCHIVE 目录。
      • 如果归档日志记录失败,那么写到临时目录 GSDB_failure。
      • 有两个主日志,没有辅助日志。
      • 主日志大小为 1024 个 4KB 的页面。

      在该场景的某一个步骤中,您在更改了日志记录选项后,对数据库执行完全离线备份。



    本文接下来的小节描述 Erik 在一天中遇到的主要事件,并详细说明他采取的操作。细节采用逐步说明的形式,以便您可以遵循逐步说明,获得自己的实践经验。



    连接到数据库

    所有 Data Studio 产品都使用一个相同的 Data Source Explorer 连接到数据库。在本场景中,Erik 执行的第一个任务是建立到 GSDB 数据库的连接,如下所示:

    1. 在 Data Source Explorer 中,右键单击 Database Connections,并选择 New…,如图 1 所示。

      图 1. 从 Data Source Explorer 连接到数据库
      创建新的数据库连接的 Data Source Explorer 屏幕

    2. 输入所需的连接参数,并单击 Test Connection 按钮,验证连接,如图 2 所示。


      使用 Connection Identification 屏幕输入连接参数并测试连接

    3. 如果连接成功,单击 Next 按钮。
    4. 在 Filter 屏幕中做出选择,以包括 GOSALES 和 GOSALESCT 模式,并单击 Finish 按钮,如图 3 所示。


      在 filter 屏幕中包括 GOSALES 和 GOSALESCT 模式

      查看表中的行数

      连接到 GSDB 数据库后,Erik 想查看选中的表中的行数。

      本场景使用行数作为表的当前状态的指示器。 在执行恢复操作后,可以使用这个数字来验证表是否回到相同的状态。

      要查看所选择的表中的行数,执行以下步骤:

      1. 在 Data Source Explorer 中,双击 GSDB 数据库的 Tables 文件夹,如图 4 所示。


        在 Data Source Explorer 中双击 Tables 文件夹

      2. Object List 窗口现在显示每个表的表模式、表名和行数,如图 5 所示。注意,GOSALES.PRODUCT 和 GOSALES.PRODUCT_FORECAST 表分别有 274 行和 2728 行。


        图 5. Object List 窗口包含行数
        Object List 窗口显示每个表的表模式、表名和行数

      3. 还有一种方式可以查看实际的数据,即右键单击一个表,选择 Data > Return All Rows,如图 6 所示。


        为 GOSALESCT 表选择 Data > Return all Rows



      备份数据库

      Erik 现在执行以下步骤备份 GSDB 数据库:

      1. 在 Data Source Explorer 中,右键单击 GSDB 数据库,选择 Backup…(如图 7 所示)启动 Backup 任务助手。

        图 7. 从 Data Source Explorer 选择 Backup
        从 Data Source Explorer 右键单击 GSDB 数据库并选择 Backup...

      2. 在 1. Type 选项卡上,选择 Back up the entire database,如图 8 所示。


        在 Type 选项卡中选择 backup the entire database

      3. 选择 2. Image 选项卡。
      4. 从下拉菜单中选择 File System 作为媒介类型(图 9)。
      5. 单击 Browse 按钮并选择 C:\GSDB_BACKUP 作为备份映像的位置(图 9)。



        在 Backup 助手的 Image 选项卡中选择文件系统作为媒介类型,并选择备份映像的位置

      6. 选择 3. Options 选项卡。
      7. 选择 Full backup – Back up all data 作为 Backup type(图 10)。
      8. 选择 Offline - Users cannot access the database during the backup 作为 Availability。这样选择后,quiesce 复选框选项被启用。选择该复选框(图 10)。您需要执行完全离线备份,因为在更改日志记录类型后,为了以后能执行时间点恢复,需要这种类型的备份。


        在 Options 选项卡做出选择,以执行完全离线备份

      9. 单击 Preview Command Preview Command 链接 在 Command 窗口中生成并查看命令,如图 11 所示。


        预览 Backup 任务助手生成的 backup 命令

      10. 单击 Run 按钮 Run 按钮。
      11. Data Studio Administrator 应该返回一条备份成功的消息,如图 12 所示。


        从 Data Studio Administrator 返回的备份成功消息 

        发现错误!

        这天晚一点的时候,Erik 查看应用程序,发现错误的应用程序逻辑删除了 GOSALES.PRODUCT 和 GOSALES.PRODUCT_FORECAST 表中所有的行。他进入 Object List 窗口,看到这两个表的行数都是 0,从而确认了这一点,如图 13 所示。他知道出了问题,因为这两个表在出现错误之前分别有 274 行和 2728 行(见 图 5)。



        Object list 窗口现在显示 GOSALES.PRODUCT 和 GOSALES.PRODUCT_FORECAST 表中的行数都是 0

        为了跟随 Erik 恢复数据,您首先需要通过输入以下 DB2 命令模拟行的删除:

        delete from GOSALES.PRODUCT
        delete from GOSALES.PRODUCT_FORECAST
        

        记下时间,以便能够恢复到执行删除命令之前的时间点。

        恢复到一个时间点

        Erik 现在急于使用 Data Studio Administrator 的功能将数据库恢复到适当的状态。为了使数据库回到发生错误的应用程序逻辑之前的初始状态,Erik 通过以下步骤执行数据库恢复,并前滚到一个时间点:

        1. 在 Data Source Explorer 中,右键单击 GSDB 数据库并选择 Restore…(如图 14 所示)启动 Restore 任务助手。


        图 14. 从 Data Source Explorer 中选择 Restore

        1. 在 1. Type 选项卡上,选择 Restore to an existing database 和 Restore the entire database,如图 15 和 16 所示。


          Type 选项卡中的 Restore to an existing database 选项




          Type 选项卡中的 Restore the entire database 选项

        2. 选择 2. Available Images 选项卡。
        3. 选择 Select the backup images from a list(图 17)。
        4. 从备份映像列表中,选择运行错误的应用程序(即删除表中的行)之前的最新映像,并单击右箭头按钮 右箭头按钮 将备份映像移到右边的框中(图 17)。


          使用 Available Images 选项卡选择运行错误的应用程序之前的最新映像

        5. 选择 4. Roll forward 选项卡。
        6. 选择 Restore the database and roll forward as follows(图 18)。
        7. 选择 Roll forward to a point in time – Local(图 18)。
        8. 为 Roll forward to transaction 日期和时间输入适当的值。 日期和时间应该早于运行错误的应用程序(即删除表中的行)的时间。


          使用 Roll forward 选项卡选择在表中的行被删除之前的一个时间

        9. 选择 5. Final State 选项卡。
        10. 选择 Complete the restore and return the database to the active state,如图 19 所示。


          使用 Final State 选项卡选择在前滚完成后使数据库返回到活动状态

        11. 单击 Preview Command Preview Command 链接 在 Command 窗口中生成并查看命令,如图 20 所示。

          图 20. 预览 Restore 命令
          预览 Restore 任务助手生成的 restore 命令

        12. 单击 Run 按钮 Run 按钮,观察 Messages 和 SQL Results 窗口中出现的结果,如图 21 所示。


          表明恢复操作的进度和最终恢复操作成功的消息 

          验证恢复

          Erik 松了一口气!他已经将数据库恢复到发生错误的应用程序逻辑之前的状态。 Erik 使用 Data Studio Administrator 检查表中的行数,从而确认这一点:

          1. 在 Data Source Explorer 中,双击 Tables 文件夹。
          2. Object List 窗口现在显示 GSDB 数据库表。右键单击 GOSALES.PRODUCT 表,选择 Update statistics,如图 22 所示。

            图 22. 选择 Update Statistics 刷新行数
            右键单击数据库表后,从上下文菜单中选择 Update Statistics

          3. 在 SQL Results 窗口中单击鼠标。这样会刷新 Object List 窗口,显示当前行数。
          4. 通过同样的过程刷新 GOSALES.PRODUCT_FORECAST 表的当前行数(右键单击该表,选择 Update statistics,在 SQL Results 窗口中单击鼠标)。
          5. 如图 23 所示,GOSALES.PRODUCT 和 GOSALES.PRODUCT_FORECAST 表现在恢复到发生错误的应用程序逻辑之前的行数(分别为 274 行和 2728 行)。


            Object List 窗口中更新后的行数证明恢复成功

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15082138/viewspace-605276/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-08-05

  • 博文量
    269
  • 访问量
    609722