Ripristino del database da file .mdf e .ldf di SQL Server 2008

Per qualche motivo devo disinstallare SQL Server 2008 R2 ma prima ho copiato due file ( .mdf e .ldf ) del mio database da

C: \ Programmi (x86) \ Microsoft SQL Server \ MSSQL10_50.MSSQL2008 \ MSSQL \ DATA

Ora, la domanda è, è ansible per me recuperare il database da questi file nel mio nuovo SQL Server 2008 R2 installato.

Se sì: allora come posso fare questo?

Sì, è ansible. I passaggi sono:

  1. Prima metti il ​​file .mdf e .ldf in C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ folder

  2. Quindi andare al software SQL, fare clic con il tasto destro del mouse su “Database” e fare clic sull’opzione “Allega” per aprire la finestra di dialogo Allega database

  3. Fare clic sul pulsante “Aggiungi” per aprire e individuare i file del database dalla cartella C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\

  4. Fai clic sul pulsante “OK”. SQL Server Management Studio carica il database dal file .MDF .

La prima ricerca su google mi ha dato questa risposta. Quindi ho pensato di aggiornare questo con la versione più recente di attach, staccare.

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

Inoltre, se il database è chiuso in modo pulito (non ci sono transazioni attive mentre il database è stato chiuso) e non si dispone del file di registro, è ansible utilizzare il metodo seguente, il server SQL creerà un nuovo file di registro delle transazioni.

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

se non si specifica il file di registro delle transazioni, SQL proverà a cercare nel percorso predefinito e proverà a utilizzarlo indipendentemente dal fatto che il database sia stato arrestato o meno.

Ecco cosa MSDN ha da dire su questo ..

Se un database di lettura-scrittura ha un singolo file di registro e non si specifica una nuova posizione per il file di registro, l’operazione di collegamento cerca nella vecchia posizione del file. Se viene trovato, viene utilizzato il vecchio file di registro, indipendentemente dal fatto che il database sia stato chiuso in modo pulito. Tuttavia, se il vecchio file di registro non viene trovato e se il database è stato chiuso in modo pulito e non ha una catena di log triggers, l’operazione di collegamento tenta di creare un nuovo file di registro per il database.

Ci sono alcune restrizioni con questo approccio e alcuni effetti collaterali anche ..

Le operazioni 1.attach-and-detach disabilitano entrambi il concatenamento della proprietà tra database per il database
2. Il database attendibile è distriggersto
3. Il raggruppamento di un database di sola lettura perde informazioni sulle basi differenziali dei backup differenziali.

Ancora più importante … non è ansible colbind un database con versioni recenti a una versione precedente

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

Da una sceneggiatura (una che funziona):

 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 

ovviamente aggiorna il percorso:

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

Dove risiedono il tuo .mdf e .ldf.

Ho una risposta per te Sì, è ansible.

Vai a

SQL Server Management Studio> selezionare Database> fare clic su Connetti

Quindi seleziona e aggiungi il file .mdf e .ldf. Clicca su OK.

 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'