当 DB2 的数据库启用了前滚恢复模式,即将日志由循环日志方式改为归档日志,以便用户在进行恢复操作时,可在恢复了数据库或表空间的备份后,再通过前滚归档日志中的事务,恢复数据库备份时间点之后提交的事务,最大程度的保护数据库的数据。
而 DB2 的 LOAD 实用程序为实现快速导入数据的功能,除采用了通过直接向数据库中写入格式化的数据页装载数据,导入过程中不激活触发器,不会检查参考完整性和表检查约束当等方式外,还最小化了记录事务日志的操作。在 LOAD 的 LOAD、BUILD、DELETE 和 INDEX COPY 四个处理阶段中,仅在 DELETE 阶段记录对每个删除事件记日志,即只对每个违反唯一约束的行的删除操作记日志,因此整个 LOAD 操作仅记录了极少的日志。
由于 LOAD 最小化了日志的记录,有因启用了前滚恢复的数据库在恢复在线备份时需要归档日志的特性,对于这种数据库的 LOAD 操作,为避免执行 LOAD 操作后,表在使用 ROLLFORWARD 命令前滚归档日志的过程中因缺少日志而被置为非正常状态,DB2 为 LOAD 命令提供了如下选项:
·COPY NO(缺省)
·COPY YES
·NONREVERABLE
为更清楚地说明这些选项的作用,这里将以举例的方式进行说明。而在开始操作之前,首先了解一下 DB2 备份操作所产生的映象文件的形式和命名特点:
在 UNIX 环境下是文件的形式:
| Databasealias.Type.Instancename.Nodename.Catnodename.Timestamp.number |
在 Windows 环境下是子目录及文件的形式:
| Databasealias.Type\Instancename\Node0000\Catn0000\yyyymmdd\hhmmss.number |
而其中的 Type 则因备份类型的不同而不同:
0 -- 数据库全备份
3 -- 表空间备份
4 -- 由 LOAD 操作产生的备份
1. 进行一次数据库的全备份:
首先对已启用前滚恢复模式的 SAMPLE 数据库进行一次全备份:
| E:\TEST>db2 backup db sample |
备份成功。此备份映像的时间戳记是:20051230174105
这时看到在当前目录下产生了一个 SAMPLE.0 的子目录,表明产生的是一个数据库全备份。下面将对这些现象逐个予以举例说明:
2. 关于 COPY NO:
在 LOAD 操作结束时,将表所在的表空间置于“备份暂挂”状态,此时虽然其中的表可以进行 SELECT 操作,但不能进行 UPDATE 和 DELETE 操作。为使该表状态恢复正常,除去备份暂挂状态,必须手动对其表空间执行一个 BACKUP 命令。由于该选项为缺省选项,如果 LOAD 命令中未指明,则默认为使用该选项,如:
|
E:\TEST>db2 connect to sample E:\TEST>db2 load from staff.del of del insert into staff E:\TEST>db2 list tablespaces : E:\TEST>db2 select count(*) from staff E:\TEST>db2 update staff set id=335 where id=340 |
DB21034E 该命令被当作 SQL 语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回:
SQL0290N 不允许存取表空间。 SQLSTATE=55039
在手动对 USERSPACE1 表空间进行一次备份操作后,表空间状态将正常,再次尝试更新操作就会成功:
| E:\TEST>db2 backup db sample tablespace (userspace1) |
备份成功。此备份映像的时间戳记是:20051230184841
命令完成后可以在当前目录下看到产生了一个 SAMPLE.3 的子目录,表明产生的是一个表空间级的备份。
|
E:\TEST>db2 connect to sample E:\TEST>db2 list tablespaces 表空间标识 = 2 |
|
E:\TEST>db2 restore db sample taken at 20051230174105 E:\TEST>db2 rollforward db sample to end of logs and stop E:\TEST>db2 connect to sample E:\TEST>db2 list tablespaces |
此时可利用这一表空间级的备份进行恢复操作:
|
E:\TEST>db2 restore db sample tablespace (userspace1) taken at 20051230184841 E:\TEST>db2 connect to sample E:\TEST>db2 list tablespaces E:\TEST>db2 rollforward db sample to end of logs and stop tablespace (userspace1) 前滚状态 输入数据库别名 = sample 节点号 = 0 DB20000I ROLLFORWARD 命令成功完成。 E:\TEST>db2 connect to sample E:\TEST>db2 list tablespaces E:\TEST>db2 update staff set id=335 where id=340 |
可见表空间状态已正常,表也可执行更新操作了。
| 共2页: 1 [2] 下一页 | ||
|
|
|||
| · 51CTO主编推荐经典专题 · RAID——磁盘阵列基础 · 充电计划之热门IT认证.. · 51CTO技术自测 挑战自.. · CISSP认证成长之路 · AMD Phenom三核处理器.. · 国际文档格式标准开战 · 2007年互联网大会 |
· 我是黑客我怕谁——讲.. · ARP攻击防范与解决方案 · Solaris 10 配置管理 · Solaris基础知识入门 · RIP路由协议专栏 · MPLS路由协议专栏 · OSPF路由协议专栏 · 思科路由器产品 |
||
|
|||
| · Java基础教程 · VPN技术 · ARP攻击防范与解决方案 · SQL Server 2005全解 · SOA 面向服务架构 · SQL Server 2005全解 · Java编程开发手册 · RAID——磁盘阵列基础 |
· 三层交换技术专题 · SQL Server入门到精通 · Windows Server 2003企.. · Windows远程桌面应用 · C#技术开发指南 · VPN技术 · Solaris 10 配置管理 · C#技术开发指南 |
||
|
|||
| · ARP攻击防范与解决方案 · VPN技术 · SQL Server 2005全解 · Java基础教程 · SQL Server入门到精通 · SQL Server 2005全解 · SOA 面向服务架构 · Java编程开发手册 |
· C#技术开发指南 · 三层交换技术专题 · C#技术开发指南 · Windows远程桌面应用 · RAID——磁盘阵列基础 · Windows Server 2003企.. · 邮件服务器专题 · wimax技术与趋势 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·服务器中的“傻瓜机”在.. ·盖茨也喜欢登录Youtube看.. |
· · |
| ·拯救系统管理员 ·美国选民:我为什么选布什 |
·VMware公司中文命名挑战赛 ·我们真缺乏创新吗? |
| ·J0ker的CISSP之路:复习-.. ·J0ker的CISSP之路:复习-I.. |
·9月第3周安全回顾 内网安.. ·教你几招识别和防御Web网.. |
| · NGN:下一代网络 · 网络访问中断大排查 · FTTx光纤接入 |
· 教你使用Anti ARP Sniff.. · 网络嗅探教程:使用Snif.. · 常见病毒手工清除方法大.. |
| · C++是垃圾语言?! · 2007年IT界七大抄袭事件 · Java实用开发全集 |
· 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. · 基于Google Maps与Ajax.. |
| · 热门 IT 培训认证官方资.. · Ubuntu 中文开源频道 · Solaris基础知识入门 |
· 费力不讨好 数据中心主.. · AMD Phenom三核处理器解.. · 51CTO主编推荐经典专题 |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· 存储2006,一个并购的大.. · IDC宣布浪潮蝉联存储市.. · 双机热备技术 |