Cloner une base de données Azure SQL Database
J’ai récemment eu à cloner une base de données SQL Database et je me suis dit que ce serait un bon sujet pour un article. Alors, voilà ! 😊
Pourquoi cloner une base de données ?
Dans le cadre d’une évolution d’une application, je devais ajouter une colonne à une table existante de la BD. Je voulais donc avoir une BD de développement sur laquelle travailler et tester mes scripts.
Étant donné que la BD de PROD ne contenait pas d’information sensible, j’ai opté pour le clonage de cette dernière et d’utiliser ce clone en tant que BD de développement.
Grâce à Azure, cette opération est super simple et rapide.
Voyons voir comment.
Clonage via le portail d’Azure
C’est assez simple de le faire via le portail :
Il est à noter que le pricing tier des BD source et destination peuvent être différents, ce qui peut s’avérer utile car en développement on n’a pas forcément besoin d’une instance aussi performante qu’en PROD.
Clonage via PowerShell
Il est tout aussi possible d’atteindre le même objectif avec PowerShell, comme ceci :
https://gist.github.com/BelRarr/22bff0427670641c0792e6d896864dc8
Bien évidemment, les resources groups source et destination peuvent être le même, de même que les serveurs source et destination. Ce qui signifie qu’on peut cloner la BD sur le même serveur.
Rôles RBAC requis
Afin d’effectuer cette opération, il faut avoir l’un des rôles suivants :
- Propriétaire (owner) de la souscription Azure
- Contributor au niveau de la souscription
- SQL Server Contributor
- Un rôle personnalisé avec les permissions suivantes :
- Sql/servers/databases/read
- Sql/servers/databases/write
En conclusion…
Le clonage de BD est une fonctionnalité fort pratique, qui te permet de rapidement avoir une copie de la BD d’un environnement vers un autre.
Cette fonctionnalité est tout aussi utile si on souhaite déplacer une BD d’un serveur vers un autre tout en gardant la BD source en place jusqu’à ce que la migration soit complétée ou en guise de backup si quelque chose ne fonctionne pas comme prévu.
À la prochaine !