Comment restaurer un fichier de sauvegarde de base de données SQL Server version supérieure sur une version inférieure SQL Server?
En utilisant SQL Server 2008 R2 (10.50.1600) , j'ai créé un fichier de sauvegarde et maintenant je veux le restaurer sur le SQL Server 2008 de mon serveur en direct (10.00.1600) .
Lorsque j'ai essayé de restaurer la sauvegarde sur SQL Server 2008, cela donne une erreur, c'est Restore Failed
-à- dire parce que:
La base de données a été sauvegardée sur un serveur exécutant la version 10.50.1600. Cette version est incompatible avec ce serveur, qui exécute la version 10.00.1600.
Comment restaurer le fichier de sauvegarde sur ce serveur?
sql-server
Oreo
la source
la source
Réponses:
Non, il n'est pas possible de rétrograder une base de données. 10.50.1600 est la version de SQL Server 2008 R2 . Il n'y a absolument aucun moyen de restaurer ou d'attacher cette base de données à l'instance SQL Server 2008 sur laquelle vous essayez de restaurer (10.00.1600 est SQL Server 2008). Vos seules options sont:
la source
Vous pouvez utiliser la fonctionnalité appelée Exporter une application de niveau de données qui génère un
.bacpac
fichier comprenant un schéma de base de données et des données.Sur le serveur de destination, vous pouvez utiliser l' option Importer une application au niveau des données qui crée et remplit une nouvelle base de données à partir d'un
.bacpac
fichier pré-crééSi vous souhaitez simplement transférer le schéma de base de données, vous pouvez utiliser Extract Data-Tier Application pour créer un fichier et Deploy Data-Tier Application pour déployer le schéma de base de données créé.
J'ai essayé ce processus sur différentes versions de SQL Server de SQL 2014 à SQL 2012 et de SQL 2014 à SQL 2008R2 et j'ai bien fonctionné.
la source
sqlpackage.exe
ligne de commande. Google pour en savoir plus.Ne fonctionnera pas nécessairement
Sauvegarde / restauration - ne fonctionnera pas lorsque la cible est une version antérieure de MS SQL.
Copier la base de données - ne fonctionnera pas lorsque la cible est SQL Server Express: «Le serveur de destination ne peut pas être une instance SQL Server 2005 ou une instance Express ultérieure.»
Importation de données - Ne copiera pas le schéma.
Marchera
Génération de scripts - Tâches -> Générer des scripts . Assurez-vous de définir la version cible de SQL Server souhaitée sur la page Définir les options de script -> Avancé . Vous pouvez également y choisir de copier le schéma, les données ou les deux. Notez que dans le script généré, vous devrez peut-être changer le dossier DATA pour les fichiers mdf / ldf si vous passez de non-express à express ou vice versa.
Services de publication de base de données Microsoft SQL Server - fournis avec SQL Server 2005 et au-dessus, je pense. Téléchargez la dernière version d' ici . Prérequis:
sqlncli.msi
/sqlncli_x64.msi
/sqlncli_ia64.msi
,SQLServer2005_XMO.msi
/SQLServer2005_XMO_x64.msi
/SQLServer2005_XMO_ia64.msi
(télécharger ici ).la source
Voici mes 2 cents sur différentes options pour compléter ceci:
Outils tiers : Le moyen le plus simple de faire le travail est probablement de créer une base de données vide sur la version inférieure, puis d'utiliser des outils tiers pour lire la sauvegarde et synchroniser la nouvelle base de données nouvellement créée avec la sauvegarde.
La porte rouge est l'une des plus populaires mais il en existe beaucoup d'autres comme ApexSQL Diff , ApexSQL Data Diff , Adept SQL , Idera …. Ce sont tous des outils premium, mais vous pouvez faire le travail en mode d'essai;)
Génération de scripts : comme d'autres l'ont déjà mentionné, vous pouvez toujours script la structure et les données en utilisant SSMS, mais vous devez prendre en considération l'ordre d'exécution. Par défaut, les scripts d'objets ne sont pas classés correctement et vous devrez vous occuper des dépendances. Cela peut être un problème si la base de données est volumineuse et contient beaucoup d'objets.
Assistant d'importation et d'exportation : ce n'est pas une solution idéale car elle ne restaurera pas tous les objets mais uniquement les tables de données, mais vous pouvez l'envisager pour des correctifs rapides et sales lorsque cela est nécessaire.
la source
Vous ne pouvez pas restaurer la base de données (ou attacher) créée dans la version supérieure vers la version inférieure. Le seul moyen est de créer un script pour tous les objets et d'utiliser le script pour générer la base de données.
Oui, vous avez maintenant terminé avec le script de création avec le schéma et les données de la base de données.
la source
Une autre façon de faire est d'utiliser la fonction "Copier la base de données":
Recherchez par clic droit la base de données source> "Tâches"> "Copier la base de données".
Vous pouvez copier la base de données dans une version inférieure de SQL Server Instance. Cela a fonctionné pour moi à partir d'un SQL Server 2008 R2 (SP1) - 10.50.2789.0 à Microsoft SQL Server 2008 (SP2) - 10.0.3798.0
la source
Vous pouvez essayer ceci.
la source
Allez dans Tâche-> Générer des scripts ...
Dans Avancé dans "Types de données pour le script", sélectionnez
"Schema and data"
et essayez d'exécuter ce script dans votre version inférieure.la source
Ce n'est pas joli, mais c'est comme ça que je l'ai fait si cette option est installée sur votre installation SQL 2008 R2.
1) Faites un clic droit sur la base de données dans SQL Server 2008 R2 "Tâches" .. "Générer des scripts" dans l'assistant, sélectionnez toute la base de données et les objets dans la première étape. À l'étape "Définir les options de script", vous devriez voir un bouton "Avancé", sélectionnez-le et assurez-vous de sélectionner "Script pour la version du serveur" = SQL Server 2008 "et non la version R2. Il s'agit d'une étape cruciale, car" importer des données " en lui-même, n'apporte pas toutes les clés primaires, les constantes et tout autre objet comme les procédures stockées. "
2) Exécutez le script SQL généré sur la nouvelle instance d'installation ou de base de données SQL Express ou SQL Server 2008 à l'aide de la fenêtre de requête ou ouvrez le script .sql enregistré et exécutez et vous devriez voir la nouvelle base de données.
3) Maintenant, faites un clic droit sur la nouvelle base de données et sélectionnez "Tâches" .. "Importer des données .." choisissez la source comme base de données R2 et la destination comme nouvelle base de données. "Copier les données d'une ou plusieurs tables ou vues", cochez la case du haut pour sélectionner toutes les tables, puis à l'étape suivante, exécutez le package et vous devriez avoir tout sur une version plus ancienne. Cela devrait également fonctionner pour revenir à une version 2005. J'espère que cela aide quelqu'un.
la source
vous pouvez utiliser BCP pour les petites tables.
Commande BCP OUT: -
Commande BCP IN: - Créer une structure de table pour Invoicescopy1.
la source
J'apprécie qu'il s'agit d'un ancien article, mais il peut être utile que les gens sachent que l'assistant de migration Azure (disponible sur Codeplex - impossible de créer un lien vers est comme Codeplex au moment où je tape ceci) le fera facilement.
la source
Vous devrez utiliser les assistants d'importation / exportation dans SSMS pour tout migrer
Il n'y a pas de "rétrogradation" possible en utilisant la sauvegarde / restauration ou détacher / attacher. Par conséquent, ce que vous devez faire est:
la source
Vous pouvez générer un script à partir du menu Tâche
Pour référence détaillée
Comment migrer une base de données SQL Server vers une version inférieure
la source