Skip To Content

Déplacer une géodatabase dans PostgreSQL vers ArcGIS Server dans AWS

Vous pouvez déplacer une géodatabase d'entreprise existante dans PostgreSQL d'un serveur local vers une instance ArcGIS Enterprise on Amazon Web Services ou d'une instance ArcGIS Enterprise on Amazon Web Services vers une autre, à l'aide d'un fichier de sauvegarde.

Pour ce faire, créez une sauvegarde de la géodatabase source, transférez le fichier de sauvegarde vers l'instance ArcGIS Enterprise on Amazon Web Services cible, créez une base de données et des rôles de connexion dans la grappe de bases de données PostgreSQL cible, et restaurez la base de données.

Rechercher des paramètres variables personnalisés

Les paramètres personnalisés dont vous disposiez dans la grappe de bases de données source et que vous souhaitez conserver, doivent être ajoutés à la nouvelle grappe de bases de données. Les paramètres de configuration sont stockés dans le fichier postgresql.conf. Effectuez une copie de ce fichier et déplacez-le vers la grappe de bases de données cible dans votre instance ArcGIS Enterprise on Amazon Web Services.

Le fichier postgresql.conf dans l'instance ArcGIS Enterprise on Amazon Web Services se trouve dans /data sur le lecteur monté.

Créer une sauvegarde de la géodatabase source

Vous pouvez créer une sauvegarde de la base de données pour transférer les fichiers de données vers une instance ArcGIS Enterprise on Amazon Web Services.

Utilisez la commande pg_dump de PostgreSQL pour créer un fichier de vidage.

  1. Connectez-vous au serveur dans lequel la géodatabase source est stockée.
  2. Exécutez la commande à l'invite de commande shell pg_dump pour créer une sauvegarde de la base de données.
    pg_dump -U postgres -F c > /data/spdbbu11012.dump

    Consultez la documentation PostgreSQL pour plus d'informations sur l'application pg_dump.

Déplacer les fichiers de sauvegarde vers une instance de destination

Il existe plusieurs façons de transférer le fichier de vidage vers l'instance cible. Reportez-vous à la rubrique Stratégies de transfert de données vers Amazon Web Services pour connaître les différentes options de déplacement des données. Vous pouvez utiliser la même méthode pour déplacer le fichier postgresql.conf file, si cela est nécessaire.

Veillez à placer le fichier de vidage sur le volume EBS (Elastic Block Store).

Une fois le fichier de vidage placé sur l'instance ArcGIS Enterprise on Amazon Web Services cible, préparez la grappe de bases de données PostgreSQL.

Préparer la grappe de bases de données PostgreSQL cible

Vous devez posséder une base de données vers laquelle restaurer le fichier de vidage. En outre, les rôles de connexion qui possèdent des données dans la base de données source doivent être présents dans la grappe de bases de données cible.

Placer le fichier de configuration

Si vous utilisez un fichier postgresql.conf personnalisé, effectuez une copie de sauvegarde du fichier postgresql.conf par défaut sur l'instance cible et placez le fichier personnalisé dans /data sur le lecteur monté.

Créer une base de données vide

La base de données que vous créez doit porter le même nom que la base de données qui se trouve dans la grappe de bases de données PostgreSQL source pour laquelle vous avez créé un fichier de vidage. Les noms de base de données doivent êtres uniques au sein d'une grappe de bases de données. Cela signifie que si vous déplacez des bases de données d'une instance ArcGIS Enterprise on Amazon Web Services à une autre, une des conditions suivantes doit être remplie :

  • Votre base de données source ne peut pas être l'une des bases de données par défaut (egdb ou geodata).

    ou

  • Vous devez supprimer la base de données par défaut qui porte le même nom de la grappe de bases de données PostgreSQL cible avant de pouvoir restaurer le fichier de sauvegarde transféré.
  1. Connectez-vous à l'instance ArcGIS Enterprise on Amazon Web Services cible en tant qu'utilisateur racine.
  2. Ouvrez une commande shell et connectez-vous à psql en tant qu'utilisateur sde.
  3. Créez une base de données dans laquelle restaurer le fichier de vidage.

    Gardez les informations suivantes à l'esprit :

    • Le nom, le propriétaire et le codage de la base de données cible doivent être identiques à ceux de la base de données source.
    • Si vous avez utilisé un modèle de base de données autre que celui par défaut pour la base de données source, par exemple le modèle de base de données PostGIS, utilisez ce modèle pour la base de données cible.
    • Vous pouvez stocker la nouvelle base de données dans un espace de noms existant ou créer un espace de noms spécifiquement pour cette base de données. Si vous souhaitez utiliser un nouvel espace de noms, vous devez le créer avant de créer la base de données.

    CREATE DATABASE <dbname>
      WITH OWNER = sde
           TEMPLATE = template0
           ENCODING = '<encoding of db>'
           TABLESPACE = 
           LC_COLLATE = ''
           LC_CTYPE = ''
           CONNECTION LIMIT = -1;

