备份到磁带

备份数据库或表空间时,必须正确地设置块大小和缓冲区大小。 如果您正在使用可变块大小 (例如,在 AIX®上,如果块大小已设置为零) ,那么尤其如此。

对备份时可使用的固定块大小的数量有限制。 存在此限制的原因是 Db2® 数据库系统将备份映像头写出为 4 KB 块。 DB2 数据库系统支持的固定块大小只有 512、1024、2048 和 4096 个字节。 如果使用固定块大小,那么可以指定任何备份缓冲区大小。 但是您可能会发现,如果 DB2 数据库系统不支持该固定块大小,那么备份操作将无法成功完成。

如果数据库很大,那么使用固定块大小意味着您的备份操作可能花费比所预期更长的时间才能完成。 为了提高性能,可以使用可变块大小。

注: 使用可变块大小时,请确保您已很好地测试了使您能够成功恢复的过程,包括为 BACKUPRESTORE 命令显式指定的缓冲区大小,以及使用可变块大小创建的备份映像。

使用可变块大小时,必须指定备份缓冲区大小小于或等于正在使用的磁带设备的最大限制。 要获得优化的性能,缓冲区大小必须等于正在使用的设备的最大块大小限制。

必须先发出以下命令,然后才能在 Windows 操作系统上使用磁带设备:
db2 initialize tape on device using blksize
其中:
台设备
是有效的磁带设备名。 在 Windows 操作系统上,缺省值为 \\.\TAPE0
blksize
是磁带的分块因子。 它必须是 4096 的因子或倍数。 缺省值是该设备的缺省块大小。
使用可变块大小从备份映像进行复原时可能会返回错误。 如果发生这种情况,那么可能需要使用适当的块大小重写该映像。 以下是 AIX上的示例:
   tctl -b 0 -Bn -f /dev/rmt0 read > backup_filename.file
   dd if=backup_filename.file of=/dev/rmt0 obs=4096 conv=sync

备份映像转储到名为 backup_filename.file 的文件中。 dd 命令使用块大小 4096,将映像转储到磁带上。

如果映像太大,不能转储到文件中,此方法可能会出现问题。 有一种可能的解决方案是:使用 dd 命令将该映像从一个磁带设备转储至另一磁带设备。 只要映像在一卷磁带上放得下,就可以使用这种方法。 使用两个磁带设备时,dd 命令是:
   dd if=/dev/rmt1 of=/dev/rmt0 obs=4096

如果不可能使用两台磁带设备,那么可以使用 dd 命令将映像转储至原始设备,然后再将该映像从原始设备转储至磁带。 使用此方法的问题在于 dd 命令必须跟踪转储至原始设备的块数。 此块数必须在将映像移动回磁带时指定。 如果使用 dd 命令将映像从原始设备转储至磁带,该命令会将原始设备的整个内容转储至磁带。 dd 实用程序不能确定使用了多少原始设备空间来保留映像。

当使用 BACKUP 实用程序时,您需要知道磁带设备的最大块大小限制。 以下是一些示例:

设备 连接 块大小限制 DB2 缓冲区大小限制(以 4-KB 页计)
8 毫米 scsi 131,072 32
3420 s370 65,536 16
3480 s370 61 440 15
3490 s370 61 440 15
3490E s370 65,536 16
7332(4 毫米)1 scsi 262,144 64
3490e scsi 262,144 64
35902 scsi 2,097,152 512
3570 (magstar MP)   262,144 64
注:
  1. 7332 没有块大小的限制。 256 KB 只是一个建议的值。 块大小限制由父适配器确定。
  2. 在 3590 支持 2 MB 的块大小时,如果性能完全可以满足您的需要,就可以尝试使用较低的值(例如 256 KB)。
  3. 关于设备限制的信息,请查看设备文档或向设备供应商咨询。

验证磁带设备的兼容性

仅在 UNIX , Linux®和 AIX 操作系统上,要确定是否支持磁带设备来备份 Db2 数据库,请执行以下过程:

作为数据库管理器实例所有者运行操作系统命令 dd,以便对磁带设备执行读写操作。 如果 dd 命令成功,那么可以使用磁带设备来备份 DB2 数据库。