Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/05/2011, 17h28   #1
Membre Expert
 
Inscription : octobre 2007
Messages : 3 947
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 947
Points : 1 905
Points : 1 905
Par défaut Tranfert de DB entre serveur

Bonjour

Existe-il une methode simple pour transferer une petite base d'un serveur vers un autre

La methode Back-Up restore me semble peu conviviale, compliquée et genere systematiquement des problemes de droits entre serveurs

La methode que j'ai trouvée est un peu absurde mais a l'avantage d'etre relativement simple

- Je genere une base acces vide
- J'exporte la base SQL Server vers la base access
- Je recopie la base acces sur le server choisi
- Je cree une DB Vide
- Je reimporte la base acces

C'est absurde vous allez dire et j'en convient mais le Back-Up restore se Sql Server pour cet usage me semble inadéquat !

Donc je reste ouvert a toutes suggestions meilleure
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 17h38   #2
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Bonjour,

Je ne vois rien de compliquer la dedans. L'avantage de cela en plus est de pouvoir scripter le transfert et rendre le processus quasi automatique à savoir :

--> backup database
--> récupération des objets de servers qui concernent la base de données (notamment les login)
--> transfert database
--> restaure database
--> remappage des utilisateurs sql

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 17h58   #3
Membre Expert
 
Inscription : octobre 2007
Messages : 3 947
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 947
Points : 1 905
Points : 1 905
Merci MIkeDavem

Je vois au moins deux difficultées

--> récupération des objets de servers qui concernent la base de données (notamment les login)
--> remappage des utilisateurs sql


La base initiale se trouve sur ma machine de developpement avec une authentification Windows

Je dois la recopier sur une machine de production avec ayant un Sql Server Authentication et cette base doit simplement heriter des authentication de ce server

Rien que ca je pense que ca va poser des tas de problèmes

J'avoue aussi m'y perdre un peu dans les multiples option de Back-Up de SQL Server (entre autre la notion de Copy-Only Backups)

La gestion des fichier de Back-Up me laisse aussi fort hésitant : Sql Server semble "cumuler" les BackUp dans le meme fichier

Bref le Back-Up / Restore de Sql Server me semble tres indigeste
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 18h29   #4
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Citation:
Je vois au moins deux difficultées

--> récupération des objets de servers qui concernent la base de données (notamment les login)
--> remappage des utilisateurs sql
Pourtant il existe des scripts pour cela ... rien de bien méchant.

Citation:
J'avoue aussi m'y perdre un peu dans les multiples option de Back-Up de SQL Server (entre autre la notion de Copy-Only Backups)

La gestion des fichier de Back-Up me laisse aussi fort hésitant : Sql Server semble "cumuler" les BackUp dans le meme fichier
Copy_only permet de faire une sauvegarde de base sans interférer aux sauvegardes du journal des transactions.

Si SQL Server cumule dans un même fichier c'est que vous avez activé l'option APPEND dans l'interface graphique et WITH NOINIT si vous utilisez les scripts TSQL.

Citation:
La base initiale se trouve sur ma machine de developpement avec une authentification Windows

Je dois la recopier sur une machine de production avec ayant un Sql Server Authentication et cette base doit simplement heriter des authentication de ce server

Rien que ca je pense que ca va poser des tas de problèmes
C'est à dire ? Le mode de connexion ne changera rien à la procédure. Si vous utilisateurs différents sur les 2 serveurs rien ne vous empêcher de scripter la création des users + mappage des logins.
Parlez vous d'une mise en production d'une base ou simplement une copie pour le développement ?

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 22h29   #5
Membre Expert
 
Inscription : octobre 2007
Messages : 3 947
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 947
Points : 1 905
Points : 1 905
Bonsoir MikeDavem

Citation:
Parlez vous d'une mise en production d'une base ou simplement une copie pour le développement ?
Mon but est de replacer une base de test par une base de dev autant de fois que né"cessaire durant la phase Test

