Disponible con una licencia Standard o Advanced.
Como administrador de la geodatabase, puede que de vez en cuando necesite ver quien está conectado a la geodatabase y qué conexiones bloquean los recursos. También puede que necesite eliminar determinadas conexiones. Por ejemplo, es posible que un editor haya dejado abierta una sesión de edición que esté bloqueando los datos en la sesión y evite que otros usuarios puedan acceder a ellos. Cuando el número de conexiones que pueden realizar a una geodatabase sea limitado, es posible que necesite desconectar a un usuario que no haya cerrado la sesión para liberar una conexión. También es posible que quiera que todos cierren la sesión para aplicar un parche a la base de datos, restaurar la base de datos o comprimir la base de datos.
Si los usuarios no están presentes para cerrar la sesión ellos mismos, puede conectarse a la geodatabase como administrador de la geodatabase desde ArcGIS for Desktop o una función de ArcPy y anular las conexiones de los usuarios.
Para desconectar usuarios de una geodatabase en Oracle, el administrador de la geodatabase debe agregarse al rol DBA o contar con los privilegios ALTER SYSTEM y SELECT_CATALOG_ROLE.
En primer lugar, determine quién está conectado a la geodatabase y elimine las conexiones que necesite. Puede conectarse a la geodatabase de ArcGIS for Desktop mediante la función DisconnectUser de ArcPy.
Identificar y eliminar conexiones de ArcGIS for Desktop
Puede conectarse a la geodatabase como su administrador en ArcGIS for Desktop para ver y eliminar conexiones desde el cuadro de diálogo Administración de la geodatabase.
- Inicie ArcMap o ArcCatalog.
- Conéctese a la geodatabase como administrador de la misma.
- Haga clic con el botón derecho en la conexión de base de datos del árbol de Catálogo, seleccione Administración y haga clic en Administrar geodatabase.
- Haga clic en la pestaña Conexiones.
Se muestra una lista de todas las sesiones de los usuario que están conectados actualmente a la geodatabase. Su sesión se muestra con texto en cursiva.
- Póngase en contacto con los usuarios y pídales que cierren la sesión. Si no puede contactar con ellos y sigue necesitando desconectarlos de la geodatabase, realice el paso siguiente.
- Haga clic con el botón derecho en la sesión de usuario que quiera eliminar de la geodatabase y haga clic en Desconectar.
La sesión del usuario se eliminará de inmediato de la geodatabase.
Identificar y eliminar conexiones con ArcPy
Puede ejecutar las funciones de Python para definir una conexión de geodatabase, hacer la lista de los usuarios que están conectados a la geodatabase y eliminar una conexión de la geodatabase.
- Cree un archivo de conexión de base de datos ejecutando la función CreateDatabaseConnection_management en una ventana de Python. Guarde el nombre de usuario y la contraseña con el archivo.
En este ejemplo se crea un archivo de conexión (oragdb.sde) en la carpeta temporal. La conexión se realiza a la base de datos spora, iniciando sesión como usuario sde.
import arcpy arcpy.CreateDatabaseConnection_management ("c:\\temp", "oragdb.sde", "ORACLE", "spora", "DATABASE_AUTH", "sde", "mysdepwd", "SAVE_USERNAME")
- Ejecute la función ListUsers para obtener una lista de todas las conexiones actuales a la geodatabase spora.
Especifique el archivo de conexión que creó en el paso anterior.
##No need to import arcpy if you are running functions in the same Python window. import arcpy arcpy.ListUsers("c:\\temp\oragdb.sde")
Aparece una lista con las conexiones de usuario.
[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')]
- Póngase en contacto con los usuarios y pídales que cierren la sesión. Si no puede contactar con ellos y sigue necesitando desconectarlos de la geodatabase, realice el paso siguiente.
- Use la información obtenida con la función ListUsers para identificar la conexión que se eliminará con la función DisconnectUser.
Especifique el Id. de la conexión que se eliminará. Aquí se elimina la conexión con Id. 33:
##No need to import arcpy if you are running functions in the same Python window. import arcpy arcpy.DisconnectUser("c:\\temp\oragdb.sde",33)
La sesión del usuario se eliminará de inmediato de la geodatabase.