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é.
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 PostgreSQL, les géodatabases utilisent des tables de fichiers journaux partagés, mais vous pouvez modifier les paramètres des tables de fichiers journaux à l'aide de l'outil de géotraitement Configurer des tables de fichiers journaux de géodatabase.
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
Utilisez des fichiers journaux partagés si chaque client ou chaque utilisateur se connecte avec un compte utilisateur de base de données différent.
Quand ne pas utiliser de fichiers journaux partagés
Vous avez la possibilité de ne pas utiliser de fichiers journaux partagés si plusieurs connexions sont établies avec le même nom d'utilisateur, par exemple, si vous publiez des services d'entités dans ArcGIS Server générant plusieurs connexions avec le même nom d'utilisateur. Si plusieurs utilisateurs comptent exécuter des requêtes attributaires sur le même service d'entités, cela peut entraîner des conflits et des temps d'attente rallongés pour la table SDE_LOGFILE_DATA. Dans ces cas, vous pouvez utiliser des fichiers journaux de session.
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 d'utilisation de fichiers journaux partagés
Puisque les tables de fichiers journaux appartiennent à l'utilisateur connecté, ce dernier doit posséder une structure dans laquelle il peut créer des tables. Dans des géodatabases, le nom de l'utilisateur et celui de la structure doivent être identiques. Si l'utilisateur ne possède pas de structure correspondante dans laquelle il peut créer des tables, un message d'erreur est généré lorsqu'il effectue une opération nécessitant des tables de fichiers journaux, telle que l'ouverture d'une session de mise à jour ou la création d'un jeu de sélection dont la taille dépasse le seuil défini pour cette application cliente.
Les autorisations suivantes sont requises pour utiliser des tables de fichiers journaux partagés dans PostgreSQL :
- CONNECT
- USAGE sur la propre structure de l'utilisateur
- CREATE sur la propre structure de l'utilisateur
L'octroi du privilège AUTHORIZATION sur la structure entraîne automatiquement celui des privilèges USAGE et CREATE. Cependant, si vous ne voulez pas permettre aux utilisateurs de créer des tables, vous ne pouvez pas leur accorder le privilège AUTHORIZATION. Accordez plutôt à chaque utilisateur des autorisations USAGE et CREATE sur leurs structures pour que vous puissiez retirer les autorisations CREATE une fois les tables de fichiers journaux partagés créées. Le privilège USAGE doit être conservé afin de permettre aux utilisateurs d'écrire ultérieurement dans les tables de fichiers journaux.
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 qu'Ian puisse créer les tables SDE_LOGFILES et SDE_LOGFILE_DATA nécessaires au stockage de jeux de sélection, il doit disposer de privilèges sur sa propre structure.
Plutôt que d'accorder à Ian des autorisations lui permettant de créer autant de tables qu'il le souhaite, l'utilisateur sde crée une structure pour Ian auquel il accorde temporairement les privilèges CREATE et USAGE sur cette structure. L'utilisateur sde demande alors à Ian de se connecter à la géodatabase à partir d'ArcMap et de sélectionner au moins 101 entités. Les tables requises sont ainsi créées dans la structure. Une fois les tables créées, l'utilisateur sde retire le privilège CREATE qu'Ian ne peut plus utiliser.
Contrôle du stockage facultatif des index et des tables de fichiers journaux partagés
Il existe plusieurs paramètres sous le mot-clé LOGFILE_DEFAULTS de la table DBTUNE qui permettent de contrôler 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 partagés, mais vous pouvez les définir si vous souhaitez modifier le mode de stockage des index et des tables SDE_LOGFILES et SDE_LOGFILE_DATA dans la base de données.
Sous PostgreSQL, les paramètres suivants sont utilisés :
- LD_INDEX_ALL
- LD_STORAGE
- LF_INDEX_ID
- LF_INDEX_NAME
- LF_STORAGE
Reportez-vous à la rubrique Paramètres de configuration dans PostgreSQL pour plus d'informations.
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
Vous pouvez utiliser des fichiers journaux de session si plusieurs connexions sont effectuées simultanément à la géodatabase avec le même nom d'utilisateur. Par exemple, vous pouvez les utiliser si plusieurs services font référence aux données de votre géodatabase.
Pour ne pas utiliser de fichiers journaux de session
Si des utilisateurs en lecture seule sont connectés à la base de données, vous ne pouvez pas utiliser de fichiers journaux de session.
La table de session est supprimée de la structure de l'utilisateur lorsque la session est terminée. Elle doit donc être créée de nouveau, si nécessaire. Par conséquent, les utilisateurs doivent disposer des autorisations nécessaires pour créer des tables, afin de pouvoir utiliser des tables de fichiers journaux de session.
Création de tables pour des fichiers journaux de session
Trois tables sont créées : SDE_LOGFILES, SDE_LOGFILE_DATA et SDE_SESSION<ID_SDE>. 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.
Autorisations d'utilisation des fichiers journaux de session
Les fichiers journaux basés sur session sont possédés par l'utilisateur qui a démarré la session de connexion. Cela signifie que les utilisateurs doivent disposer de droits de création des objets de base de données nécessaires.
Tous les utilisateurs ont besoin des autorisations suivantes pour utiliser des fichiers journaux de session dans PostgreSQL :
- CONNECT
- AUTHORIZATION sur la structure d'un utilisateur (qui entraîne automatiquement l'octroi des privilèges USAGE et CREATE)
Contrôle du stockage facultatif 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 PostgreSQL, les paramètres suivants sont utilisés :
- LD_INDEX_ALL
- LD_STORAGE
- LF_INDEX_ID
- LF_INDEX_NAME
- LF_STORAGE
- SESSION_INDEX
- SESSION_STORAGE
Reportez-vous à la rubrique Paramètres de configuration dans PostgreSQL pour obtenir des explications sur ces paramètres.
Groupes de fichiers journaux appartenant à l'utilisateur sde
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'utilisateur sde. Par exemple, si vous spécifiez 5 tables, les tables suivantes sont créées dans la structure sde :
- SDE_LOGPOOL_1
- SDE_LOGPOOL_2
- SDE_LOGPOOL_3
- SDE_LOGPOOL_4
- SDE_LOGPOOL_5
Une table supplémentaire de la structure sde, 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.
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 utiliser les tables de fichiers journaux d'un groupe, les utilisateurs doivent uniquement pouvoir se connecter à la base de données et utiliser les objets de la structure de l'utilisateur sde. Les autorisations suivantes sont requises :
- CONNECT
- USAGE sur la propre structure de l'utilisateur
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 PostgreSQL, les géodatabases 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 dans PostgreSQL pour obtenir des explications sur 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.