Mais je pense que l'option Back-Up restore entre deux Server MS Sql different n'est pas autorisée

Citation:
TITLE: Microsoft SQL Server Management Studio
------------------------------

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

------------------------------
ADDITIONAL INFORMATION:

The media family on device 'C:\Projets\StockLafarge\Data\StockLafarge.bak' is incorrectly formed. SQL Server cannot process this media family.
RESTORE HEADERONLY is terminating abnormally. (Microsoft SQL Server, Error: 3241)

For help, click: http://go.microsoft.com/fwlink?ProdN...1&LinkId=20476
Le Back-Up restore de Sql Sever est vraiment un outil extremement mal concu !

Je suis donc contraint et forcé de generer un Script pour chaque table
Je reviens donc a ma question de base :

Existe-t-il des outils pour faire cela plus simplement ?
Acces me pose aussi des problemes

Actuellement le plus simple (et testé) semble de tout exporter vers excell et de reimporter l'excell

C'est CA la compatibilité Microsoft
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 22h50   #6
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Vous parlez de SQL Server et de Access ?
Essayez vous de nous dire que vous essayez de restaurer une base Access sur SQL Server et vis vers ca ?

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 23h22   #7
Membre Expert
 
Inscription : octobre 2007
Messages : 3 947
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 947
Points : 1 905
Points : 1 905
Merci de ta patience MikeDavem (je pense qu'il en faut avec certains aspect de SQL Server)

J'essaye simplement de TRANSFERER une Base (Database) Sql Server
Depuis
un Server A (MS Sql Server 2008) sur une machine A
vers
un Server B (MS SQL Server 2008) sur une Machine B

On peut considerer que A remplace completement B

Cela semble une mission impossible avec MS SQL Server

J'ai essayé avec Back / Up restore : Complexe et en definitive impossible (message d'erreur dan un précédent post)

J'ai essayé en passant avec l'export / import tools via une base Acces (ca marche a moitié : problemes sur cetaines tables )

J'ai essayé en passant avec l'export / import tools via un Tableau Excell (ca marche )

J'ai donc une solution (Absurde) en passant par une table Excell.
Cette solution me depanne momentanément mais est tout a fait inexploitable sur des gros volumes
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 06h37   #8
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 669
Points : 8 729
Points : 8 729
Bonjour,

Pour ma part c'est une opération que je fais au moins une fois pas semaine sans jamais rencontrer de problèmes ...
J'ai même eu un jour, où l'on a copié toute les bases de données de test sur une autre serveur (tout neuf !), en backup restore.
J'ai tout scripté par génération de code SQL.
Tout s'est fait dans la nuit sans un plantage

Mais je ne le fais jamais avec l'interface graphique !

Pour prendre une sauvegarde de votre base de données :

Code :
1
2
3
BACKUP DATABASE maBD
TO DISK = 'C:\mesBackups\maBD.bak'
WITH COPY_ONLY, CHECKSUM, STATS = 1, COMPRESSION
Supprimez l'option COMPRESSION si vous n'êtes pas sous SQL Server 2008.
Déplacez le fichier de sauvegarde sur le nouveau serveur.

Vous noterez que vous pouvez réaliser la sauvegarde de votre base de données directement sur le serveur cible en passant le chemin réseau du partage dans lequel vous souhaitez réaliser la sauvegarde sur le serveur cible.
Cela vous évite donc de déplacer le fichier de sauvegarde.

Pour la restauration sur l'autre serveur, il vous faut connaître les noms de fichiers logiques de votre base de données, car c'est en effet le seul moyen pour SQL Server de recréer les fichiers sur le serveur cible.

Pour ce faire :

Code :
1
2
RESTORE FILELISTONLY
FROM DISK = 'C:\restauration\maBD.bak'
La colonne LogicalName contient le nom du fichier logique de la base de données (au moins deux donc), et la colonne PhysicalName vous indique où étaient stockés les fichiers de la base de données au moment de la sauvegarde.

