Accéder au contenu principal

SQL Server : Migration de base de données d'un serveur vers un autre

 Dans de nombreuses situations, on peut vouloir transférer une ou des bases d'un moteur SQL Server vers un second :

Donc dans tous ces cas, nous devons absolument faire attention à plusieurs choses, je vais essayer de vous lister les différentes étapes dans ce message.


1- Shrinker les bases d'origine sur le serveur

Ca se fait directement depuis Enterprise manager :

  • Bouton droit sur le nom de la base
  • All Tasks
  • Shrink Database

2 - Faire un backup complet des bases à migrer

3 - Sauvegarder les logins SQL qui sont utilisés par les applications sur ces bases de données

Cette tache peut se faire avec via un Script fourni par Microsoft "sp_help_revlogin" :

Ceci vous créer sur la base master 2 procédures stockées

  • sp_help_revlogin
  • sp_hexadecimal

Vous pouvez alors exécuter la première selon 2 methodes :

  • EXEC sp_help_revlogin : sans paramètre permet de lister tous les logins SQL et leurs mots de passe du moteur SQL
  • EXEC sp_help_revlogin 'nomLogin' :avec le nom du login permet d'obtenir ce login avec son mot de passe

Le résultat est de la forme d'un script de création de compte SQL :

/* sp_help_revlogin script 
** Generated Nov 21 2006 11:32AM on MONSERVEURORIGINE */
 
DECLARE @pwd sysname
  
-- Login: EGS
SET @pwd = CONVERT (varbinary(256), 0x01004D2482641C0F845FC16D9A9BB8A7CF4BDE386972688094361798BD418595A7DC6EFCC4E56E5E3767D8656675)
EXEC master..sp_addlogin 'Monlogin', @pwd, @sid = 0x546CAC2645B8E0438EF6810F7CB3DAC4, @encryptopt = 'skip_encryption'


On peut alors simplement l'exécuter sur le nouveau serveur.

4 - Créer les login avec le script résultat sur le serveur cible

5 - Créer les bases vides sur le serveur cible

Attention : il faut bien vérifier la casse que l'on applique sur cette nouvelle base qui doit être la même que le serveur d'origine, ainsi que le mode de journalisation (simple ou full)

6 - Ajouter ces nouvelles bases dans les processus de maintenance (Plan de sauvegarde, d'optimisation, ...)

7 - Charger sur le nouveau serveur le backup effectué sur le serveur d'origine

8 - Modification des chaines de connexion pour les applications des utilisateurs.

9 - Valider que tout est OK quand à la migration

10 - Mettre les bases en Offline sur le serveur d'origine pendant le temps de validation de cette migration (environ quelques jours)

11 - Supprimer les bases du serveur d'origine


Je pense avoir listé tous les points à respecter, si certains manquent, n'hésitez pas à le signaler en commentaire.

 

Romelard Fabrice [MVP]

Commentaires

Posts les plus consultés de ce blog

Série de Videos sur Home Assistant intégrant la production Photovoltaïque

 Un certain nombre de vidéos sont en ligne pour intégrer sa production photovoltaïque dans Home Assistant en partant de la base. Installation de Home Assistant: On peut ensuite intégrer les composant des Micro-Onduleurs Enphase, mais aussi les batteries Enphase: Ou encore le composant de contrôle Ecojoko: Ce qui permet alors de faire des comparaisons entre les valeurs capturées: Des videos seront encore publiés dans les prochaines semaines sur différents aspects de cette solution. Fab

Nouveau Scripts PowerShell publiés pour gérer les Storage Accounts dans Azure Cloud

Deux scripts sont en lignes pour nettoyer des Storage Account dans Azure Cloud: Supprimer les Blobs d'un container existant https://techcommunity.microsoft.com/discussions/azure/powershell-script-to-remove-all-blobs-from-storage-account/4357815 ------------------------------------------------------- [string]$myConnectionString = "DefaultEndpointsProtocol=https;AccountName=YourStorageAccountName;AccountKey=YourKeyFromStorageAccountConnectionString;EndpointSuffix=core.windows.net" [string]$ContainerName = "YourBlobContainerName" [int]$blobCountAfter = 0 [int]$blobCountBefore = 0 $context = New-AzStorageContext -ConnectionString $myConnectionString $blobCountBefore = (Get-AzStorageBlob -Container $ContainerName -Context $context).Count Write-Host "Total number of blobs in the container Before deletion: $blobCount" -ForegroundColor Yellow Get-AzStorageBlob -Container $ContainerName -Context $context | ForEach-Object {     $_ | Remove-AzureStorageBlob   # o...

Série de vidéos sur le montage d'une serre horticole ACD

 Episode 1: Préparation du terrain Episode 2: Montage de la serre en elle même Episode 3: Finalisation avec le montage électrique alimentant la serre Bon visionnage Fab