web-dev-qa-db-fra.com

Migration de SQL Server 2000 vers 2012 sans instance 2005 ou 2008

J'ai rencontré trois anciennes bases de données reposant sur SQL Server 2000 que je dois déplacer en 2012. Je crois que l'approche standard consiste à restaurer dans une instance 2005 ou 2008, à mettre à jour, à réexporter et enfin à restaurer en 2012.

Très bien, sauf que nous n'avons aucune instance disponible en 2005 ou 2008.

Existe-t-il des solutions de contournement ou d'autres méthodes qui pourraient valoir la peine d'être essayées?

Pour information, les bases de données ne contiennent que 15 à 20 tables et quelques vues, elles paraissent très simples et les sauvegardes ne font que 100 à 200 Mo.

11
Lunatik

Non, il n'y a pas de solution pour mettre à niveau une base de données directement de 2000 à 2012.

Comme vous n'avez pas une tonne de données, vous pouvez faire toutes sortes de choses pour déplacer les données (mais pas la base de données dans son ensemble), notamment:

  • Assistant d'importation/exportation
  • SSIS
  • BCP
  • Requêtes manuelles utilisant un serveur lié depuis 2012 ou une application

Cependant, ceux-ci n'apporteront pas nécessairement d'autres choses comme les utilisateurs, les autorisations, les rôles, etc. Et tout ne créera pas vos objets dans le bon ordre de dépendance. Ils sont donc plus productifs et sujets aux erreurs. D'après mon expérience, il serait utile de simplement mettre en place une instance intermédiaire temporairement, puis de faire deux opérations de sauvegarde + restauration - qui seront plus faciles, plus rapides et moins sujettes aux erreurs que l'une des méthodes ci-dessus.

Si vos bases de données sont inférieures à 10 Go, vous pouvez installer une copie d'Express (gratuite) en quelques minutes et l'utiliser. Vous pouvez télécharger 2008 R2 Express ici . Je ne pense pas qu'il existe des fonctionnalités d'entreprise en 2000 autour de la structure de la base de données, etc. qui bloqueraient cette mise à niveau (une préoccupation plus importante pour les versions plus modernes).

Si votre base de données est trop volumineuse pour Express, vous devriez pouvoir trouver Developer Edition pour 49 $ environ (ou même moins cher - j'ai trouvé 2005 sur eBay pour 37 $ ), ou si vous avez un abonnement MSDN, vous devriez pouvoir obtenir n'importe quel SKU à partir de là.

Ou vous pouvez vous en sortir en utilisant une édition d'évaluation, qui est étonnamment toujours proposée au téléchargement pour les anciennes versions (par exemple j'ai trouvé 2008 ici ), mais je suis sur un téléphone et je n'ai donc pas pu confirmer le téléchargement de cette version fonctionne toujours.

21
Aaron Bertrand

Dire qu'il n'y a pas de solution de contournement semble un peu prématuré.

Vous dites que votre base de données ne contient que quelques tables et vues. Pourquoi ne pas exporter le schéma des tables et des vues en tant qu'instructions de création SQL et les exécuter sur votre base de données cible? Vous pouvez ensuite également exporter les données réelles dans quelque chose comme le format CSV et les importer dans la base de données cible, ou peut-être même écrire quelque chose en C #/C++/etc pour exporter/importer les données réelles.

Vous n'auriez pas besoin de dépenser un centime pour de nouvelles instances de SQL Server dont vous n'avez finalement pas besoin.

6
Nicholas Hill

Non, vous ne pouvez pas le migrer directement de 2000 à 2012.

Ce que vous pouvez faire est d'installer une instance temporaire de 2005 OR 2008 ou 2008R2, restaurez ici la base de données 2000. Une fois cela fait, vous pouvez maintenant mettre à niveau à partir de l'instance installée en prenant la sauvegarde de la base de données de cette instance et restauration sur le serveur SQL 2012.

Vous devrez effectuer la migration en deux étapes:

  • Étape 1: effectuez une première migration de SQL 2000 vers SQL 2008 par exemple. Vous devez être SQL 2000 SP4, puis procédez comme suit: Migration de SQL Server 2000 vers SQL Server 2008

  • Étape 2: effectuez une deuxième migration de SQL Server 2008 vers 2012.

3
KASQLDBA

Vous ne pouvez pas migrer directement de SQL Server 2000 vers SQL Server 2012, et si vous essayez de le faire, vous obtiendrez le numéro d'erreur suivant 3169, qui est lié aux problèmes de compatibilité.

La migration vers SQL Server 2012 peut être effectuée à partir de l'une des versions suivantes (versions minimales) SQL Server 2005 SP4 ou SQL Server 2008 SP2 ou SQL Server 2008 R2 SP1.

Donc, la première étape pour migrer de SQL Server 2000 vers l'une de ces versions, j'ai trouvé l'un des Conseiller de mise à niveau pour SQL Server 2008 dans ce qui suit lien . Pour vous assurer que tout fonctionnera correctement avant de commencer le processus de restauration, vous devez exécuter l'application. Ensuite, "Lancer l'assistant d'analyse de l'assistant de mise à niveau" et suivez les étapes de l'assistant.

Après avoir obtenu le rapport, vous devez restaurer la base de données sur le serveur cible SQL Server 2005 SP4 ou SQL Server 2008 SP2 ou SQL Server 2008 R2 SP1 et exécuter le niveau de compatibilité sur celui-ci (vous pouvez le trouver sur l'option de base de données). Pour les connexions SQL Server, veuillez suivre les instructions ci-dessous link .

Une fois cette opération terminée, vous devez maintenant migrer vers SQL Server 2012 en répétant les mêmes étapes à partir du serveur sur lequel vous avez effectué la première migration.

0
Ahmad Abuhasna

Vous dites que vous "avez rencontré trois anciennes bases de données reposant sur SQL Server 2000", ce qui m'amène à croire que vous n'avez besoin que des données. Je suppose que s'ils étaient dirigés dans un but, vous le sauriez. Si tel est le cas, ignorez toutes les questions des utilisateurs, de la sécurité, etc.

Assistant d'importation/exportation de toutes les tables Scriptez les procédures stockées et les vues Vérifiez les plans de maintenance et les tâches d'agent simplement pour documenter les processus que vous voudrez peut-être regarder plus tard.

0
Mitch Stein

Tout d'abord, je conviens que vous ne devez pas migrer de 2000 à 2012 directement. Je pense que ce processus a été bien couvert. Je voulais vous suggérer de savoir avec certitude si quelqu'un utilise les bases de données et pourquoi il les utilise. Il se peut qu'ils ne soient pas utilisés. Cela arrive et si c'est le cas, alors vous n'avez aucun souci. Il se peut que l'ajout de 2 ou 3 tables et des données (pour 2000, utilisez bcp si vous souhaitez extraire les données d'une table individuelle de manière simple et fiable) dans une base de données 2012 existante répondrait aux besoins des utilisateurs. Si vous faites cela, créez les nouvelles tables dans une base de données 2012 et bcp les données dont vous avez besoin pour csv, vous pouvez les bcp si vous le souhaitez. Si vous devez migrer plus d'une table ou deux, la méthode la plus simple, la plus sûre et la meilleure consiste à effectuer la migration en deux étapes. N'oubliez pas d'effectuer une sauvegarde dans la version 2000 avant de faire quoi que ce soit.

0
dkh63493