Pour restaurer :

Code :
1
2
3
4
RESTORE DATABASE maBD
FROM DISK = 'C:\restauration\maBD.bak'
WITH MOVE ('nomLogiqueFichierDonnees' TO 'D:\maBD\maBD.MDF')
	, MOVE('nomLogiqueFichierJournalDesTransactions' TO 'E:\maBD\maBD.LDF', STATS = 1
Et a bombé.

Vous pouvez également procéder par détachement de base de données : vous détachez la base de données de l'instance source, copiez les fichiers sur le serveur cible, et rattachez la base de données sur les deux serveurs.
Cela vous évite d'attendre la fin de la sauvegarde.

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/05/2011, 07h06   #9
Membre Expert
 
Inscription : octobre 2007
Messages : 3 947
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 947
Points : 1 905
Points : 1 905
Merci Elsuket

Je vais essayé ca aussi
Pour detach / attach : tu veux dir que si je detache la db du serveur source je peux directement reprendre les fichiers de cette DB ?

Je vais investiguer cela
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 09h35   #10
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 669
Points : 8 729
Points : 8 729
Citation:
Pour detach / attach : tu veux dir que si je detache la db du serveur source je peux directement reprendre les fichiers de cette DB ?
C'est exactement cela.

Vous pouvez le faire soit pas l'interface graphique de SQL Server Management Studio, soit par code :

Code :
1
2
3
4
5
6
7
8
9
10
11
-- 1. Détachement sur le serveur source
EXEC sp_detach_db 'maBD'
GO
 
-- 2.Déplacer / Copier les fichiers sur le serveur cible
-- 3. Attachement sur le serveur cible
CREATE DATABASE maBD
      ON (FILENAME = 'D:\maBD\maBD.mdf') 
      , (FILENAME = 'E:\maBD\maBD.ldf') 
FOR ATTACH
GO
@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/05/2011, 09h50   #11
Membre Expert
 
Inscription : octobre 2007
Messages : 3 947
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 947
Points : 1 905
Points : 1 905
Mercvi Elsuket

Ton aide m'a été bien utile !
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 12h23   #12
Invité régulier
 
Inscription : septembre 2009
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 7
Points : 6
Points : 6
Par défaut 2008 vs 2008R2

Bonjour !
Je rencontre un petit souci rejoignant un peu celui exposé ci-dessus...
Il faudrait que je puisse restaurer une base 2008R2 sur un 2008 et le système me répond que cela est impossible, vu la différence de version.
Y aurait-il une solution pour cela ?
MErci !!!
Hobbes92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 12h28   #13
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Seule solution ici est de transférer vos données depuis votre base 2008R2 vers 2008 en utilisant les outils qui sont à votre disposition (BCP, Import, export des données depuis SSMS, package SSIS, linked servers etc ....).

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 12h43   #14
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 669
Points : 8 729
Points : 8 729
Sauf si les deux instances sont sous le SP2 de SQL Server 2008 !

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 13h58   #15
Invité régulier
 
Inscription : septembre 2009
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 7
Points : 6
Points : 6
La production tourne sur SQL 2008 R2 version 10.50.1600 et le serveur de recette sous SQL 2008 version 10.0.4000
Je peux donc récupérer sans aucun souci les bases d'un ancien serveur de prod tournant sous SQL 2000 et les restaurer sur le 2008 et le 2008 R2 sans problème, mais par contre, pas entre 2008 R2 vers 2008 ?
Je parle d'opération aussi simple que Backup/Restore...
Hobbes92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 14h55   #16
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Tout à fait.

L'approche ascendante est possible mais pas l'approche descendante.

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 15h05   #17
Invité régulier
 
Inscription : septembre 2009
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 7
Points : 6
Points : 6
Ok, merci beaucoup pour l'aide.
C'est un beau métier, on en apprend tous les jours...
A++
Philippe
Hobbes92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h55.


 
 
 
 
Partenaires

Hébergement Web