执行数据库备份、恢复和前滚.doc_第1页
执行数据库备份、恢复和前滚.doc_第2页
执行数据库备份、恢复和前滚.doc_第3页
执行数据库备份、恢复和前滚.doc_第4页
执行数据库备份、恢复和前滚.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

执行数据库备份、恢复和前滚来自/简介本文提供了执行数据库备份、恢复和前滚日志文件这些基本操作的循序渐进指南。以下示例将介绍这些实用程序句法上的变体,以便展示 DB2 产品的灵活性。通常,本主题将解决权限、所需连接、语法和有益的用法注释等问题,以成功执行备份、恢复或前滚过程。假设您熟悉 DB2 Universal Database(DB2 UDB)引擎,并且系统满足下列要求:1 安装了 DB2 UDB 版本 6 或 7。2 已在 DB2 中创建了一个实例。3 操作系统是 UNIX、Microsoft Windows 98、Windows 2000 或 Windows NT。4 DB2 的版本是个人版、工作组版、企业版(EE)或扩展企业版(EEE)。5 本地机器或存储设备上有足够的磁盘空间保存备份映象。注:本文中的所有示例都是从 DB2 命令行环境创建的。创建 sample 数据库这些示例中所用的数据库是一个“sample”数据库,可以通过执行下列操作创建该数据库: 在用于 DB2 V7.1 的 Windows NT 上: 5 单击屏幕左下角处的 Start 菜单。5 单击 Programs。5 单击(IBM DB2)。5 单击 First Steps。5 单击 Create the Sample Databases。5 选择 Sample。 在 UNIX 上: 5 将用户切换成 DB2 实例所有者。5 执行位于 $HOME/ instance owner/sqllib 的 db2profile5 在命令行上输入 db2sampl。注:如果没有找到 db2sampl,则意味着可选的 db2sampl 脚本没有与其余 DB2 产品一起安装。需要手工创建一个数据库。p测试前滚命令的效果如果将使用 sample 数据库作为对下面示例的测试,请在 sample 数据库的一个表中更新或插入几行。这样,您将能够看到使用前滚过程与不使用前滚过程相对比的效果。例如,驻留在 sample 数据库中的一个表是 employee 表。在备份之后恢复数据库前,请发出与下面类似的命令:db2 update employee set empno = 11 where firstnme = CHRISTINE The empno field for CHRISTINE is changed from 10 to 11. 然后,如果决定使用前滚选项,您将会看到这一更新已从日志文件中恢复。如果没有使用前滚选项,您将会看到先前的值“10”。高级概述在进行备份、恢复和前滚的过程前,从图形观点看一下该过程可能会有所获益。在我们单步执行该过程时,请参考下图以获取更清晰的信息。数据库备份在备份数据库前,请确保对 DB2 具有下列权限之一: SYSADM SYSCTRL SYSMAINT对于这些示例,创建一个存储数据库映象的目录,如 C:backup。没有必要为了执行备份而与数据库连接,因为备份命令会自动创建连接。另外,请确保在执行脱机备份时没有其它应用程序与数据库连接,否则您将接收到一条 SQL1035N 错误消息。DB2“list applications”和 DB2“force applications all”是完成这一任务的有用命令。有两种可以执行备份的方式。第一种是脱机数据库备份。这种备份方式需要至数据库的独占连接,因为将备份数据库中的所有表空间。第二种是联机数据库备份。这种备份方式对于那些运行生产数据库并且需要数据库中连续不断地运行一个或多个表空间的用户特别有用。当使用联机备份时,仅要备份的表空间需要用户有独占连接。这样允许数据库内的其它不需要备份的表空间仍保持联机,以供其它应用程序访问。注:如果执行联机备份,请确保在数据库管理器配置文件中启用了前滚恢复参数 logretain = on 或 userexit *。如果还没有这样做,您将会接收到一条 SQL2413N 错误,并需要执行下列命令:db2 update dbm configuration using logretain on db2stop db2start*因为 userexit 选项需要详细的用法说明,所以本文将不对此进行讨论。启用了 logretain 和或 userexit 参数后,进行完整的数据库脱机备份。可以通过执行下列命令进行验证,以查看数据库是否处于备份挂起状态:db2 get database configuration for sample然后,查找“Backup Pending”值(它将被设置为“YES”或“NO”)。进行了完整数据库备份后,您将能够在此后的任何时候执行联机表空间备份。示例 1 将数据库脱机备份至本地目录db2 backup database sample user db2admin using db2admin to c:backup with 3 buffers buffer 1000 without prompting 该命令将使用用户 db2admin 和密码 db2admin(仅在当前用户不具备必需的数据库权限时才需要使用该用户和密码)产生数据库“sample”的备份映象。将使用 3 个缓冲区把该映象存储在 c:backup 中,每个缓冲区的缓冲区大小为 1000 页面。“without prompting”键短语指定备份将以无人照看方式运行,并且任何通常需要用户介入的操作都将返回一条错误消息。示例 2 将表空间级别联机备份至磁带设备db2 backup database sample tablespace (syscatspace, userspace1) online to /dev/rmt0 without prompting 该命令将产生数据库内指定表空间的备份映象。syscatspace 和 userspace1 是驻留在 sample 数据库中两个要备份的表空间。磁带机是 /dev/rmt0。由于命令中没有定义缓冲区和缓冲区页面的数量,所以缺省值将为 Buffers = 2 和 Buffer(size) = 1024 页面。当在 SCO UNIXware 7 上使用磁带设备时,必须指定缓冲区大小为 16 页面。联机表空间备份的优点在于:数据库中的所有其它表空间都可用于处理。缺省值是“offline”,这要求在执行备份时断开所有应用程序与数据库的连接。执行这些命令后,您应该在 DB2 命令行上接收到下列消息:Backup successful. The timestamp for this backup image is: timestamptimestamp是每个数据库备份映象的唯一标识,如果单个文件夹中有多个备份映象,则在您执行恢复时需要该标识。在 UNIX 系统上,时间戳记与备份映象文件名连接:dbname.type.instance.nodexxx.catnxxxx.yyyymmddhhmmss.seq在 Windows NT 系统上,备份映象存储在一个有 5 个层次的目录树中,该目录中也包含该时间戳记信息:Dbname.typedb2instancenodexxxcatnxxxxyyyymmddhhmmss.seq如需以前备份的数据库的信息,请输入下列命令:db2 list history backup all for database sample数据库恢复在恢复数据库前,对 DB2 具有下列权限之一: SYSADM SYSCTRL SYSMAINT如果恢复至一个新数据库(不是现有的数据库),则需要 SYSADM 或 SYSCTRL。脱机数据库恢复将需要一个独占连接;所以在这一任务期间应该无应用程序连接至数据库。而且,请确保在执行脱机恢复时没有其它应用程序与数据库连接,否则您将接收到一条 SQL1035 错误消息。示例 1 从本地目录脱机恢复到一个现有数据库中db2 restore database sample user db2admin using db2admin from c:backup taken at 20010222145404 with 3 buffers buffer 1000 without rolling forward without prompting 该命令将把保存在 c:backup 中带有时间戳记 20010222145404 的数据库映象恢复到现有 sample 数据库中(请参考数据库备份一节中有关如何获取前面提到的时间戳记值的信息)。该命令将用备份的数据库映象文件有效地覆盖旧的 sample 数据库文件。键短语“without rolling forward”将阻止数据库管理器使恢复的数据库处于前滚挂起状态(如果在备份数据库时没有为前滚恢复启用该数据库,则不需要该短语)。如果您对将所有数据库文件恢复到上次成功的事务那一点感兴趣,而且在备份数据库时为前滚恢复启用了它,则忽略“without rolling forward”键短语。如果没有使用关键字“from”,则当前目录将是备份映象的缺省位置。而且,如果只有一个数据库备份映象驻留在目标文件夹中,则不需要键短语“taken at timestamp”。示例 2 将表空间从磁带设备联机恢复到现有数据库中db2 restore database sample tablespace (syscatspace, userspace1) online from /dev/rmt0 taken at 20010222151429 newlogpath /home/db2v71/samplelogs without prompting 该命令在允许无限制地处理联机恢复命令未涉及的其它表空间的同时,把 syscatspace 和 userspace1 表空间恢复到现有 sample 数据库。而且,如果在同一个文件夹中有多个备份映象,则必须声明“taken at timestamp”键短语。如果恢复后不适合使用备份映象中的 logpath,则可以包括“newlogpath”关键字。例如,在路径不再有效或它当前正由另一个数据库使用时。示例 3 脱机恢复到 AIX 上新的数据库中db2 restore database sample from /home/db2v71/backup into newsamp without prompting 该命令将把 sample 数据库备份映象恢复到数据库 newsamp。执行了恢复命令后,DB2 将立即创建“newsamp”数据库。然后,将把备份映象恢复到“newsamp”数据库中。注:如果 /home/db2v71/backup 目录中只有一个备份数据库映象,则不使用“taken at timestamp”键短语。当创建现有数据库的副本时,以上命令是有用的。sample 数据库将不受恢复过程的影响,因此仍可供将来使用。也可以使用相同的恢复命令恢复到现有数据库中。例如,在执行以上命令前,您可能已经创建了 newsamp 数据库。注:如果打算执行该功能,要恢复到其中的数据库的代码页必须与备份数据库映象的代码页匹配。附加注释:如果平台、DB2 版本号和版本分序号都相同,则可以恢复到现有的远程数据库去。根据哪台机器正在认证用户标识,请确保在本地机器或服务器上有前面提到的权限,以执行远程恢复。此外,将要恢复的数据库编目到本地机器上,以便执行远程恢复(为了连接至要恢复的数据库,这是必需的)。前滚数据库在对数据库执行前滚之前,请确保对 DB2 具有下列权限之一: SYSADM SYSCTRL SYSMAINT在执行前滚过程前,不需要连接至数据库,因为该命令会建立一个数据库连接。注:在多节点环境中,只能从编目的节点发出该命令。而且,如果数据库处于前滚挂起状态,并且成功执行该命令,则数据库管理器将使数据库脱离前滚挂起状态。示例 1 将数据库脱机前滚至某一时间点db2 rollforward database sample user db2admin using db2admin to 2001-02-22-53422 and stop 该命令将 Sample 的数据库配置文件中指定的日志文件夹中的所有日志前滚到并且包括上面声明的时间点*。“and stop”键短语通过回滚未完成的事务并关闭数据库的前滚挂起状态,来完成前滚恢复过程。* 数据库配置文件包含有关数据库日志文件路径的信息。要查看这一路径,输入下列命令:db2 get database configuration for sample然后,查找参数名称 logpath。这是存储数据库日志文件的路径。注:当将表空间前滚至某一时间点时,表空间处于备份挂起状态,并且将是不可用的,直到执行了数据库备份为止。示例 2 将表空间级别联机前滚至日志结尾db2 rollforward database sample to end of logs and stop tablespace (userspace1) online 该命令将前滚“sample”数据库配置文件中指定的日志文件夹中的所有日志。只前滚 syscatspace 和 userspace1 表空间。因为这是一个联机前滚,所以其它应用程序可以访问数据库中的所有其它表空间。示例 3 在多节点数据库上执行表空间级别联机前滚db2 rollforwar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论