Synchroniser une Azure SQL Database avec une base de données locale

Synchroniser une Azure SQL Database avec une base de données locale
Partager

Dans cet article, nous allons découvrir comment synchroniser une Azure SQL Database avec une base de données locale. Vous allez aussi savoir comment créer une base de données Azure.

La base de données locale

Tout d’abord on va jeter un coup d’œil sur la base de données locale. On a créer la base de données « TO_SYNC_LOCAL » sur une instance SQL EXPRESS sur notre machine locale. Cette contient une seule table pour l’exemple « dbo.Table_1 » avec deux colonnes comme illustré ci-dessous :

local data base

Créer une Azure SQL Database

Sur votre portail Azure, créez une nouvelle ressource SQL Database.

azure sql data base

Puis saisissez les informations de votre nouvelle base de données comme suite :

create sql database

Entrez un nom de votre base de données. Ensuite si vous n’avez pas déjà un serveur de base de données sur Azure vous pouvez en créer un nouveau pour héberger votre nouvelle base de données.

Cliquez sur « Créer un nouveau serveur ».

Ici, y a pas de magie. Même sur Azure on a besoin d’un serveur pour héberger et faire tourner notre base de données.

create azure sql server

A droite de l’écran une nouvelle fenêtre s’affiche. On est invité à saisir les informations du nouveau serveur.

  • Nom du serveur : Nom de votre serveur de base de données, doit être unique.
  • Utilisateur Admin : définissez un administrateur pour votre serveur.
  • Mot de passe : mot de passe, fort bien sûr. N’oubliez que votre instance est publique à ce niveau.
  • Location : la région où votre serveur sera hébergé.

Si votre base de données contiendra des données personnelles de vos clients français, le serveur doit obligatoirement être localisé en Europe. Loi RGPD.

A la fin configurez la taille de votre serveur suivant votre besoin. Ici par exemple 2Go de stockage est estimée à environ 5$.

configure azure sql server

Créer un groupe de Synchronisation Azure

Afin d’initier la synchronisation des base de données, faut créer un groupe de synchronisation. Pour faire sur la base de données cliquez sur « Synchroniser avec une autre base de données » , puis « Nouveau groupe de synchronisation ».

create sync group
create data sync group
  • Donner un nom au groupe.
  • Choisir la base de données Azure à synchroniser.
  • Sync Automatique: désigne si vous voulez automatiser ou pas la synchronisation, vous pouvez ainsi planifier la synchronisation selon une fréquence définie.
  • Résolution de conflit: spécifie en cas de conflit (modification en même temps sur la base source (base locale) et la base destination (la base Azure), la quelles des deux modifications doit-on appliquée. La valeur « Hub win » désigne que c’est les modifications de la base de données Azure qui seront appliquées. Avec la valeur « Member win » c’est la base locale qui sera prime, c’est cette valeur qu’on choisir pour notre cas.
  • Validez, puis cliquez sur le groupe de synchronisation créé.
new sync group

Ajouter une base de données locale pour la synchronisation Azure

Dans la fenêtre de groupe de synchronisation, cliquez sur « Base de données ».

add on premises database

A ce moment une fenêtre s’affiche vous invitant à sélectionner la base de données membre : base à synchroniser.

Choisir « Ajouter une base de données locale ».

add on premises database

Pour pouvoir accéder à votre base de données locale, vous devez créer l’agent de synchronisation. Il s’agit de télécharger et installer sur votre machine un agent permettant de jouer le rôle d’un proxy afin de permettre la communication entre Azure et votre base de données locale.

Cliquez sur « Choisir l’agent de synchronisation ».

agent data sync
agent data sync
  1. Télécharger l’agent de synchronisation ici.
  2. Donnez un nom à votre agent.
  3. Cliquer le bouton « Générer une clé« , gardez là, on aura besoin juste après.
install data sync agent

Commencez par installer l’agent sur votre machine après téléchargement.

install data sync agent

Saisissez un compte dotant des droits d’exécuter l’agent dans les services Windows.

install data sync agent
install data sync agent

Une fois installé, lancer l’agent depuis le menu « Démarrer ».

register agent

Cliquez sur le bouton « Submit Agent Key Configuration » afin d’enregistrer l’agent de synchronisation Azure.

register agent

La fenêtre vous invite à saisir la clé généré lors de la création de l’agent sur le portail Azure.

Puis saisir le login et le mot de passe associé à votre serveur de base de données créé plus loin.

Cliquez sur « Test Connection » afin de s’assurer que vous êtes bien connecté à votre serveur.

acces to Azure SQL Server

Si c’est la première fois que vous administrez une base de données Azure vous aurez surement ce joli message d’erreur.

Afin d’accéder à un serveur SQL sur Azure il faut autoriser l’adresse IP de la machine demandant la connexion. D’où le message d’erreur ci-dessus.

Autoriser l’accès à un serveur SQL sur Azure

Sur le portail Azure, allez sur votre serveur SQL.

access Azure SQL Server

Puis cliquez sur le menu « Firewalls and virtual networks » :

  • Autoriser les ressources Azure à se connecter à votre serveur SQL en mettant le bouton concerné à OUI « Yes »
  • Ajouter votre IP, si il s’agit d’une seule adresse IP, mettez la même IP dans les deux zones de texte « Start IP » et « End IP ».
  • Sauvegardez.
authorize azure SQL Server

Revenir sur l’agent installé sur votre machine et tester la connexion, cette fois-ci ça marche.

Sync metadata database

Puis cliquez sur « Register » afin d’inscrire votre base de données locale.

register database

Saisissez les information de connexion à votre base de données locale, puis testez la connexion pour s’assurer que l’agent se connecte bien à votre base locale, enfin sauvegarder.

Vous devez voir votre base de données locale listée dans l’agent avec le statut accessible « Reachable ».

agent statut

Retourner sur le menu de la synchronisation de la base de données SQL, l’agent devrait apparaitre en ligne comme ci-dessous.

Data sync agent list

Continuez votre configuration de la base locale sur le portail Azure en sélectionnant le nom de l’agent de synchronisation.

Ensuite, sélectionnez la base de données locale associée à l’agent de vous avez créé.

Select database

Saisissez un nom pour présenter votre base de données locale. Puis sélectionner votre base données locale liée à l’agent.

select database

Le « Sync Directions » ou direction de la synchronisation, à choisir entre deux valeur :

  • To the Hub : Cela veut dire que la synchronisation est de votre base locale vers la base Azure.
  • To the Member : la synchronisation est de la base Azure vers la base locale.

Puis validez.

Select member database

Sur le groupe de synchronisation vous devez voir deux bases de données connectées.

Select sync member

Synchroniser les tables Azure avec les tables locales

table sync

Afin de synchroniser les tables, cliquez sur « Tables », puis sélectionnez la base de données locale. La liste des tables dont l’utilisateur utilisé a accès s’affiche, vous pouvez choisir les tables de vous voulez synchroniser.

Dans la même table vous pouvez choisir aussi les colonnes à synchroniser.

Une fois votre schéma de synchronisation validé, Azure DataSync va créer quelques objets dans les deux base de données source et cible. Ces objets vont servir à gérer la synchronisation entre les différentes tables.

Faut noter que tables doivent disposer d’une clé primaire avoir de pouvoir les synchroniser.

table sync

A ce niveau vous pouvez lancer la synchronisation manuellement en cliquant sur « Sync »

sync database

A noter aussi que dans un groupe de synchronisation Azure Data Sync ne peux synchroniser que 500 tables.


Partager

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *