zoukankan      html  css  js  c++  java
  • DB2 基础: 使用重定向恢复克隆 DB2 数据库(部分从IBM官方网站引用)

    DB2 基础: 使用重定向恢复克隆 DB2 数据库

    本文适用于 IBM® DB2® Universal Database™ for Linux、UNIX® 和 Windows®

    数据库恢复操作使用数据库备份映象来重新创建数据库。如果要将数据库从一台机器克隆到另一台,最简单的方法就是从备份映象恢复数据库。数据库使用的文件系统路径也包含在备份映象中。因此,除非源系统上的数据库引用的文件系统和物理设备与目标系统的设置方法完全相同,否则就需要执行 重定向恢复操作。

    提示:如果有 DB2 V8,就可以从任何高位优先服务器获取备份,并将它恢复到任何其它高位优先服务器。例如,您可以将备份映象从 DB2 for HP-UX 恢复到 DB2 for AIX® 或 Sun Solaris。但是,这并不适用于 Windows 和 Linux。

    重定向恢复操作包括两步数据库恢复过程,并且中间有一个表空间容器定义步骤:

    1. 带 REDIRECT 选项发出 RESTORE DATABASE 命令。
    2. 使用 SET TABLESPACE CONTAINERS 命令来定义被恢复的数据库的表空间容器(DB2 需要知道您想要让表空间驻留在目标系统上的什么位置)。
    3. 再次发出 RESTORE DATABASE 命令,这次指定 CONTINUE 选项。

    整个重定向恢复操作必须在同一个会话中调用;否则,将返回 SQL0900N,恢复操作会失败,记住这一点很重要。确保不会发生这种情况的一个方法是创建并运行包含重定向恢复过程中全部三部分的脚本。

    以下(Windows)示例显示了如何成功地执行重定向恢复操作。我将演示如何从不同的 实例恢复备份映象,而不是从另一台 服务器恢复备份映象。原理相同,细节也一样。

    本示例中的源实例名为 PROD。目标实例名为 MYINST。将要在 MYINST 上被恢复(创建)的 PROD 上的现有数据库名为 MOVIES。MOVIES 数据库在 D 盘上。

    1. 创建 PROD 上的 MOVIES 数据库的完整数据库备份映象:
      set DB2INSTANCE=PROD
      db2start
      db2 backup db movies

      这个映象的时间戳记是 20021006213640 ,该映象在 D:MOVIES.0PRODNODE0000CATN000020021006 中。DB2 在发出 BACKUP DATABASE 命令的目录中创建这个子目录树。子目录名称表示以下含义:

      <database_alias.backup_type><instance_name>
      <node_number><catalog_node_number><date>

      在这个子目录树中,将会有一个表示实际备份映象的文件(213640.0)。文件名表示获取备份的时间。

    2. 创建相似的路径(使用 MYINST 代替 PROD):
      md MOVIES.0MYINSTNODE0000CATN000020021006

      这是关键步骤:如果没有正确创建这个路径,后续的数据库恢复操作就会失败。如果正在将备份映象重新定位到另一台机器,那么在目标机器上创建上述路径(用适当的目标实例名代替 MYINST),并且将备份映象(在此案例中是 213640.0)复制到该目录。在为传送维护目录树时,也可以使用压缩工具将备份映象打包。

    3. 启动 MYINST,然后调用重定向恢复操作的第一步。
      set DB2INSTANCE=MYINST
      db2start
      db2 restore db movies from d taken at 20021006213640 to d redirect
      特别注意:
      若出现提示文件系统已满,并且确认文件系统未满的情况下,请使用db2 restore db movies from d taken at 20021006213640 on d redirect 用on替代to,如果从不包含备份映象的目录中调用 DATABASE RESTORE 命令,则必须指定 FROM 参数。TO 参数指定了目标数据库目录(只有在 Windows 操作系统上要指定盘符)。
      若需要重命名,则使用db2 restore db movies from d taken at 20021006213640 on d into newdbasename redirect
    4. 为与所恢复的数据库相关的三个缺省表空间(SYSCATSPACE、TEMPSPACE1 和 USERSPACE1)并定义新的表空间容器:
      db2 set tablespace containers for 3 using(file 'D:DB2NODE0000GBKZJYGSYSTOOLSPACE' 8196)
      db2 set tablespace containers for 4 using(path 'D:DB2NODE0000GBKZJYGTBS8K')
      db2 set tablespace containers for 5 using(path 'D:DB2NODE0000GBKZJYGTBS16K')
      db2 set tablespace containers for 6 using(path 'D:DB2NODE0000GBKZJYGTBS32K')
      db2 set tablespace containers for 7 using(path 'D:DB2NODE0000GBKZJYGTBSIDX')
      db2 set tablespace containers for 8 using(path 'D:DB2NODE0000GBKZJYGSYSTOOLSTMPSPACE')
      db2 set tablespace containers for 9 using(file 'D:DB2NODE0000GBKZJYGBLOBSPC' 3200)
      db2 set tablespace containers for 10 using(path 'D:DB2NODE0000GBKZJYGCAPTSPACE32K')
      db2 set tablespace containers for 11 using(file 'D:DB2NODE0000GBKZJYGTSASNCA' 123392)
      db2 set tablespace containers for 12 using(file 'D:DB2NODE0000GBKZJYGTSASNUOW' 82688)
      db2 set tablespace containers for 13 using( File 'D:DB2NODE0000GBKZJYGTSASNAA' 285232)
      

      可以使用 LIST TABLESPACES SHOW DETAIL 命令来获取关于源数据库中所有表空间的信息;这将帮助您确保已经为目标数据库中的所有表空间设置了容器。

    5. 完成重定向恢复操作:
      db2 restore db movies continue
    6. 验证是否正确地为所恢复的数据库建立了目录,以及为它定义的表空间容器是否真正与所恢复的数据库相关:
      db2 list db directory
      db2 connect to movies
      db2 list tablespace containers for 0
      db2 list tablespace containers for 1
      db2 list tablespace containers for 2
      db2 connect reset
      db2 terminate
      db2stop
      set DB2INSTANCE=PROD
      db2stop
    7. 如果还提示处于未激活状态可以使用下面命令
      db2 rollforward to end of logs and stop
      若需要指定数据库日志路径则可以执行如下命令查看并更改归档日志路径
      db2 get db cfg for dbname
      db2 update db cfg for dbname using  LOGARCHMETH1 disk:db2log
      
      注意:disk直接为disk.而不是指定盘符

      有关 DB2 备份和恢复操作的更多信息,请参阅 David Kline 的文章 生产到开发:转移数据库

  • 相关阅读:
    【转】我该 不该学习VULKAN
    游戏开发内功秘籍记录
    VS 配置外部DLL的引用路径【可执行文件的环境路径】
    OpenGL3.x,4.x中使用FreeImage显示图片的BUG-黑色,或颜色分量顺序错乱
    C++风格与C风格文件读写效率测试-vs2015,vs2017
    【转】矩阵的几何解释
    android 线程间通信
    android 网络
    安卓 碎片 如何实现类似 活动 栈的 进栈 出栈
    安卓 内容提供者 观察者 解析器
  • 原文地址:https://www.cnblogs.com/Anguo/p/7196211.html
Copyright © 2011-2022 走看看