当我们的 DB2 数据库由于一些严重错误 ( 如存储损坏等 ) 而导致数据库库损坏时,我们通常需要在修复相关错误后,通过 Restore 命令来进行数据库的恢复 (DB2 目前也支持通过 HADR 等多机容错机制实现系统高可用,本文仅对单机数据库损坏,需要进行数据库恢复的情况进行探讨 )。一般的做法是通过以前的数据库全get="_blank">备份来进行整库恢复,然后通过日志对数据库进行前滚 (RollForward),从而使数据库恢复到接近灾难点的时间。但当我们数据库的数据量较大时,数据库的全备份和整库恢复都会很是非常消耗时间的。
场景1:利用表空间备份来重建整个 DB2 数据库 在进行数据库重建时,DB2 V9 现在能够支持通过表空间一级的备份来重建整个数据库,而不需要整个数据库的全备份。DB2 的此项能力使得我们对核心系统的重要数据进行快速备份和恢复成为可能。让我们首先看以下的一个例子:

假设我们有一个数据库 TEST,该数据库采用归档日志。某天,系统突然掉电,导致数据库存放的磁盘损坏了。这时,数据库将处于不可用的状态,作为 DBA,我们需要迅速对数据库进行恢复。假如该数据库有以下的表空间
◆SYSCATSPACE ( 系统表空间 )
◆USERSPACE1 ( 用户数据表空间 1)
◆USERSPACE2 ( 用户数据表空间 2)
◆USERSPACE3 ( 用户数据表空间 3)
你手头可用于进行数据库恢复的数据包括 :
所有数据库日志文件由于日志被存放在另外的磁盘上 ( 而且很多时,我们还会对日志进行镜像,因为它们实在太重要了 ),因此它们没有损坏。
你没有数据库的全备份,但是你有以下的表空间备份:
◆TEST.3.DB2.NODE0000.CATN0000.20060515135047.001 – SYSCATSPACE 和 USERSPACE 1 表空间在 2006051513504 7 时间点的备份;
◆TEST.3.DB2.NODE0000.CATN0000.20060516135136.001 – USERSPACE 2 和 USERSPACE 3 表空间在 2006051613513 6 时间点的备份;
◆TEST.3.DB2.NODE0000.CATN0000.20060517135208.001 – USERSPACE 3 表空间在 2006051713520 8 时间点的备份。
对于传统的 Restore 和 Rollforward 的 DB2 恢复策略,我们需要一个数据库的全备份影像来进行数据库恢复然后利用日志来进行数据库的前滚 (Rollforward) 操作,但不幸的是,在本例中,我们并没有数据库的全备份,而只有不同时间做的表空间备份。
错误的数据库恢复方法
如果我们试图直接用表空间备份来恢复整个数据库,我们会得到以下的错误提示:清单1 :直接用表空间备份来恢复整个数据库的错误提示db2 restore db test taken at 20060517135208
SQL2560N The target>
请问SQL Server 2000里 .bak的备份文件怎么恢复?
备份: 打开企业管理器 右击您要备份的数据库 点击所有任务 点备份数据库 点添加 点那三个点的按扭定义备份文件要存储的位置和文件名 点重写现有媒体 确定 备份完成 恢复: 可在另一服务器新建空数据库,取名为您备份的数据库名。 或由于某种原因在本数据库上恢复: 右击新建的数据库 点所有任务 点还原数据库 点从设备 点选择设备 点添加 定位您备份时备份的文件(要从原服务器拷备过来) 确定 点选项 点在现有数据库上强制还原 点确定 等待 完成!
sql数据库如何自动备份和恢复?
一、备份数据库1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server2、SQL Server组-->双击打开你的服务器-->双击打开数据库目录3、选择你的数据库名称(如论坛数据库Forum)-->然后点上面菜单中的工具-->选择备份数据库4、备份选项选择完全备份,目的中的备份到如果原来有路径和名称则选中名称点删除,然后点添加,如果原来没有路径和名称则直接选择添加,接着指定路径和文件名,指定后点确定返回备份窗口,接着点确定进行备份二、还原数据库1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server2、SQL Server组-->双击打开你的服务器-->点图标栏的新建数据库图标,新建数据库的名字自行取3、点击新建好的数据库名称-->然后点上面菜单中的工具-->选择恢复数据库4、在弹出来的窗口中的还原选项中选择从设备-->点选择设备-->点添加-->然后选择你的备份文件名-->添加后点确定返回,这时候设备栏应该出现您刚才选择的数据库备份文件名,备份号默认为1(如果您对同一个文件做过多次备份,可以点击备份号旁边的查看内容,在复选框中选择最新的一次备份后点确定)-->然后点击上方常规旁边的选项按钮5、在出现的窗口中选择在现有数据库上强制还原,以及在恢复完成状态中选择使数据库可以继续运行但无法还原其它事务日志的选项。在窗口的中间部位的将数据库文件还原为这里要按照你SQL的安装进行设置(也可以指定自己的目录),逻辑文件名不需要改动,移至物理文件名要根据你所恢复的机器情况做改动,如您的SQL数据库装在D:\Program Files\Microsoft SQL Server\mssql\Data,那么就按照您恢复机器的目录进行相关改动改动,并且最后的文件名最好改成您当前的数据库名(如原来是,现在的数据库是zw0002,就改成),日志和数据文件都要按照这样的方式做相关的改动(日志的文件名是结尾的),这里的恢复目录您可以自由设置,前提是该目录必须存在(如您可以指定d:\sqldata\或者d:\sqldata\),否则恢复将报错6、修改完成后,点击下面的确定进行恢复,这时会出现一个进度条,提示恢复的进度,恢复完成后系统会自动提示成功,如中间提示报错,请记录下相关的错误内容并询问对SQL操作比较熟悉的人员,一般的错误无非是目录错误或者文件名重复或者文件名错误或者空间不够或者数据库正在使用中的错误,数据库正在使用的错误您可以尝试关闭所有关于SQL窗口然后重新打开进行恢复操作,如果还提示正在使用的错误可以将SQL服务停止然后重起看看,至于上述其它的错误一般都能按照错误内容做相应改动后即可恢复
db2备份1个月的数据怎么办
写一些Shell脚本,建立30个folder,一个一个轮换,然后用db2的数据库backup命令将这些备份输出到这些folder。
发表评论