copier une base de données SQL Server 2008 et le renommer
J'ai un Serveur SQL server 2008 de la base de données que je veux copier et créer une nouvelle base de données (avec un nom différent) sur le serveur. Je ne suis pas concerné par le maintien des données, la nouvelle base de données peut être créé avec pas de données pour les débutants. Ce que je cherche à faire est la suivante:
- Créer la nouvelle base de données du maintien de la structure de l'ancienne base de données
- De définir le nom de la nouvelle base de données
- Changement de tous les types varchar et char types de données type de données nvarchar et nchar
- Changement de tous les types de données texte de type nvarchar(MAX)
En aparté, j'ai 2 autres questions qui ne font pas partie de ma tâche, mais aimerais poser les questions suivantes:
- Comment puis-je mettre à niveau la base de données sql server vers sql server 2012
- Est-il un travail préparatoire, j'ai besoin d'effectuer sur la base de données pour s'assurer que je peux facilement mettre à niveau?
source d'informationauteur amateur
Vous devez vous connecter pour publier un commentaire.
C'est vraiment une combinaison de questions à choix multiples.
QUESTIONS 1 ET 2
La sauvegarde la plus simple de la commande serait:
Maintenant pour restaurer ce qu'une autre base de données, vous devez connaître les noms de fichier, car il va essayer de mettre les fichiers dans le même lieu. Donc, si vous exécutez la commande suivante:
Vous devriez voir la sortie qui contient les noms et les chemins de données et des fichiers journaux. Lorsque vous construisez votre restauration, vous aurez besoin de les utiliser, mais de remplacer les chemins avec le nom de la nouvelle base de données, par exemple:
Que vous aurez à remplacer
dbname
etnewname
avec votre base de données actuelle des noms, et aussiC:\some folder
etC:\path_from_sp_helpfile_output\
avec votre les chemins d'accès. Je ne peux pas faire plus précis dans ma réponse, à moins que je sais ce que c'est.Voici une repro:
Résultats partiels:
Maintenant, je lance la sauvegarde:
Bien sûr, si le clone de la cible (dans ce cas
DB-B
) existe déjà, vous aurez envie de laisser tomber:Maintenant cette restauration sera exécuté avec succès, vous donnant une copie de la DB-A rebaptisé DB-B:
LES QUESTIONS 3 ET 4
Refactoring est une grande douleur, surtout si certains de ces colonnes de participer à des contraintes. Vous pouvez créer un script très simple de cette façon, mais vous aurez besoin de quelque chose de beaucoup plus de puissance industrielle pour traiter de toutes ces variables. Cela suppose que toutes les colonnes sont les valeurs null et ne pas participer à des contraintes.
Vous pouvez utiliser la sortie d'IMPRESSION pour vérifier la première 8K du script, et quand vous pensez qu'il semble bon, décommentez la
EXEC
.Vous aurez envie de reconstruire tous les index une fois que vous avez terminé.
Cela dit, le script de la base de données comme Tony suggéré (ou à l'aide d'un outil comme Porte rouge SQL de Comparer - ou l'une de ses nombreuses variantes - contre une base de données vide) est probablement beaucoup plus facile, surtout si certains de ces colonnes de participer à des contraintes qui doivent être supprimés et recréés afin de changer les types.
LES QUESTIONS 5 ET 6
Vous ne pouvez pas mettre à niveau une seule base de données sur un 2008 instance. Vous pouvez soit mettre à niveau sur place ou que vous avez mis en place une nouvelle instance (comme Tony l'a décrite) et ensuite migrer votre base de données (en utilisant de préférence de sauvegarde /restauration - beaucoup de gens vous diront de dissociation /association mais qui est beaucoup moins sûr). Travaux préparatoires que vous devriez faire:
Et après la mise à niveau, vous aurez envie de:
Source pour la script qui copie une base de données.
Hmmm utiliser sql server pour créer un script sur la structure de base de données, puis de faire une recherche et remplacer pour les modifications. Installer 2012 et exécuter le script.
Je ne suis pas au courant de quoi que ce soit, en 2008, qui ne fonctionnent pas en 2012. Si votre 2008 db a été mis en place pour être encore 2000 compatible, puis, il ya quelques problèmes, mais le script sur 2008 doit obtenir autour d'eux tout de suite.
Comme pour la mise à niveau, je n'ai jamais eu beaucoup de temps pour en place la mise à niveau, en dehors de toute autre chose, c'est destructive de sorte que quiconque a vaguement judicieux serait de faire une sauvegarde complète du serveur de toute façon. N'écoutez pas ceux qui disent qu'il est peu probable de se tromper, dans mon expérience, cela signifie que vous êtes susceptible d'être la malheureuse personne qui n'a aller mal, parce que youdidn pas crossyour doigts assez serré..
Personnellement j'avais installer 2012 (de préférence sur une autre machine) et la il suffit de restaurer une sauvegarde des données de 2008. Définissez ensuite la compatitibility niveaux, de corriger l'utilisateur/logins.
Si vous allez faire en place, vous ne pouvez pas changer de type d'installation. ie 32 bits 2008 à 64 bits, 2012. Pour faire de vous l'avais tout d'abord passer à 2008 64 bits, ce qui est une autre raison de préférer ma première suggestion.