在 Standard 或 Advanced 许可等级下可用。
将锁应用于地理数据库对象以确保数据完整性。 例如,如果某人正在编辑表中的数据,则在表中放置一个方案锁后,当某人编辑数据时,所有者便无法对表方案进行更改。 同样,当某人正在编辑分支版本中的要素图层时,将在版本上放置一个锁,以防多个编辑者同时在同一指定版本中进行编辑。
您可从 ArcGIS Pro 客户端看到哪些锁,取决于您是否为数据集所有者、版本拥有者,还是地理数据库管理员。 数据集和版本拥有者可以查看与其拥有的项目相对应的锁;地理数据库管理员可以查看所有的锁,并能够在必要时断开持有锁的用户的连接。
锁视图
您可通过锁视图查看应用至企业级地理数据库对象的锁,但您需身为其数据集所有者、版本所有者或地理数据库管理员。 这些地理数据库对象的列反映所获取的各个锁的属性。
锁属性包括以下各项:
- Object Name- 锁定的对象名称。
- Object Type- 锁定对象类型,例如表、要素类或版本。
- Lock Type- 用于在保护数据的同时提供数据访问的锁类型。 根据数据集的注册类型和操作,可以应用以下锁类型:
- Schema 锁 - 当执行取决于对象方案的操作时,使用此类型。 例如,只要在 ArcGIS Pro 中打开数据集时,就获取共享方案锁。 默认情况下,将对由服务锁定的对象启用方案锁,以防止在服务运行期间对源数据集方案进行修改。
- State 锁 - 当访问传统版本化数据集时,企业级地理数据库将维护状态锁,以防止在客户端应用程序访问或使用状态时删除或修改状态。
- Version 锁 - 通过编辑数据库连接中的传统版本数据集或查看或编辑服务中的分支版本化数据集,将获取 version 锁类型。
注:
仅在查看或编辑分支版本化服务时获取的 Version 锁会填充 ExpirationTime、Service Name 和 Session ID 列。
- OID Reservation 锁 - 在编辑分支版本化数据集时,将获取 OID Reservation 锁。
注:
OID Reservation 锁类型不包括 Lock Mode、Time Acquired 或 ExpirationTime 列的值。
- Lock Owner- 访问或修改生成锁的对象的用户。
- Lock Mode- 用于确定锁的所有者和锁定对象同时访问用户允许的访问类型的锁模式。 根据要执行的操作和数据集的版本化类型,锁模式会有所不同。 地理数据库中提供以下锁模式:
- Shared 锁 - 允许多个用户访问或读取一个对象的操作需要共享锁。 共享锁可防止任何其他操作获得独占锁。
- Exclusive 锁 - -修改对象(例如插入、更新或删除)并且必须阻止同时访问用户访问或更新对象的操作需要独占锁。 独占锁可防止任何操作获取对象的锁,直到独占锁被释放。
- Time Acquired- 针对对象获取锁的日期和时间。
- Service Name- 导致获取锁的服务名称。 如上所述,此字段仅为分支版本化服务填充。 其他 Web 服务获取地理数据库对象的锁,但服务名称不显示在此界面上。
- ExpirationTime- 锁将过期的日期和时间。 如果锁过期,锁条目可能仍然存在于数据库中,尽管它不会阻止获取另一个锁。 一旦针对该版本获得了另一个有效锁,则该锁将从数据库中删除。 当会话仍处于活动状态时,锁的有效期会延长。
- Session ID- 客户端生成的 sessionID 是为版本的会话持续期间建立的 GUID 值,表示用于锁定版本的令牌。
提示:
ArcGIS Server 供了一种基于令牌的专有身份验证机制,使用户能够通过提供令牌而不是用户名与密码来进行自我身份验证。 ArcGIS 令牌是包含用户名、令牌有效期和某些专有信息的加密信息字符串。
在您的数据集中查看锁
如果需要查看谁持有某个锁,导致您无法更改您所拥有的数据集的方案,您可在地理数据库管理对话框中查看该数据集上的锁的列表。
- 启动 ArcGIS Pro 并以数据集所有者身份连接到地理数据库。
- 右键单击目录窗格中的数据集,然后单击锁。
数据集随即在对象名称字段中列出,并且与该数据集建立的连接也将在其下方列出。
- 如果您需要释放该锁,请在列表中确定相关用户的身份后与其取得联系,并请求其关闭与数据集之间的连接,或与您的地理数据库管理员取得联系。
在您的版本中查看锁
如果需要查看谁持有某个锁,导致您无法管理您所拥有的版本,您可在地理数据库管理对话框中查看这些锁的列表。
- 启动 ArcGIS Pro 并以版本所有者身份连接到地理数据库。
- 在目录窗格中右键单击数据库连接,然后单击锁。
地理数据库管理对话框中的锁列表随即打开,您可以看到用于您所拥有的数据集和版本的锁。
- 如果您需要释放该锁,请在列表中确定相关用户的身份后与其取得联系,并请求其关闭与该版本之间的连接,或与您的地理数据库管理员取得联系。
管理地理数据库锁
地理数据库管理员可以使用地理数据库管理对话框的锁选项卡查看在地理数据库中为所有项目保持方案锁、版本锁和状态锁的用户。 地理数据库管理员还可以移除持有锁的连接以便为用户释放资源。
注:
您无法移除单个锁;您只能通过断开某个用户的连接来移除该用户持有的所有锁。
- 启动 ArcGIS Pro 并以地理数据库管理员身份连接到地理数据库。
- 在目录窗格中右键单击数据库连接,然后单击管理 > 锁。
地理数据库管理对话框中的锁列表随即打开。
- 使用顶部的下拉菜单,按照对象类型、对象名称、锁的类型或锁的所有者来过滤锁。
- 请与持有将需要释放的锁的用户取得联系,并要求他们完成事务并断开与地理数据库的连接。 如果某个持有锁的用户全天都处于离开状态,并且需要立即释放锁,则可以断开该用户的连接。
警告:
在断开用户连接时请谨慎操作。 Esri 建议您避免断开活动会话,特别是已连接用户正在进行编辑时。 只有在会话保持打开状态但并未使用(例如周末)、会话崩溃并导致随后的连接锁定某个对象,或者发生死锁情况时才应断开用户以释放锁。
- 如有必要,请右键单击锁,然后单击断开用户。
地理数据库管理员必须具有高级权限才能断开用户连接。
- 在 PostgreSQL 中,sde 用户必须拥有数据库集群中的超级用户状态。
- 如果您在 SQL Server 中的地理数据库位于 sde 用户方案中,则 sde 用户必须具备高级权限才能断开用户。 有关特定权限,请参阅 SQL Server 地理数据库的权限。
- 有关 Oracle 中所需的特定权限,请参阅 Oracle 地理数据库的权限。
- 在 SAP HANA 中,sde 用户需要其他数据库权限。 有关详细信息,请参阅 SAP HANA 地理数据库的权限。