2 votes

Transfert de bases de données de SQL Server 2008 à SQL Server 2005 ?

Comment transférer la base de données de SQL Server 2008 à SQL Server 2005?

J'ai défini le niveau de compatibilité sur 90 et créé une sauvegarde.

Un message d'exception indique:

la famille de supports sur l'appareil ... est incorrectement formée

Il n'y a pas de possibilité d'établir une connexion entre les bases de données pour copier des données en utilisant les assistants SSIS.

Comment pouvez-vous transférer efficacement une base de données de SQL 2008 à 2005?

1voto

David Spillett Points 22424

Je suis assez sûr qu'il n'est pas possible de restaurer une base de données sauvegardée par une version plus récente de SQL Server, malheureusement.

Alors que vous ne pouvez pas connecter les machines pour effectuer une exportation à l'aide des assistants, pourraient-ils peut-être prendre en charge la génération de scripts contenant à la fois la structure et les données (tout comme une sauvegarde mySQL) ? Les outils standard peuvent certainement produire des scripts pour la structure et la programmabilité stockée (procédures stockées, déclencheurs, ...). Il faudrait peut-être un peu de travail pour exporter les données et les réimporter, mais c'est possible.

L'autre option est d'installer SQL2008 quelque part localement par rapport à l'instance SQL2005 et d'essayer de transférer de cette manière via l'assistant (restaurer sur ce SQL2008 et transférer via SSIS à partir de là). Il existe une édition d'évaluation limitée dans le temps de SQL2008 : http://www.microsoft.com/sqlserver/2008/en/us/trial-software.aspx
De la même manière, vous pourriez essayer la même chose, en installant SQL2005 quelque part localement par rapport à l'instance SQL2008, en transférant les données à l'aide de SSIS et en étant ainsi capable de produire un fichier de sauvegarde compatible avec SQL2005.

0voto

Dr Zimmerman Points 136

Une fois mis à niveau, une base de données ne peut jamais être rétrogradée. Définir le niveau de compatibilité ne change que certaines façons dont s'exécute la requête, mais n'a absolument aucun impact sur le format physique de la base de données : une base de données en mode de compatibilité 90 est une base de données SQL 2008, pas une SQL 2005.

Donc, si vous avez besoin de déployer une base de données sur SQL 2005, vous devez la créer sur SQL 2005. Non seulement cela, mais cela doit être la même version de SQL 2005, ce qui signifie le même niveau de SP et de CU. Ou du moins une version antérieure au serveur ciblé. Donc, si le serveur ciblé est SP1 CU3, alors vous pouvez créer la base de données sur RTM, n’importe quel CU et sur SP1, SP1 CU1, SP1 CU2 ou SP1 CU3. Mais vous ne pouvez pas la créer sur SP1 CU4 ni sur toutes les versions post-SP1 (comme SP2). Comme je l'ai dit, une base de données peut être mise à niveau, mais jamais rétrogradée.

Vos options sont soit de générer le script de la base de données et du contenu en SQL texte, puis d'importer les scripts dans le serveur cible, de recréer la base de données sur une version adéquate de SQL Server, ou de mettre à niveau la cible vers 2008.

0voto

nOw2 Points 276

Quelle est la taille de la base de données? Je suppose que vous n'utilisez pas les nouveaux types de données de 2008.

Vous pouvez générer le schéma de la base de données dans SQL Server 2008 et rendre le script compatible pour 2005. Ensuite, vous pouvez effectuer un BCP de toutes les tables de 2008 et les importer dans 2005. Vous pouvez également réaliser cela via SSIS, mais BCP serait plus rapide (du moins pour moi).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X