Créer des rôles de connexion et de groupe

La grappe de bases de données cible doit contenir les rôles de connexion de chaque utilisateur qui possède des données dans la base de données source.

Si vous déplacez une base de données d'une instance ArcGIS Enterprise on Amazon Web Services vers une autre et que vous utilisez les rôles de connexion par défaut, vous n'avez pas besoin de créer de nouveaux rôles dans la grappe de bases de données cible. Toutefois, si les données dans la base de données source sont la propriété de rôles de connexion autres que ceux par défaut, vous devez créer des rôles de connexion portant les mêmes noms dans la grappe de bases de données PostgreSQL cible. De même, si vous voulez utiliser des connexions de groupe dans la base de données cible, vous devez les recréer et leur accorder des rôles de connexion.

Consultez la documentation PostgreSQL pour savoir comment créer des rôles de groupe et de connexion et comment ajouter des connexions à des groupes.

Restaurer une base de données

Utilisez la commande pg_restore pour restaurer la base de données.

Attention :

Vous devez exécuter deux fois la commande pg_restore : une fois pour restaurer le contenu de la structure publique, qui contient la table système sde_spatial_references, et une deuxième fois pour restaurer le reste des données. Si vous n'effectuez pas ces opérations, aucune donnée spatiale ne sera restaurée.

  1. Connectez-vous à l'instance ArcGIS Enterprise on Amazon Web Services de destination (celle vers laquelle vous avez déplacé le fichier de vidage).
  2. Ouvrez une commande shell et connectez-vous à psql en tant qu'utilisateur sde.
  3. Exécutez la commande pg_restore à l'invite de commande shell pour restaurer la structure publique de la base de données.

    L'utilisateur sde doit être un super-utilisateur dans PostgreSQL pour exécuter la commande pg_restore.

    pg_restore -U sde -n public -d spdb /data/spdbbu11012.dump
    Password:
  4. Exécutez la commande pg_restore une deuxième fois pour restaurer l'intégralité de la base de données.
    pg_restore -U sde -d spdb /data/spdbbu11012.dump
    Password:

    Consultez la documentation PostgreSQL pour plus d'informations sur la modification de l'application pg_restore.

Une fois la base de données restaurée dans la grappe de bases de données PostgreSQL cible, assurez-vous que les structures et les tables attendues sont bien présentes dans la nouvelle base de données. Pour ce faire, interrogez les vues du catalogue PostgreSQL qui renferment ces informations. Par exemple, vous pouvez interroger la vue du catalogue pg_tables pour voir toutes les tables dans la base de données, ainsi que la structure dans laquelle elles sont stockées.

Définir des variables de base de données

Vous allez maintenant utiliser les informations sur les variables de base de données personnalisées que vous avez recueillies précédemment afin de définir des variables sur la nouvelle base de données.

Cette procédure vous indique comment ajouter et définir la variable search_path. Les mêmes étapes de base permettent de définir des valeurs personnalisées pour d'autres variables de base de données.

  1. Connectez-vous à la nouvelle base de données depuis psql en tant qu'utilisateur sde.
  2. A l'invite psql, définissez le chemin de recherche pour que la base de données intègre la structure sde.

    SET search_path TO "$user",public,sde;

Rubriques connexes