Serveur d'impression

Comment déplacer des fichiers de base de données SQL Server vers un nouvel emplacement – MlakarTechTalk – Bien choisir son serveur d impression

Le 2 mai 2019 - 24 minutes de lecture

Avez-vous déjà eu à déplacer des bases de données et leurs fichiers? Une migration de base de données implique des temps d'arrêt et les erreurs commises peuvent certainement gâcher votre journée. Vous ne voulez pas être en pleine migration et ne pas savoir quoi faire.

Poursuivez votre lecture pour apprendre à déplacer des fichiers de base de données SQL Server et à visionner des démos.

Pourquoi aurions-nous besoin / envie de déplacer des fichiers de base de données? Il existe certains scénarios dans lesquels une migration est effectuée.

  • Le disque est à court d'espace
    • Parfois, lorsqu'un administrateur dort au travail, les disques pleins passent inaperçus jusqu'à ce qu'il soit trop tard.
    • Dans ces cas, certaines bases de données peuvent être déplacées vers un autre disque, volume, point de montage, etc.
  • Déménagement dans un nouvel entrepôt
    • Un nouvel espace de stockage pour la base de données arrive et nous devons déplacer certaines (ou toutes les) bases de données doivent être déplacées.
  • Séparer les fichiers de base de données
    • Suivre les meilleures pratiques pour séparer les fichiers de base de données – fichier de données (mdf), journal des transactions (ldf), tempdb, sauvegardes, fichiers de trace, etc.
    • J'ai écrit à ce sujet ici et plus précisément ici dans la section intitulée «Configuration du disque».

La base de données sera indisponible pendant cette opération, nous devons donc en informer nos utilisateurs finaux. Prenez en compte les ramifications si une application utilise la base de données. Nous voudrons peut-être arrêter les services d'application ou entreprendre une autre action personnalisée lors du déplacement.

Planifiez à l'avance avant de commencer le travail. Sachez ce que vous allez faire avant de le faire. Si vous pouvez tester votre méthode sur une base de données de laboratoire ou de développement, cela vous aidera également.

Oiseaux migrateurs

Une fois que nous avons le plan de match, nous pouvons commencer à le mettre en œuvre. Regardons quelques détails.

Migration – Manières générales de déplacer des fichiers de base de données

Il existe quelques méthodes que nous pouvons employer pour faire ce travail:

  1. Détacher la base de données / Déplacer les fichiers / Attacher la base de données
  2. Définir la base de données hors connexion / Déplacer les fichiers / Modifier la base de données Modifier le fichier / Définir en ligne
  3. Sauvegarde / restauration ailleurs

Voici quelques bases de connaissances Microsoft pour vous aider tout au long du processus.

  1. Joindre une base de données – explique CREATE DATABASE FOR ATTACH
  2. sp_attach_db – obsolète! Veuillez utiliser la méthode ci-dessus pour attacher
  3. Créer une base de données – plus d'informations sur la clause FOR ATTACH
  4. Déplacer les bases de données utilisateur – met en évidence ALTER DATABASE MODIFY FILE
  5. sp_detach_db – mises en garde concernant le détachement

Regardons en profondeur dans chaque sens.

Méthode 1: détacher la base de données / déplacer des fichiers / créer une base de données pour l'attachement

Nous créons quelques bases de données pour le tester.

Vérifier les informations du fichier de base de données.

Il ressemblera à ceci:

Informations sur le fichier de base de données pour les bases de données que nous allons déplacer

Maintenant, nous faisons certaines choses préliminaires avant de déplacer des fichiers. Nous devons spécifier les bases de données que nous voulons déplacer. C'est une façon très simpliste de le faire – codé en dur dans une table temporaire.

Sortie de #DBFiles

Les bases de données avant de se détacher

Maintenant que nous avons ce dont nous avons besoin, nous pouvons commencer à détacher les bases de données.

Vérifiez les modifications. Notez que les DB sont totalement partis. Vous ne les trouverez pas dans l'explorateur d'objets dans SSMS ou dans les tables système.

Vient maintenant le moment de déplacer les fichiers de base de données. Vous pouvez utiliser votre technique préférée pour déplacer des fichiers. J'aime utiliser robocopy dans un fichier .bat, mais il en existe beaucoup d'autres, tels que PowerShell, XCopy ou un clic droit pour couper / coller.

Voici quelques actions de robocopy:

Le drapeau “/ L” est la première façon dont je gère les choses. En réalité, il ne copie rien, mais listera les fichiers. C'est une bonne pré-vérification avant d'exécuter un lot. Supprimez simplement le drapeau “/ L” et exécutez-le une fois vérifié.

Voici la première partie de la sortie de l’exécution d’un fichier .bat avec des instructions robocopy:

robocopier les fichiers

Une fois que les fichiers sont physiquement déplacés vers le nouvel emplacement, nous pouvons continuer.

Vérifiez les nouveaux emplacements de fichiers.

Nouveaux emplacements de fichiers

Auparavant, nos fichiers pointaient vers C: mais sont maintenant sur G: – la migration est terminée.

Méthode 2: Définir la base de données hors connexion / déplacer des fichiers / modifier la base de données / définir en ligne

Continuons dans ce sens, déplaçons les 3 exemples de bases de données que nous avons créées et que nous venons de revenir des disques G: à C:. Ici, nous commençons par définir nos bases de données et en définissant un nouveau chemin.

Voici le résultat de #DBFiles:

Voici le résultat de #DBFiles

Maintenant, au lieu de vous détacher comme dans l'exemple précédent, plaçons simplement les bases de données hors ligne.

Les bases de données sont toujours présentes mais sont hors ligne. Ils ne peuvent pas être lus ou écrits.

Les bases de données sont maintenant hors ligne

Après avoir défini les bases de données hors ligne, déplacez les fichiers de données vers leur nouvel emplacement.

Enfin, nous modifions les bases de données pour modifier leurs fichiers, nous les pointons vers le nouvel emplacement, puis nous remettons les bases de données en ligne.

Voici le résultat de la vérification ci-dessus. Il montre les fichiers de base de données dans un nouvel emplacement et en ligne.

Les DBs en ligne

Méthode 3: Sauvegarder / détacher et supprimer / restaurer ailleurs

La sauvegarde sera comme toutes les autres.

Bases de données de sauvegarde

À ce stade, nous sommes libres de détacher les bases de données et de disposer des fichiers de base de données. Il serait peut-être bon de conserver les fichiers jusqu'à ce que nous ayons vérifié que la restauration a fonctionné. Comme il s’agit d’un exemple artificiel, passons à la restauration.

Branchez le nouveau chemin de la clause MOVE TO et la restauration y placera les fichiers.

Après avoir migré certaines bases de données, nous voulons être certains que tout va bien et que le système est opérationnel. Quelques contrôles simples permettent de mettre vos parties prenantes à l'aise.

Après la migration des fichiers de base de données, il est bon de procéder comme suit:

  1. Vérifiez sys.database_files pour vous assurer qu'ils sont dirigés au bon endroit
  2. Exécuter DBCC CHECKDB sur les bases de données déplacées
    1. Le déplacement des fichiers de base de données peut créer des problèmes qu'une vérification de cohérence rapide peut atténuer.

Chacune des méthodes présentées ci-dessus présente des avantages et des inconvénients pour déplacer des fichiers de base de données. Assurez-vous que, quelle que soit la technique que vous choisissez d'utiliser, vous la testez d'abord sur un serveur hors production. Ce n'est pas le point que vous voulez rencontrer des surprises inconnues.

La méthode la plus sûre est probablement # 2 – mettre en mode hors connexion, déplacer des fichiers, modifier le fichier, le mettre en ligne. Le détachement risque de permettre la suppression des fichiers, mais si c'est ce que vous voulez, détachez comme il convient. La méthode de sauvegarde est probablement mieux conservée pour la veille chaud / froid, mais pourrait fonctionner en fonction de l'utilisation du système et des contraintes.


Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.