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, les agrégats de bases de données PostgreSQL source et cible doivent tous les deux être compatibles pour le transfert des bases de données avec un fichier pg_dump. Consultez la documentation PostgreSQL pour voir si les versions que vous utilisez sont compatibles.
Si vos versions PostgreSQL sont compatibles, 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 l’agrégat de bases de données PostgreSQL cible, et restaurez la base de données.
Remarque :
Ce processus ne s'applique pas à Amazon Relational Database Services for PostgreSQL.
Rechercher des paramètres variables personnalisés
Les paramètres personnalisés dont vous disposiez dans l’agrégat de bases de données source et que vous souhaitez conserver, doivent être ajoutés au nouvel agrégat de bases de données. Les paramètres de configuration sont stockés dans le fichier postgresql.conf. Make a copy of this file and move it to the target database cluster on your ArcGIS Enterprise on Amazon Web Services instance.
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
You can create a backup of the database to transfer the data files to an ArcGIS Enterprise on Amazon Web Services instance.
Utilisez la commande pg_dumpde PostgreSQL pour créer un fichier de vidage.
- Connectez-vous au serveur dans lequel la géodatabase source est stockée.
- Exécutez la commande pg_dump à l’invite de commande shell 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 la commande 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, si cela est nécessaire.
Veillez à placer le fichier de vidage sur le volume EBS (Elastic Block Store).
Once the dump file is on the target ArcGIS Enterprise on Amazon Web Services instance, prepare the PostgreSQL database cluster.
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 l’agrégat 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’un agrégat 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 doit pas porter le même nom que la base de données située dans l’agrégat de bases de données de destination.
or
- Vous devez supprimer la base de données qui porte le même nom de l’agrégat de bases de données PostgreSQL cible avant de restaurer le fichier de sauvegarde transféré.
- Connectez-vous à l’instance EC2 cible en tant qu’utilisateur racine.
- Ouvrez une commande shell et connectez-vous à psql en tant qu'utilisateur sde.
- 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 l’agrégat 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 l’agrégat 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 PostgreSQL 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.
- Connect to the destination ArcGIS Enterprise on Amazon Web Services instance (the one to which you moved the dump file).
- Ouvrez une commande shell et connectez-vous à psql en tant qu'utilisateur sde.
- Exécutez la commande pg_restore à l’invite de commande shell pour restaurer la structure publique dans 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:
- 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 commande pg_restore.
Une fois la base de données restaurée dans l’agrégat 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.
- Connectez-vous à la nouvelle base de données depuis psql en tant qu'utilisateur sde.
- 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
Vous avez un commentaire à formuler concernant cette rubrique ?