IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

Backup / Restore d'une base de données avec FileStream


Sujet :

Administration SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 102
    Points : 69
    Points
    69
    Par défaut Backup / Restore d'une base de données avec FileStream
    Bonjour,

    J'ai une base de données en production qui utilise le FileStream et qui a un volume de plus de 50Go. Lorsque je développe ou débogue, j'utilise une copie locale mais là, elle commence à être un peu trop volumineuse.
    Je désire donc faire un BACKUP / RESTORE sans tous les fichiers du FileStream.

    J'ai utilisé la commande suivante pour faire le BACKUP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    BACKUP DATABASE DatabaseName 
    	FILEGROUP = 'PRIMARY'
    	TO  DISK = 'DatabaseName.bak'
    	WITH INIT
     
    BACKUP LOG DatabaseName
    	TO DISK = 'DatabaseName.trn'
    	WITH COMPRESSION, NOFORMAT, NOINIT,  SKIP, REWIND, NOUNLOAD,STATS = 10
    La commande semble avoir fonctionnée... Si je vérifie mon fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RESTORE FILELISTONLY   DISK = 'DatabaseName.bak'
    ...les 3 entités y sont : DatabaseName; DatabaseName_log; FileStream. (Size = 0 pour ce dernier.)

    Ensuite, j'ai fait un RESTORE en utilisant la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    RESTORE DATABASE DatabaseName
    FROM  DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Backup\DatabaseName.bak' 
    WITH 
    	MOVE 'DatabaseName' TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\DatabaseName.mdf',
    	MOVE 'DatabaseName_Log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\DatabaseName_Log.ldf',
    	MOVE 'FilestreamFG_7386FBE0' TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\DatabaseName_FilestreamFG_7386FBE0.mdf',
    	NORECOVERY,
    	FILE = 1
    Résultat :
    Processed 1067376 pages for database 'DatabaseName', file 'DatabaseName' on file 1.
    Processed 255 pages for database 'DatabaseName', file 'DatabaseName_log' on file 1.
    RESTORE DATABASE ... FILE=<name> successfully processed 1067631 pages in 37.667 seconds (221.436 MB/sec).
    Ensuite, RESTORE du Log :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RESTORE LOG DatabaseName
    FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Backup\DatabaseName.trn' 
    WITH RECOVERY, FILE = 1
    Erreur :
    Msg 4320, Level 16, State 13, Line 22
    The file "FilestreamFG_7386FBE0" was not fully restored by a database or file restore. The entire file must be successfully restored before applying this backup set.
    Msg 3119, Level 16, State 1, Line 22
    Problems were identified while planning for the RESTORE statement. Previous messages provide details.
    Msg 3013, Level 16, State 1, Line 22
    RESTORE LOG is terminating abnormally.

    Ça fait 2 jours que je cherche mais en vain.

    Merci d'avance du coup de main.


    Pascal

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Il faut effectuer une restauration partielle dans ton cas en utilisant le mot clé PARTIAL comme cela:
    Je suppose que c'est le groupe de fichiers primaire qui t'intéresse ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    RESTORE DATABASE DatabaseName
    FROM  DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Backup\DatabaseName.bak' 
    WITH 
    	MOVE 'DatabaseName' TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\DatabaseName.mdf',
    	MOVE 'DatabaseName_Log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\DatabaseName_Log.ldf',
    	MOVE 'FilestreamFG_7386FBE0' TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\DATA\DatabaseName_FilestreamFG_7386FBE0.mdf',
    	NORECOVERY, PARTIAL,
    	FILE = 1
    Ensuite tu pourras restaurer ton log

    ++

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 102
    Points : 69
    Points
    69
    Par défaut
    Merci mikedavem de ta réponse.

    J'ai maintenant le message suivant:
    Processed 0 pages for database 'DatabaseName', file 'DatabaseName' on file 1.
    Processed 604 pages for database 'DatabaseName', file 'DatabaseName_log' on file 1.
    Converting database 'DatabaseName' from version 661 to the current version 782.
    Database 'DatabaseName' running the upgrade step from version 661 to version 668.
    ...
    Database 'DatabaseName' running the upgrade step from version 677 to version 679.
    Msg 5056, Level 16, State 6, Line 22
    Cannot add, remove, or modify a file in filegroup 'FilestreamFG' because the filegroup is not online.
    Msg 3013, Level 16, State 1, Line 22
    RESTORE LOG is terminating abnormally.
    Je cherche sur cette nouvelle erreur mais si tu as une réponse rapide, ça serait bien apprécié !

    Merci.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    1) donnez la commande SQL à l'origine de l'erreur... Nos boules de cristal sont moméntanément en grève !
    2) êtes vous en édition Enterprise ou Developper ?

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2006
    Messages : 102
    Points : 69
    Points
    69
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    1) donnez la commande SQL à l'origine de l'erreur... Nos boules de cristal sont moméntanément en grève !
    En fait, j'ai repris les mêmes commandes que dans mon premier post et j'y ai ajouté « PARTIAL » dans le Restore tel que suggéré par mikedavem (qui ne donne aucune erreur).

    La commande qui renvoit l'erreur c'est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RESTORE LOG DatabaseName
    FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Backup\DatabaseName.trn' 
    WITH RECOVERY, FILE = 1

    Citation Envoyé par SQLpro Voir le message
    2) êtes vous en édition Enterprise ou Developper ?
    Developper !

Discussions similaires

  1. [VS2005]Utilisation d'une base de données avec VB 2005
    Par gabrielgarcin dans le forum Windows Forms
    Réponses: 1
    Dernier message: 08/02/2006, 15h46
  2. [XSL]Connexion à une base de données avec XSL
    Par muad'dib dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 07/02/2006, 10h06
  3. Lier une feuille à une base de donnée ( avec ADO)
    Par christiano dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/12/2005, 15h55
  4. Modifier le nom d'une base de donnée avec erreur sy
    Par mmn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/11/2003, 10h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo