Nous venons de recevoir un nouveau serveur, j'ai donc besoin de copier l'instance SQL Server 2008 existante à partir de l'ancienne boîte de base de données.
Normalement, je fais cela en copiant les fichiers .mdf et journaux et en les attachant, mais je ne suis pas en mesure de retirer les dbs car ils sont utilisés 24/7, j'ai donc sauvegardé les bases de données et les ai restaurées sur la nouvelle machine. Cependant, je me suis retrouvé avec quelques problèmes dont l'un est lié aux utilisateurs orphelins . Donc, ce que je recherche, c'est un processus à sécurité intégrée pour tout déplacer avec un minimum de tracas / ennuis / maux de tête. Je suis un développeur .Net avec une bonne quantité de SQL à mon actif, mais le fonctionnement interne de SQL Server est en grande partie un mystère pour moi et je trouve la documentation MS difficile à parcourir.
Veuillez aider.
Réponses:
Si vous ne pouvez pas mettre les bases de données hors ligne, vous devez effectuer une sauvegarde / restauration. Je suggérerais ce qui suit:
Si vous construisez et configurez la nouvelle boîte pour qu'elle ressemble exactement à l'ancienne, vous n'aurez que peu de bruit.
Je n'ai aucune idée de la taille de vos bases de données, donc cette méthode pourrait prendre beaucoup de temps. La chose la plus simple à faire serait d'arrêter l'ancienne boîte et de copier les fichiers MDF et LDF, puis (après la restauration du maître), il vous suffirait de redémarrer SQL pour mettre vos bases de données en ligne. Mais vous avez déclaré que ce n'était pas une option, car les bases de données ne sont pas autorisées à être hors ligne.
la source
Vous mentionnez un fonctionnement 24h / 24 et 7j / 7, donc la meilleure façon de le faire est de créer un miroir de base de données sur le nouveau système, puis vous pouvez simplement basculer avec un minimum - peut-être zéro, selon la structure de votre application - des temps d'arrêt à l'aide d'un client - redirection latérale. Les étapes de base sont les suivantes:
WITH NORECOVERY
Créez des «points de terminaison» sur les deux serveurs et assurez la connectivité (par exemple, les règles de pare-feu), en définissant le port et l'adresse IP correctement), par exemple:
Configurez la mise en miroir sur le miroir, en pointant vers le principal:
Et sur le principal, pointant vers le miroir (juste un nom de base de données et une adresse IP différents.
Puis, le moment venu, passez simplement du primaire au miroir:
Remarque: je suppose que ces deux serveurs sont sur le même réseau, il sera donc correct de fonctionner en mode synchrone. S'il s'agit d'une liaison WAN, utilisez le mode asynchrone.
la source