在本教程中,将通过在远程数据库中添加新表来变更远程数据库的模式。
在本课中,将更改远程数据库的模式。为实现本教程的目的,每当更改数据库的远程模式名称时,模式均会发生更改。系统决不会强制您更改远程模式名称,始终由您自行决定。
上下文和注释
您应尽量确保,对一个远程数据库执行的任何远程任务均可对任何其它具有相同远程模式名称的远程数据库执行。如果对数据库更改会导致任务失败或成功,则应更改数据库的远程模式名称。任务中唯一受远程数据库状态影响的命令是各个同步和执行 SQL 命令。
同步命令具体取决于远程数据库中存在的同步配置文件,因此应该始终在添加或删除同步配置文件时更改远程模式名称。
执行 SQL 命令依赖于通常被视为模式的组成部分的许多数据库对象的状态。影响执行 SQL 命令因而需要更改远程模式名称的更改包括:从数据库中添加或删除表、变更数据库中表的定义以及添加或删除存储过程。
在 Sybase Central 中,返回 [文件夹] 视图。在 [MobiLink 16] 下,展开 [Central Admin Tutorial],右击 [远程模式名称],然后单击 [新建] » [远程模式名称]。
将出现 [创建远程模式名称向导]。
键入 Tutorial Application v2.0 作为模式名称,然后单击 [完成]。
创建新远程任务。在 Sybase Central 的 [文件夹] 视图的 [Central Admin Tutorial] 下,右击 [远程任务],然后单击 [新建] » [远程任务]。将出现 [创建远程任务向导]。
在 [欢迎] 页面上,在 [名称] 字段中键入 Schema Upgrade。
选中 [此任务需要或将创建远程数据库],并将 [远程模式名称] 设置为 [Tutorial Application v1.0]。
选中 [此任务可更新受管远程数据库的模式],并将 [新远程模式名称] 设置为 [Tutorial Application v2.0]。单击 [完成]。
在 [命令] 选项卡上,从 [命令类型] 下拉列表中选择 [执行 SQL]。在 [SQL] 字段中,键入以下内容:
CREATE TABLE product ( prod_id integer primary key, name varchar( 100 ) ); |
现已完成模式更改任务。
在部署新的模式更改任务前,必须考虑已指派给远程设备的所有任务。完成 Schema Upgrade 任务后,数据库的远程模式名称将变为 Tutorial Application v2.0。远程设备上与原来的远程模式名称 Tutorial Application v1.0 相关联的所有任务将无法再运行,代理将放弃它们。为保留这些任务提供的功能,必须创建新版的任务并将其与新的远程模式名称关联。
在 [文件夹] 视图的 [Central Admin Tutorial] » [统一数据库] » [Tutorial] » [代理] » 下,单击 [AID_JOHN]。在右窗格中,选择 [任务] 选项卡。代理只能执行仍然活动的任务。这些任务是唯一需要创建新版本的任务。在这种情况下,唯一的活动任务是 Sync every hour 任务。
通过在 [任务] 选项卡上选中 [远程模式名称] 列,可以确定此任务是否与原来的远程模式名称关联。此任务显示,Sync every hour 任务的 [远程模式名称] 为 [Tutorial Application v1.0],因此它与原来的远程模式名称关联。要在模式更改后继续同步,需要创建此任务的新版本,并将其指派给代理。
右击 [Sync every hour] 任务,然后单击 [转到任务]。
右击部署的任务 [Sync every hour],并选择 [复制]。
右击 [远程任务],然后单击 [粘贴]。在系统要求提供复制任务的名称时,键入 Sync every hour v2,然后单击 [确定]。
考虑是否需要更改任务中的命令,以便继续使用新模式。在本例中,不需要更改任务中的命令。任务中只有一个命令,而它仅取决于未使用此模式更改进行修改的 tutorial1_JOHN 同步配置文件。
将任务标记为与新的远程模式名称关联。右击 [Sync every hour v2] 任务,并选择 [属性]。在属性窗口的 [常规] 页面上,选择 [Tutorial Application v2.0] 作为 [远程模式名称],然后单击 [确定]。
要部署新任务,请右击 [Sync every hour v2] 任务并单击 [部署]。单击 [下一步]。
对于 [接收者],单击 [特定代理],然后选择代理 AID_JOHN。单击 [下一步],然后单击 [完成]。
右击 [Schema Upgrade] 任务并单击 [部署]。单击 [下一步]。
从 [接收者] 下拉列表中,单击 [特定代理],然后将任务指派给代理 AID_JOHN。单击 [下一步],然后单击 [完成]。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |