Options des tables de fichiers journaux pour les géodatabases dans Db2

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 :

  • Vous (ou un outil ou un autre traitement que vous exécutez) créez un ensemble de sélection d’une taille donnée : plus de 100 enregistrements dans ArcMap, plus de 1 000 enregistrements dans ArcGIS Pro et plus de 1 000 enregistrements lorsque les identifiants d’objets sont demandés par un service d’entités.
  • Vous effectuez une réconciliation ou une réinjection dans une géodatabase versionnée.

Les tables de fichiers journaux stockent les identifiants des entités sélectionnées pour qu'ils puissent être réaffichés. Cela permet une analyse et un traitement plus rapides des informations.

Lorsque vous lancez une requête sur des enregistrements directement à partir de la base de données dans ArcGIS Pro 2.8, des fichiers journaux sont écrits dans des tables temporaires globales.

Lorsque vous lancez une requête sur des enregistrements via un service d’entités ou depuis ArcMap, vous disposez de trois options relatives aux fichiers journaux : fichiers journaux partagés, fichiers journaux de session et pools de fichiers journaux de session. Chacune est décrite dans sa propre section dans cette rubrique.

Les géodatabases dans IBM Db2 utilisent des tables de fichiers journaux par défaut, mais vous pouvez modifier les paramètres des tables de fichiers journaux à l’aide de l’outil de géotraitement Configurer les tables de fichiers journaux de la 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 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 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 base de données 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 base de données lui accorde le privilège de manière temporaire, lui demande de se connecter à la géodatabase et d’effectuer une sélection qui dépasse la limite définie. L’administrateur de base de données révoque ensuite le privilège d’Ian de créer des tables.

Les autorisations suivantes sont requises pour utiliser les tables de fichiers journaux partagés dans Db2 :

  • CONNECT
  • CREATETAB
  • IMPLICIT_SCHEMA
Remarque :

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 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.

Pour Db2, les paramètres suivants contrôlent le stockage des index et des tables de fichiers journaux partagés :

  • LD_INDEX_DATA_ID
  • LD_INDEX_ROW_ID
  • LD _STORAGE
  • LF_INDEXES
  • LF_STORAGE

Pour en savoir plus sur ces paramètres, reportez-vous à la rubrique Paramètres de configuration Db2.

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 requises pour les 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 doivent disposer des autorisations suivantes pour utiliser des tables de fichiers journaux de session dans Db2 :

  • CONNECT
  • CREATETAB
  • IMPLICIT_SCHEMA

Contrôle du stockage facultatif des index et des tables de fichiers journaux de session

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 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.

Pour Db2, les paramètres suivants contrôlent le stockage des index et des tables de fichiers journaux de session :

  • LD_INDEX_DATA_ID
  • LD_INDEX_ROW_ID
  • LD_STORAGE
  • LF_INDEXES
  • LF_STORAGE
  • SESSION_INDEX
  • SESSION_STORAGE

Pour en savoir plus sur ces paramètres, reportez-vous à la rubrique Paramètres de configuration Db2.

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_<table_ID> 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>. Si vous créez des fichiers journaux supplémentaires lors de la même session, par exemple si un deuxième 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 deuxième 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 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.

Remarque :

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 permettent de déterminer le mode de stockage des tables SDE_LOGPOOL<ID_SDE> et de leurs index.

Dans les géodatabases dans Db2, les paramètres LD_STORAGE, LD_INDEX_ROWID et LD_INDEX_DATA_ID DBTUNE permettent de définir le stockage des tables SDE_LOGPOOL<SDE_ID> et de leurs index. Ces trois paramètres contrôlent également le stockage des index et de la table SDE_LOGFILE_DATA. Pour en savoir plus sur ces paramètres, reportez-vous à la rubrique Paramètres de configuration Db2.

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.