REBIND PLAN 命令(数据链路层)
当您对计划(如软件包列表)的属性进行更改时,DSN 子命令 REBIND PLAN 会重新绑定该计划。
例如,当您更改授权、修改计划包列表或使用RUNSTATS时,可以使用REBIND PLAN。 如果重新装订成功,则该流程会准备一份应用计划,并在目录表SYSPLAN中更新其描述。
REBIND PLAN通常比BIND PLAN更快、更经济。 但是,如果您更改SQL语句或重新编译程序,则应使用带有ACTION(REPLACE)选项的BIND PLAN。
环境 REBIND PLAN
您可以通过 DB2I 使用 REBIND PLAN,或者在前台或后台运行的 DSN 会话中输入 REBIND PLAN 子命令。
数据共享范围 :集团
授权 REBIND PLAN
计划所有者必须是一个角色,在可信的环境中执行重新绑定计划,并拥有角色所有权。
如果您使用PKLIST关键字,则必须对PKLIST上指定的软件包或集合具有EXECUTE权限。
下表根据指定的选项说明了运行REBIND PLAN所需的授权。
| 选项 | 运行REBIND PLAN需要授权 |
|---|---|
| 重新绑定计划,所有权不变,因为未指定所有者关键字。 | 流程的授权ID必须具有以下权限之一:
|
| 重新绑定计划,所有权不变,但“所有者”关键字中指定了原所有者。 | 流程的授权ID必须具有以下权限之一:
|
| 所有权变更后的重新绑定计划。 (非原车主的授权ID在OWNER关键字中指定。) | 新的车主必须具备以下权限之一:
如果进程的任何授权ID或角色具有SYSADM权限、SYSCTRL权限或系统DBADM权限,则当子系统参数SEPARATE_SECURITY设置为NO时,OWNER 授权ID 可以为任何值。 如果授权ID中包含所有者授予的BINDAGENT权限,则 授权ID 可以将授权者指定为所有者。 否则,OWNER 授权ID 必须是活页夹的主授权ID或次授权ID之一。 如果您指定了所有者 授权ID , Db2 会首先检查所有者,然后检查活页夹是否具有必要的活页夹权限。 如果绑定者没有 SYSADM、SYSCTRL 或系统 DBADM 权限,则所有者必须具有以下权限之一,才能将新软件包或现有软件包的新版本添加到集合中:
|
| COLLID,指定(*),表示集合中的所有包 | 您无需任何授权特权即可使用此选项。 |
| COLLID,指定单独的套餐 | 流程的授权ID必须包含以下权限之一:
|
| PKLIST,指定单个软件包 | 流程的授权ID必须包含以下权限之一:
|
| PKLIST,指定(*),表示集合中的所有包 | 流程的授权ID必须包含以下权限之一:
|
REBIND PLAN的语法
- 1 REOPT(VARS) 可以被指定为 REOPT(ALWAYS) 的同义词
- 2 NOREOPT(VARS) 可以被指定为 REOPT(NONE) 的同义词
- 3 不能使用 PATH 关键字指定 PATHDEFAULT 关键字。
描述 REBIND PLAN
- ( 计划名称 )
- 指定要重新绑定的应用程序计划的名称,该名称存储在 SYSPLAN目录表的 NAME列中。
- (*)
- 重新绑定所有授权ID具有绑定权限的计划。 适用的授权ID是:
- 如果您指定了OWNER,则其价值。 参见车主绑定选项。
- 如果您指定了OWNER选项,则运行绑定过程的授权ID。
- 重新绑定计划的其他选项
语法图中显示的选项说明,请参阅 “软件包、计划和服务绑定和重新绑定选项 ”主题。
使用说明
- 重新绑定多个计划
- 如果您重新绑定多个计划, Db2 会在重新绑定下一个计划之前提交每个成功的重新绑定。
- 当您无法重新制定计划时
- 当计划正在执行时,您无法重新绑定该计划。
- 数据共享成员的信息追踪
- 当在 Db2 数据共享成员中发出具有组范围的命令时,该命令也会在所有其他活动成员中运行。 IFICID 090 跟踪记录显示,除了发出原始命令的成员的跟踪记录外, 016.TLPKN5F 相关 ID 的 SYSOPR 授权 ID 也发出了相同的命令。 请参阅 Db2 数据共享中的命令范围。
示例
- 示例:重新绑定计划以替换包裹清单
- 假设PLANA使用COLLA*的包装清单 假设您想用COLLB替换该包列表 发出这样的命令:
REBIND PLAN (PLANA) - PKLIST(COLLB.*) - FLAG(W) - VALIDATE(BIND) - ISOLATION(CS)REBIND命令还可以执行以下操作:
- 使用FLAG(W)发出警告、错误和完成信息,但不包括信息性消息。
- 使用 VALIDATE(BIND) 指出绑定过程中的任何错误情况。
- 使用ISOLATION(CS)来防止其他应用程序在应用程序使用数据库值时更改这些值。 这种隔离级别可保护更改后的值,直到应用程序提交或终止。 在这个例子中,隔离级别不是为包设置的,因此 ISOLATION(CS) 成为计划和包的隔离级别。
- 省略OWNER关键字,使计划所有者授权ID保持不变。
- 省略 ENABLE 或 DISABLE 关键字,使用之前为计划定义的连接。
