La restauration de la base de données.mdf et.fichiers ldf de SQL Server 2008

pour une raison quelconque, je dois désinstaller SQL Server 2008 R2 mais avant cela, j'ai copié deux fichiers (.mdf et .ldf) de ma base de données de

<!-2 C:Program fichiers (x86)Microsoft SQL ServerMSSQL10_50.MSSQL2008MSSQLDATA

maintenant, la question Est, est-il possible pour moi de récupérer la base de données à partir de ces fichiers dans mon nouveau SQL Server 2008 R2 installé.

Si oui: alors comment puis-je faire cela?

37
demandé sur radbyx 2013-08-19 12:43:25

5 réponses

Oui, c'est possible. Les étapes sont les suivantes:

  1. mettez D'abord le .mdf et .ldf fichier C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ dossier

  2. puis allez dans le logiciel sql, cliquez avec le bouton droit de la souris sur " Bases de données "et cliquez sur L'option" Attach "pour ouvrir la boîte de dialogue "Attach Databases"

  3. cliquez sur le bouton" Ajouter " pour ouvrir et localiser les fichiers de la base de données à partir de C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\dossier

  4. cliquez sur le bouton" OK". SQL Server Management Studio charge le base de données de l' .MDF fichier.

85
répondu sridhar 2016-06-15 10:34:10

première recherche google m'a donné cette réponse. Donc j'ai pensé mettre à jour ceci avec une nouvelle version d'attach, detach.

Create database dbname 
On 
(   
Filename= 'path where you copied files',   
Filename ='path where you copied log'
)
For attach; 

en outre,si votre base de données est proprement shutdown(il n'y a pas de transactions actives pendant que la base de données était shutdown) et que vous n'avez pas de fichier journal,vous pouvez utiliser la méthode ci-dessous, SQL server va créer un nouveau fichier journal des transactions..

Create database dbname 
    On 
    (   
    Filename= 'path where you copied files'   
    )
    For attach; 

si vous ne spécifiez pas le fichier journal des transactions,SQL va essayer de regarder dans le chemin par défaut et va essayer de l'utiliser indépendamment de la base de données a été proprement arrêt ou pas..

Ici MSDN a à dire à ce sujet..

si une base de données en lecture-écriture a un seul fichier journal et que vous ne spécifiez pas un nouvel emplacement pour le fichier journal, l'opération d'attache cherche dans l'ancien emplacement pour le fichier. S'il est trouvé, l'ancien fichier journal est utilisé, indépendamment du fait que la base de données a été fermée correctement. Toutefois, si l'ancien fichier journal n'est pas trouvé et si la base de données a été fermer proprement et n'a pas de chaîne de log actif, l'opération d'attache tente de construire un nouveau fichier de log pour la base de données.

il y a quelques restrictions avec cette approche et certains effets secondaires aussi..

1.opérations de saisie et de saisie les deux désactivation de la propriété croisée de la base de données chaînage pour la base de données

2.Base de données digne de confiance est définie à off

3.Détacher une base de données en lecture seule perd des informations sur le différentiel bases de sauvegardes différentielles.

le Plus important..vous ne pouvez pas attacher une base de données avec des versions récentes à une version antérieure

References:

https://msdn.microsoft.com/en-in/library/ms190794.aspx

10
répondu TheGameiswar 2016-07-24 14:32:32

à Partir d'un script (celui qui fonctionne):

CREATE DATABASE Northwind
ON ( FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\Northwind.mdf' )
LOG ON ( FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\Northwind_log.ldf')
GO

évidemment mettre à jour le chemin:

C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA

à votre destination .mdf et .ldf réside.

9
répondu jenson-button-event 2016-09-10 02:58:33

j'ai une réponse pour vous Oui, c'est possible.

SQL Server Management Studio > sélectionner la Base de données > cliquez sur joindre

puis sélectionnez et ajoutez .mdf et .fichier ldf. Cliquez sur OK.

6
répondu Adam John 2017-02-16 10:50:15
use test
go
alter proc restore_mdf_ldf_main (@database varchar(100), @mdf varchar(100),@ldf varchar(100),@filename varchar(200))
as
begin 
begin try
RESTORE DATABASE @database FROM DISK = @FileName
with norecovery,
MOVE @mdf TO 'D:\sql samples\sample.mdf',
MOVE @ldf TO 'D:\sql samples\sample.ldf'
end try
begin catch
SELECT ERROR_MESSAGE() AS ErrorMessage;
print 'Restoring of the database ' + @database + ' failed';
end catch
end

exec restore_mdf_ldf_main product,product,product_log,'c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\product.bak'
0
répondu Sarfaraz Kazi 2016-05-11 08:44:04