DSA 还原锁定策略 - BAR - Data Stream Architecture

Teradata® DSA 用户指南

Product
BAR
Data Stream Architecture
Release Number
17.20
Published
2022 年 3 月
Language
中文 (简体)
Last Update
2022-04-14
dita:mapPath
zh-CH/bis1632417576364.ditamap
dita:ditavalPath
zh-CH/vwp1576617377804.ditaval
dita:id
B035-3150
Product Category
Software
Teradata Tools and Utilities

在开始处理还原作业时,DSA 将获取作业计划中每个对象的主机实用程序 (HUT) 独占锁定。由于正在写入对象定义和数据,DSA 需要在这些对象上放置独占锁定,从而不会在写入系统时产生冲突。如果作业计划包括数据库,则 DSA 会将独占 HUT 锁定置于整个数据库上。如果作业计划包括对象,则 DSA 会将独占 HUT 锁定置于对象上。

此外,在还原对象定义时,还原还会在多个 DBC 表上放置写入锁定。该锁定在字典阶段中将会保持。锁定的表包括:TEXTTBL、IDCOL、DEPENDENCY、JAR_JAR_USAGE、ROUTINE_JAR_USAGE、ERRORTBLS、JARS、STATSTBL、QUERYSTATSTBL、REFERENCEDTBLS、REFERENCINGTBLS、UNRESOLVEDREFERENCES、CONSTRAINTNAMES、TRIGGERSTBL、OBJECTUSAGE、UIF_INFO、SERVERTBLOPINFO、DBCASSOCIATION、TVM、INDEXES、TVFIELDS、UDFINFO 和 TABLECONSTRAINTS。DBASE 和 DATASETSCHEMAINFO 上还会有访问锁定。这些是表级别锁定。

即使原始作业定义是数据库级别还原,重新启动的作业也可能会设置表级别 HUT 锁定。

例如,Job1 在数据库级别复制 DB1 和 DB2。DB1 和 DB2 分别具有 table1、table2 和 table3,该作业在 DB1.table1 完成后中止。此时,DB1 已部分完成,而 DB2 中未完成任何对象。在这种情况下,重新启动作业会在 DB1 table2 和 DB1.table3 上放置表级别锁定,并在 DB2 上放置数据库级别锁定。

在完全还原对象后就会立即释放 HUT 独占锁定。
  • 对于在对象级别还原的没有表标题的对象,将在字典阶段结束时释放锁定。
  • 对于在对象级别还原的表,会在完全还原对象后立即释放锁定。
  • 对于数据库级别锁定,在完全还原数据库中的所有对象后就会立即释放锁定。
  • [Advanced SQL Engine 16.20 及更高版本/Teradata Database 16.0 及更高版本] 如果在备份期间选择了空表选项,而空表在表级别上进行还原,则会在字典阶段结束时释放空表上的锁定。