天极Yesky
  • 笔记本电脑
    笔记本
  • 台式电脑
    台式机
  • 手机
    手机
  • 电脑硬件DIY
    DIY硬件
  • CPU
    主板
    音箱
  • 硬盘
    显卡
    键鼠
  • 内存光驱
    显示器
    机箱电源

  • 数码相机DC
    数码相机
  • MP3播放器
    MP3/MP4
  • 数码摄像机DV
    摄像机
  • 电脑外设
    外设
  • 网络
    网络
  • 服务器
    服务器
  • 数字家庭
    数字家庭
  • 群乐
    群乐
  • 产品报价 行情 商家 新闻 评测 | 软件 设计 网页 开发 安全 论坛 E时代 游戏 图片 壁纸 下载 网摘 博客 索尼专区 Vista 科技奥运
    天极网
    使用分割镜像来备份数据库
    作者: Roger Sanders
    出处:
    责任编辑: 丁一凡
    [ 2004-11-15 15:16 ]


      备份一整个数据库或者是一个大数据库的若干个表空间都会造成系统资源紧张,需要相当大的额外的存储空间(保存备份映像),还会降低数据库系统的可用性(特别是当系统离线执行备份的时候)。这篇来自Informit的文章讨论了当前流行的针对这样的数据库创建并维护备份映像的可选方案,这种方案名为分割镜像(split mirror)。

      分割镜像是对那些含有数据库数据的镜像磁盘里面数据库的“瞬时”拷贝,当需要数据库的备份拷贝的时候,将镜像分割。进行镜像是一个将数据库中的所有数据同时写入两个独立的磁盘(或者是磁盘子系统)的处理过程;其中一个磁盘/子系统保存数据库数据,另一个磁盘/子系统则保存对前一个磁盘/子系统的精确备份(被称为镜像)。镜像的分割只是将数据库的主拷贝和副拷贝相互分离开来。分割镜像具有如下优点:

    * 创建数据库的备份映像的架空被消除了
    * 整个系统可以被快速地克隆
    * 提供了空闲备用错误恢复的快速实现

      为进一步加强分割镜像,DB2 UDB提供了一个临时停止(稍后恢复)所有数据库的输入输出的方式,这样就可以在不进行数据库离线的情况下分割镜像。SET WRITE命令提供了这个功能,它的语法如下:
    SET WRITE [SUSPEND | RESUME] FOR [DATABASE | DB]

      因此,如果你想要临时停止一个数据库所有的输入输出,你可以通过建立一个到数据库的连接,然后执行如下的SET WRITE命令来达到这个目的:
    SET WRITE SUSPEND FOR DATABASE

      执行的时候,SET WRITE SUSPEND FOR DATABASE命令会使DB2数据库管理器临时停止所有对那些表空间容器和日志文件的写操作,这些表空间容器和日志文件与当前数据库相关联。(对表空间和日志文件的写操作的临时停止会阻止部分的页面写入的发生,直到临时停止被解除。)所有的数据库操作,除了在线备份和恢复操作,在数据库写操作被临时停止的时候都能够正常运行。这是因为只读事务没有被临时停止,并且能够对被临时停止的数据库继续执行操作,提供这些操作并不需要请求被临时停止的输入输出处理过程所占用的资源。而且应用程序还能够继续对缓存在数据库缓冲池中的数据执行插入、更新、删除操作。然而,新的页面不能被读入缓冲池,也不能建立新的数据库连接。

      被临时停止的数据库的输入输出可以在任何时候通过执行如下的SET WRITE 命令来恢复:
    SET WRITE RESUME FOR DATABASE

      执行的时候,SET WRITE RESUME FOR DATABASE使得DB2数据库管理器激活所有被临时停止的写操作,并允许针对那些表空间容器和日志文件的写操作继续执行,这些表空间容器和日志文件与当前的数据库相关联。请注意:数据库输入输出必须在它被挂起时的连接上恢复。

      在DB2 UDB数据库的分割镜像拷贝能够被使用之前,必须首先将其初始化;一个分割镜像数据库拷贝可以通过执行系统命令db2inidb来进行初始化。这个命令的语法如下:
    db2inidb [DatabaseAlias]
       AS [SNAPSHOT | MIRROR | STANDBY]

    其中:
    * DatabaseAlias:标识了分配给将要初始化参考的分割镜像拷贝数据库的别名。
    * ConfigFile:表明了分割镜像拷贝中包含的数据库文件将根据配置文件指定的存储信息来重新部署。

      正如你看到的,分割镜像数据库拷贝可以以如下三种方式中的一种来初始化:
    * SNAPSHOT(快照)  数据库的分割镜像拷贝可作为基本数据库的克隆来初始化。(它可成为一个拥有自己的事务日志文件的工作拷贝)
    * MIRROR(镜像)  数据库的分割镜像拷贝可作为恢复基本数据库使用的备份镜像来初始化。
    * STANDBY(备用)  数据库的分割镜像拷贝可被初始化,并被设置为向前回滚的未决状态,这样它就总是可以与基本数据库保持同步。(在任何时间里,基本数据库产生的新的日志都可被检索,并且可被应用到数据库拷贝中。)因此,当基本数据库由于某些原因而崩溃时,数据库的备用拷贝就可以接替基本数据库的位置了。

      因此,如果你想要初始化一个名为SAMPLE的数据库分割镜像拷贝,并且使它成为可用于恢复基本数据库的备份映像的话,你可以通过执行如下

    的db2inidb命令来做到这一点:
    db2inidb SAMPLE AS MIRROR

    (SAMPLE数据库的分割镜像拷贝可以在数据库在线的情况下创建,方式是通过执行SET WRITE命令来暂时停止输入输出,使数据库的分割镜像拷贝使用适当的DB2 UDB utility,并且一旦分割镜像拷贝被成功创建后,即恢复输入输出)。

    笔名:
    请您注意:

     遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

     天极网拥有管理笔名和留言的一切权利。