Доступно с лицензией Standard или Advanced.
Как администратор базы геоданных, вы время от времени должны просматривать, кто подключен к базе геоданных и какие соединения являются блокированными ресурсами. Вам даже, возможно, потребуется удалить некоторые подключения. Например, редактор, возможно, оставил сеанс редактирования открытым, заблокировал данные в сеансе редактирования и запретил другим редакторам доступ к ней. Если число подключений к базе геоданных ограничено, то вам может оказаться необходимым отключить пользователя, который не смог выйти, чтобы освободить подключение. Или вам может потребоваться отключить всех пользователей, чтобы вы могли применить патч к базе данных, восстановить базу данных или сжать базу геоданных.
Если пользователи отсутствуют и не могут выйти сами, то вы можете подключиться к базе геоданных как пользователь sde из ArcGIS for Desktop или функции ArcPy и удалить пользовательские подключения. Пользователь sde должен иметь доступа уровня superuser, чтобы удалять подключения пользователей из базы геоданных.
Сначала определите пользователей, подключенных к базе геоданных, и удалите подключения при необходимости. Вы можете подключиться к базе геоданных в ArcGIS for Desktop с помощью функции ArcPy DisconnectUser.
Идентификация и удаление подключений из ArcGIS Desktop
Вы можете подключиться к базе геоданных в качестве sde в ArcGIS for Desktop для просмотра подключений в диалогом окне Администрирование базы геоданных (Geodatabase Administration).
- Запустите ArcMap или ArcCatalog.
- Подключитесь к базе геоданных от имени пользователя sde.
- Щелкните правой кнопкой подключение к базе геоданных в дереве Каталога (Catalog), выберите пункт Администрирование (Administration) и щелкните Администрирование базы геоданных (Administer Geodatabase).
- Перейдите на закладку Подключения (Connections).
Отобразится список всех пользовательских сеансов, которые в текущий момент подключены к базе геоданных. Ваш сеанс отображается курсивным шрифтом.
- Свяжитесь с пользователями и попросите их закрыть свои сеансы. Если вы не можете связаться с ними и все-таки необходимо отключить их от базы геоданных, то перейдите к следующему шагу.
- Щелкните правой кнопкой мыши конкретный сеанс пользователя, которой вы хотите удалить из базы геоданных, и щелкните Отключить (Disconnect).
Сеанс пользователя будет немедленно удален из базы геоданных.
Идентификация и удаление подключений с помощью ArcPy
Вы можете запустить функции Python, чтобы определить подключение к базе геоданных, просмотреть список пользователей, которые в настоящее время подключены к базе геоданных, и удалить подключение из базы геоданных.
- Создайте файл подключения базы данных с помощью функции CreateDatabaseConnection_management в окне Python. Сохраните имя пользователя и пароль в файле.
В данном примере файл подключения (pgdb.sde) создан в папке temp. Выполнено подключение к базе геоданных pg1 в кластере mydbc от имени пользователя sde.
import arcpy arcpy.CreateDatabaseConnection_management ("c:\\temp", "pgdb.sde", "POSTGRESQL", "mydbc", "DATABASE_AUTH", "sde", "mysdepwd", "SAVE_USERNAME", "pg1")
- Запустите функцию ListUsers для получения списка всех текущих подключений к базе геоданных pg1.
Укажите файл подключения, который вы создали на предыдущем шаге.
##No need to import arcpy if you are running functions in the same Python window. import arcpy arcpy.ListUsers("c:\\temp\pgdb.sde")
Возвращается список подключений пользователей.
[user(ClientName=u'PC4', ConnectionTime=datetime.datetime(2014, 2, 18, 8, 30, 19), ID=18, IsDirecConnection=True, Name=u'publisher1')] [user(ClientName=u'PC25', ConnectionTime=datetime.datetime(2014, 2, 21, 14, 10, 43), ID=33, IsDirecConnection=True, Name=u'editor2')] [user(ClientName=u'PC11', ConnectionTime=datetime.datetime(2014, 2, 22, 9, 18, 26), ID=39, IsDirecConnection=True, Name=u'reader5')] [user(ClientName=u'PCA2', ConnectionTime=datetime.datetime(2014, 2, 22, 11, 21, 2), ID=41, IsDirecConnection=True, Name=u'sde')]
- Свяжитесь с пользователями и попросите их закрыть свои сеансы. Если вы не можете связаться с ними и все-таки необходимо отключить их от базы геоданных, то перейдите к следующему шагу.
- Используйте информацию, полученную от функции ListUsers, чтобы определить, какое подключение следует удалить посредством функции DisconnectUser.
Укажите ID подключения, которое нужно удалить. Здесь удаляется подключение с ID 33:
##No need to import arcpy if you are running functions in the same Python window. import arcpy arcpy.DisconnectUser("c:\\temp\pgdb.sde",33)
Сеанс пользователя будет немедленно удален из базы геоданных.