2009-01-27 13 views
0

Je suis dans un problème où je n'ai pas assez d'espace pour accueillir mes fichiers MDF et LDF à partir d'une sauvegarde LiteSpeed avait fait.SQL Server, restaurer un fichier .BKP dans un fichier MDF mais pas LDF (pas d'espace pour cela)

Je suis venu avec la sproc suivante:

exec master.dbo.xp_restore_database 

@database = 'OSiteDB', 
@filename = 'L:\OSiteDB_2009_01_07_Wed_LiteSpeed_Full.BKP', 
@with = 'move "O1_SITEDB" to "S:\OSiteDB_Data.mdf"', 
@with = 'move "O1_SITEDB_Log" to "Some dev null location??" 

Est-il possible que je peux spécifier l'emplacement LDF vers un emplacement null? Je ne veux pas que le LDF, alternativement, est là une façon que je peux lui dire de ne pas chercher le ldf du tout?

Répondre

0

Avez-vous regardé les options WITH NORECOVERY?

En particulier, je crois que vous pouvez restaurer la base de données WWITH NOCEOVERY puis le LOG WITH RECOVERY (sans fichier journal).

http://msdn.microsoft.com/en-us/library/ms191253.aspx

+0

AVEC NORECOVERY n'autorise que des fichiers RESTORE LOG supplémentaires. Cela n'a rien à voir avec le fichier LDF – gbn

0

Je ne pense pas que vous pouvez éviter la restauration du fichier LDF. Mais, comme vous l'avez mentionné, vous pourriez être en mesure de le restaurer dans un endroit temporaire.

De here:

--Step 1: Retrive the Logical file name of the database from backup. 
RESTORE FILELISTONLY 
FROM DISK = ‘L:\OSiteDB_2009_01_07_Wed_LiteSpeed_Full.BKP’ 
GO 

--Step 2: Use the values in the LogicalName Column in following Step. 
—-Make Database to single user Mode 
ALTER DATABASE OSiteDB 
SET SINGLE_USER WITH 
ROLLBACK IMMEDIATE 

—-Restore Database 
RESTORE DATABASE OSiteDB 
FROM DISK = ‘L:\OSiteDB_2009_01_07_Wed_LiteSpeed_Full.BKP’ 
WITH 
    MOVE ‘O1_SITEDB’ TO ‘S:\OSiteDB_Data.mdf’, 
    MOVE ‘O1_SITEDB_Log’ TO ‘C:\OSiteDB_Log.ldf’ 

/*If there is no error in statement before database will be in multiuser mode. 
If error occurs please execute following command it will convert 
database in multi user.*/ 
ALTER DATABASE OSiteDB SET MULTI_USER 
GO 

Modifier la destination du fichier LDF et de voir ce qui se passe.

2

Vous devez restaurer le LDF ainsi que le MDF. Le journal fait partie intégrante de la base de données: il ne s'agit pas d'une "base de données" au sens RDBMS.

En cas d'urgence, vous devez brancher un disque externe ou restaurer dans un dossier compressé NTFS. Ensuite, vous pouvez réduire les fichiers de base de données. Cependant, ceci est seulement une solution rapide et vous allez ainsi vous pouvez le faire correctement.

+0

Et pour clarifier - un dossier compressé NTFS n'est pas recommandé pour les serveurs de production. Ça va être une performance laide. –

+0

Bon point. Absolument. C'est une solution de contournement * seulement * pour lancer une action corrective – gbn