Les géodatabases d'enterprise utilisent des tables de fichiers journaux pour maintenir des listes d'enregistrements sélectionnés. Les enregistrements sont écrits dans les tables de fichiers journaux pour que l'application puisse les utiliser ultérieurement dans les situations suivantes :
- Un client crée un ensemble de sélection d'une taille donnée (100 enregistrements dans ArcMap ou 1 000 enregistrements dans ArcGIS Pro ; 1 000 enregistrements si les identifiants ObjectID sont demandés par un service d'entités).
- Vous effectuez une réconciliation ou une réinjection dans une géodatabase versionnée.
- Une application client extrait les données pour une mise à jour en mode déconnecté.
Les tables de fichiers journaux stockent les identifiants ObjectID des entités sélectionnées pour qu'ils puissent être réaffichés. Ceci permet une analyse et un traitement plus rapides des informations.
Le fichier journal comporte trois options différentes : partagé, de session et groupes de fichiers journaux de session. Chacune est décrite dans sa propre section dans cette rubrique.
Par défaut, dans SQL Server, les géodatabases utilisent des fichiers journaux de session créés dans la base de données temporaire (tempdb). C'est le paramètre recommandé qui doit suffire dans la plupart des cas. Toutefois, pour modifier les paramètres, reportez-vous à la rubrique Modifier les paramètres des tables de fichiers journaux.
Fichiers journaux de session
Les tables de données de fichiers journaux de session sont consacrées à une seule session et peuvent contenir plusieurs ensembles de sélection (fichiers journaux). Chaque session connectée nécessite un ensemble de tables pour les sélections.
Quand utiliser des fichiers journaux de session
Cette méthode est fortement conseillée si votre géodatabase est stockée dans SQL Server. Dans les bases de données sur site SQL Server, il est possible de créer des tables de fichiers journaux de session dans la base de données tempdb. Dans ce cas, vous n'avez à gérer aucune table dans la géodatabase, la consignation des transactions est minimale et il n'est pas nécessaire d'attribuer des autorisations CREATE TABLE à tous les utilisateurs dans la base de données. Etant donné qu'il s'agit du paramètre par défaut pour les géodatabases dans les bases de données sur site SQL Server, il n'est pas nécessaire de modifier les paramètres pour utiliser cette option de fichier journal.
Création de tables pour des fichiers journaux de session
Avec les paramètres par défaut dans SQL Server, une table est créée dans tempdb au format ##SDE_SESSION<SDE_ID >_<DBID>. L'<SDE_ID> est l'ID de session unique de la table SDE_process_information. L'ID <dbid> est l'ID de la base de données fourni par SQL Server. Cette table est tronquée lorsque l'application de connexion supprime ses fichiers journaux et elle est supprimée à la fin de la session. Notez que vous ne pouvez pas voir les objets temporaires dans l'Explorateur d'objets dans Management Studio.
Si les tables de fichiers journaux de session sont créées directement dans la géodatabase (pas dans tempdb), trois tables sont créées : SDE_LOGFILES, SDE_LOGFILE_DATA et SDE_SESSION <SDE_ID>. La table SDE_LOGFILE_DATA n'est pas utilisée dans ce cas mais elle est créée automatiquement. La table SDE_LOGFILES stocke des informations relatives à l'ensemble de sélection, ainsi qu'une balise de session <ID_SDE> ajoutée au nom de la table SDE_SESSION. La table SDE_SESSION stocke l'identifiant d'entité pour l'ensemble sélectionné et l'ID de fichier journal.
Les deux tables SDE_LOGFILES et SDE_LOGFILE_DATA restent dans la géodatabase. La table SDE_LOGFILES est tronquée lors de la déconnexion de l'application de connexion. La table SDE_SESSION<ID_SDE> est tronquée lorsque l'application de connexion supprime les fichiers journaux et elle est supprimée à la fin de la session.
Paramètres de contrôle du stockage des index et des tables de fichiers journaux de session
Plusieurs paramètres sous le mot-clé LOGFILE_DEFAULTS de la table sde_dbtune permettent de déterminer le mode ou l'emplacement de stockage des tables de fichiers journaux dans la base de données. Il n'est pas nécessaire de configurer ces paramètres pour pouvoir utiliser des fichiers journaux de session, mais vous pouvez les définir si vous souhaitez modifier le mode de stockage des index et des tables SDE_LOGFILES, SDE_LOGFILE_DATA et SDE_SESSION dans la base de données.
Sous SQL Server, les paramètres suivants sont utilisés :
- LD_INDEX_ALL
- LD_STORAGE
- LF_CLUSTER_ID
- LF_CLUSTER_NAME
- LF_INDEX_ID
- LF_INDEX_NAME
- LF_STORAGE
- SESSION_TEMP_TABLE
Le paramètre SESSION_TEMP_TABLE doit être défini sur 1 (true) pour permettre la création de la table de fichier journal de session dans tempdb.
Si vous définissez le paramètre SESSION_TEMP_TABLE sur 0 (false), les tables SDE_LOGFILES, SDE_LOGFILE_DATA et SDE_SESSION<ID_SDE> sont alors créées dans la structure de l'utilisateur connecté. Cela affecte les privilèges requis pour l'utilisateur.
Reportez-vous à la rubrique Paramètres de configuration de SQL Server pour plus d'explications concernant ces paramètres.
Autorisations requises pour les fichiers journaux de session
Si vous utilisez les paramètres SQL Server recommandés pour les bases de données sur site, les utilisateurs ont uniquement besoin de pouvoir se connecter à la base de données. Toutefois, si vous définissez le paramètre SESSION_TEMP_TABLE de la table SDE_dbtune sur 0, les utilisateurs connectés nécessitent le privilège CREATE TABLE dans la base de données en plus des privilèges CONNECT.
Fichiers journaux partagés
Les fichiers journaux partagés sont communs à l'ensemble des sessions ouvertes avec un même nom d'utilisateur. Si plusieurs utilisateurs se connectent avec le même compte utilisateur, toutes leurs sessions effectuent des ajouts et des suppressions d'enregistrements dans la même table de données de fichiers journaux.
Quand utiliser des fichiers journaux partagés
Vous ne devez utiliser des fichiers journaux partagés que si vous ne souhaitez pas créer de tables dans la base de données temporaire tempdb et en présence d'un grand nombre de sessions simultanées, chaque session se connectant à l'aide d'un compte utilisateur individuel.
Quand ne pas utiliser de fichiers journaux partagés
Si vous ne souhaitez pas stocker de tables de fichiers journaux dans les structures de chaque utilisateur, vous n'avez pas besoin d'utiliser de fichiers journaux partagés.
Tables créées pour les fichiers journaux partagés
Les tables de fichiers journaux utilisées pour cette option sont SDE_LOGFILES et SDE_LOGFILE_DATA. Elles sont créées dans la structure de l'utilisateur connecté la première fois que ce dernier effectue une sélection dépassant la limite de sélection.
La table SDE_LOGFILES stocke des informations sur chaque ensemble de sélection (fichier journal) créé. Les colonnes logfile_name et logfile_id de cette table identifient de manière unique le nom du fichier journal et la colonne logfile_id relie l'enregistrement de fichier journal à la table SDE_LOGFILE_DATA. La table SDE_LOGFILE_DATA contient la colonne logfile_data_id et l'identifiant d'entité des enregistrements sélectionnés.
Tous les enregistrements sont supprimés dès que l'ensemble de sélection est effacé, afin d'empêcher la table SDE_LOGFILE_DATA de devenir trop importante. La table SDE_LOGFILES est tronquée à la fin de la session. Les deux tables SDE_LOGFILE_DATA et SDE_LOGFILES restent dans la structure de l'utilisateur.
Autorisations requises pour les fichiers journaux partagés
Les tables de fichiers journaux étant la propriété de l'utilisateur connecté, les utilisateurs doivent disposer de privilèges leur permettant de créer les objets de données requis, tels que les tables. Ceci est nécessaire même si l'utilisateur dispose d'un droit d'accès en lecture seule à la géodatabase. Si ces privilèges ne sont pas accordés, les utilisateurs reçoivent un message d'erreur la première fois qu'ils créent un ensemble de sélection dont la taille dépasse la limite applicable à cette application cliente particulière. Cependant, une fois les tables SDE_LOGFILES et SDE_LOGFILE_DATA créées pour un utilisateur, l'administrateur de géodatabase peut révoquer les privilèges.
A titre d'exemple, Ian est un urbaniste qui ne sélectionnerait dans la géodatabase que les données lui permettant d'exécuter des analyses en rapport avec son travail. Il serait donc considéré comme un utilisateur en lecture seule. Toutefois, pour pouvoir créer les tables SDE_LOGFILES et SDE_LOGFILE_DATA dans la géodatabase d'entreprise de la ville, il doit être en mesure de créer des tables dans la géodatabase.
Au lieu d'accorder à Ian l'autorisation de créer des tables définitivement, l'administrateur de géodatabase lui demande de se connecter à la géodatabase et d'effectuer une sélection qui dépasse la limite définie. L'administrateur de géodatabase révoque ensuite le privilège d'Ian de créer des tables.
Les privilèges suivants sont requis pour utiliser des tables de fichiers journaux partagés dans SQL Server :
- CONNECT
- CREATE TABLE
Contrôle du stockage facultatif des index et des tables de fichiers journaux partagés
Sous SQL Server, les paramètres suivants sont utilisés :
- LD_INDEX_ALL
- LD_STORAGE
- LF_CLUSTER_ID
- LF_CLUSTER_NAME
- LF_INDEX_ID
- LF_INDEX_NAME
- LF_STORAGE
Reportez-vous à la rubrique Paramètres de configuration de SQL Server pour plus d'informations.
Pools de fichiers journaux appartenant à l'administrateur de géodatabase
L'administrateur de géodatabase peut créer un groupe de fichiers journaux de session qui peuvent être extraits et utilisés par d'autres utilisateurs. Les fichiers journaux partagés ne peuvent pas être extraits d'un groupe de fichiers journaux.
Si vous utilisez un groupe de fichiers journaux, il n'est pas nécessaire d'accorder aux utilisateurs les autorisations requises pour créer des objets dans la base de données.
Quand utiliser des groupes de fichiers journaux
Utilisez un groupe de fichiers journaux si vous ne pouvez pas accorder aux utilisateurs le privilège de créer des tables de fichiers journaux dans leurs propres structures. Les utilisateurs doivent cependant encore disposer d'autorisations pour créer une session ou de se connecter à la base de données.
Quand ne pas utiliser de groupes de fichiers journaux
Dans l'ensemble, l'utilisation de groupes de fichiers journaux implique un peu plus de maintenance, car vous devez estimer le nombre de tables de fichiers journaux nécessaires et éventuellement ajuster la taille du groupe ou le nombre de groupes utilisés. N'oubliez pas qu'un groupe de fichiers journaux volumineux ou qu'un nombre élevé de groupes de fichiers journaux peut nuire aux performances.
Tables créées pour des groupes de fichiers journaux
Vous spécifiez le nombre de tables SDE_LOGPOOL_<ID_table> que l'outil Configurer des tables de fichiers journaux de géodatabase crée dans la structure de l'administrateur de géodatabase. Par exemple, si vous spécifiez 5 tables, les tables suivantes sont créées dans la structure de l'administrateur de géodatabase :
- SDE_LOGPOOL_1
- SDE_LOGPOOL_2
- SDE_LOGPOOL_3
- SDE_LOGPOOL_4
- SDE_LOGPOOL_5
Une table supplémentaire de la structure de l'administrateur de géodatabase, SDE_LOGFILE_POOL, enregistre le paramètre SDE_ID pour la session et un ID de table. L'identifiant <ID_table> du nom de la table SDE_LOGPOOL correspond à la valeur de la colonne table_ID de la table SDE_LOGFILE_POOL.
Chaque session requérant une table de fichiers journaux ajoute un enregistrement à la table SDE_LOGFILE_POOL et la session est attribuée à l'une des tables SDE_LOGPOOL_<ID_table>. En cas de création de fichiers journaux supplémentaires par la même session, par exemple si un second ensemble de sélection de 300 enregistrements est créé dans une session ArcMap, les nouveaux fichiers journaux (ensemble de sélection) sont ajoutés à la même table SDE_LOGPOOL.
Lorsque les fichiers journaux sont effacés, la table SDE_LOGPOOL extraite de la session est tronquée. Par exemple, si le second ensemble de sélection de la session ArcMap est effacé, les 300 enregistrements, sont supprimés de la table SDE_LOGPOOL, mais ceux du premier ensemble de sélection sont conservés. Quand le premier ensemble de sélection est effacé, ces enregistrements sont supprimés de la table SDE_LOGPOOL.
Si vous utilisez un groupe de fichiers journaux autonomes, chaque fichier journal crée un nouvel enregistrement dans la table SDE_LOGFILE_POOL et utilise l'une des tables SDE_LOGPOOL. Par exemple, si, dans une seule session ArcMap, vous avez sélectionné (1) dans une classe d'entités stockant des informations sur des entreprises (toutes celles qui sont autorisées à servir de la nourriture) et (2) dans une classe d'entités stockant des informations sur les collecteurs d'eaux pluviales (tous les bassins versants situés dans un rayon d'un kilomètre autour d'une entreprise servant de la nourriture), deux enregistrements sont ajoutés à la table SDE_LOGFILE_POOL : un pour l'ensemble de sélection d'entreprises et l'autre pour l'ensemble de sélection de bassins versants. Chaque ensemble de sélection se voit attribuer sa propre table SDE_LOGPOOL.
Lors de l'effacement d'un fichier journal (ensemble de sélection), la table SDE_LOGPOOL correspondante est tronquée.
Autorisations requises pour les groupes de fichiers journaux
Pour se servir des tables de fichiers journaux dans le pool, les utilisateurs doivent uniquement disposer de l'autorisation de se connecter à la base de données et d'utiliser les objets de la structure de l'administrateur de géodatabase. Par conséquent, la seule autorisation requise pour utiliser des groupes de tables de fichiers journaux est l'autorisation CONNECT.
Le privilège CONNECT est accordé par défaut à tous les utilisateurs ; par conséquent, il vous suffit d'accorder explicitement cette autorisation si vous l'avez révoquée de PUBLIC.
Contrôle du stockage facultatif des groupes de fichiers journaux
Seuls quelques paramètres sous le mot-clé LOGFILE_DEFAULTS de la table sde_dbtune permettent de déterminer le mode de stockage des tables SDE_LOGPOOL<ID_SDE> et de leurs index.
Dans SQL Server, les géodatabase d'entreprise utilisent les paramètres LD_STORAGE et LD_INDEX_ALL de la table SDE_dbtune pour définir le stockage des tables SDE_LOGPOOL<SDE_ID> et de leurs index. Ces deux paramètres contrôlent également le stockage de l'index et de la table SDE_LOGFILE_DATA. Reportez-vous à la rubrique Paramètres de configuration de SQL Server pour plus d'explications concernant ces paramètres.
Il n'est pas nécessaire de configurer ces paramètres pour pouvoir utiliser des groupes de tables de fichiers journaux, mais vous pouvez les définir si vous souhaitez modifier le mode de stockage des index et des tables SDE_LOGPOOL<ID_SDE> dans la base de données.