命令中的
发布时间:2021-09-06 02:13:15
虽然 LOAD 之后表空间和表的状态都正常,但如果今后需要执行前滚命令恢复数据库时,前滚操作将跳过 LOAD 事务的处 理,而将 LOAD 的表标记为无效,是对表的任何操作都不能进行。如:
E:\\TESTdb2 restore db sample taken at
DB20000I RESTORE DATABASE 命令成功完成。
E:\\TESTdb2 rollforward db sample to end of logs and stop
前滚状态
输入数据库别名 = sample
节点数已返回状态 = 1
节点号 = 0
前滚状态 = 未暂挂
下一个要读取的日志文件 =
已处理的日志文件 = G - G
上次落实的事务 = .19.55.000000
DB20000I ROLLFORWARD 命令成功完成。
E:\\db2 connect to sample
E:\\TESTdb2 list tablespaces
:
表空间标识 = 2
名称 = USERSPACE1
类型 = 系统管理空间
但是在BOSS们的眼里 内容 = 任何数据
状态 = 0x0000
详细解释:
正常
:
E:\\db2 select * from staff
ID NAME DEPT JOB YEARS SALARY COMM
------ --------- ------ ----- ------ --------- ---------
SQL1477N 不能存取表 \"AFF\"。 SQLSTATE=55019
这表明该表已不可操作,此时只有将表删除,重新构建,或使用 LOAD 操作时间点之后所做的数据库全备份或表空间备份来恢复该表。
5. 关于注册表变量 DB2_LOAD_COPY_NO_OVERRIDE 的介绍:
另外 DB2 还提供了一个注册表变量:DB2_LOAD_COPY_NO_OVERRIDE,可将 LOAD 的缺省选项 COPY NO 设置为 NONRECOVERABLE 或 COPY YES。具体使用方法举例为:
设置为 COPY YES 的方法:
E:\\TESTdb2set DB2_LOAD_COPY_NO_OVERRIDE=\"COPY YES TO E:\\TEST\"
E:\\TESTdb2 terminate
E:\\TESTdb2set
DB2_LOAD_COPY_NO_OVERRIDE=COPY YES TO E:\\TEST
:
E:\\TESTdb2 load from l of del insert into staff
SQL27966W DB2_LOAD_COPY_NO_OVERRIDE 注册表变量值 \"COPY YES TO E:\\TEST\" 将覆盖在 Load 中指定的 COPY NO 参数。
:
:
设置为 NONRECOVERABLE 的方法:
E:\\TESTdb2set DB2_LOAD_COPY_NO_OVERRIDE=NONRECOVERABLE
E:\\TESTdb2 terminate
E:\\TESTdb2set
DB2_LOAD_COPY_NO_OVERRIDE=NONRECOVERABLE
:
E:\\TESTdb2 load from l of del insert into staff
SQL27966W DB2_LOAD_COPY_NO_OVERRIDE 注册表变量值 \"NONRECOVERABLE\" 将覆盖在Load 中指定的 COPY NO 参数。
:
:
通过上述对 LOAD 的 COPY NO,COPY YES 和 NONRECOVERABLE 参数,以及 DB2 注册表变量 DB2_LOAD_COPY_NO_OVERRIDE 的详细和举例说明,到此我们已经掌握了它们的功能和使用方法。由于 LOAD 操作几乎不记日志的特性,在对启用了前滚恢复的数据库实现 LOAD 操作时应注意从中选择适当的选项,以保证执行了 LOAD 操作的表的可用性。
宝宝积食怎么调理脾胃湖州包皮包茎治疗哪家好
哈尔滨治疗妇科好方法