DB2数据库恢复是怎样的呢?如果您是个初学者,下面的内容将会帮到你很大的忙。那么就由我带领大家进入DB2数据库恢复的世界。
恢复场景
您永远也无法知道您的系统何时会碰到灾难或故障。因此***早作准备,不但要防止数据受到外部因素的影响,也要防止内部用户无意中用不正确的信息破坏您的数据库。
您有备份您的数据库吗?您能够恢复执行到***一秒的所有事务吗?
为了尽量减少丢失的数据,需要有一个恢复策略,确保这个恢复策略可行,并不断地加以演练。您应该考虑以下一些恢复场景:
- 系统运行中断。
- 停电,硬件故障,或者能导致数据库处于不一致状态的软件故障。
- 事务失败。
- 用户可能无意中用不正确的数据修改您的数据库。
- 媒介故障。
- 如果您的磁盘驱动器变得无法使用,那么可能会丢失所有或部分数据。
- 灾难。
- 放置系统的设施遭到火灾、洪水或其他类似灾难的毁坏。
恢复策略
为了制定恢复策略,应该问一问自己下面这些问题:
- 您的数据可以从另一个地方装载吗?
- 您能承受多少数据的丢失?
- 您需要花多少时间才能恢复数据库?
- 您有什么可用的资源来存储备份和日志文件?
事务
一个工作单元(UOW),也称一个事务,由一条或多条 SQL 语句组成,***是一条 COMMIT 或 ROLLBACK 语句。这个 UOW 中的所有语句被看作一个单元,以确保数据的一致性。例如,一个客户试图将 100 美元从一个储蓄帐户转到一个支票帐户。在这种情况下,UOW 是这样的:
DELETE 100 dollars from SAVINGS account
INSERT 100 dollars to CHECKING account
COMMIT
如果这些语句没有被当作一个单元,那么可以想像一下,如果在 DELETE 之后、INSERT 语句之前出现硬件故障,会出现什么情况:这个客户将丢失 100 美元。但是,如果将这些语句当作一个单元,就不会发生这样的事情。DB2 将知道这个单元没有完成(COMMIT),因此它将回滚之前的语句作出的所有更改,并将受影响的行返回到事务开始之前的状态。
没有语句用于标识一个事务的开始。COMMIT 或 ROLLBACK 之后的语句将开始一个新的事务。
恢复的类型
我们来熟悉一下恢复类型方面的概念。DB2 允许以下类型的恢复:
1、紧急事故恢复
通过撤销(回滚)未提交的事务,使处于不一致状态的数据库恢复到一致状态。再次考虑前一屏中的例子。如果在 COMMIT 语句之前出现停电事故,则下一次 DB2 重新启动并访问数据库时,DB2 将首先回滚 INSERT 语句,然后回滚 DELETE 语句。(回滚的语句的顺序与这些语句当初执行的顺序相反。)
2、版本恢复
允许使用从 BACKUP 命令获得的一个备份镜像恢复前一个版本的数据库。被恢复的数据库将包含关于当执行 BACKUP 命令时该数据库所处状态的信息。如果在备份之后又执行了新的活动,则该信息将丢失。
3、前滚恢复
这种恢复结合使用完整的数据库备份和日志文件,从而扩展了版本恢复。在使用一个备份作为基准之前,必须首先存储这个备份,然后在该备份上应用日志。这个过程允许将数据库或表空间恢复到某个特定的时间点上。前滚恢复要求启用归档日志记录 。在 日志记录类型 中对归档日志记录作了讨论。
总结:
1.在进行DB2异地DB2数据库恢复的时候,已经要先建好相应的目录,数据文件目录,日志目录,归档日志目录。
2.在操作失败需要查看日志时候,尽量想办法去看老日志,因为重新操作,再实时看日志,虽然比较明朗,但是需要花费更多的时间。
【编辑推荐】