2013-08-19 12 views
33

के .mdf और .ldf फ़ाइलों से डेटाबेस पुनर्स्थापित कर रहा है मैं स्थापना रद्द करने की एसक्यूएल सर्वर 2008 R2 है किसी कारण से लेकिन यह है कि इससे पहले कि मैंएसक्यूएल सर्वर 2008

सी से मेरी डेटाबेस के दो फ़ाइलें (.mdf और .ldf) की नकल की : \ Program Files (x86) \ Microsoft SQL सर्वर \ MSSQL10_50.MSSQL2008 \ MSSQL \ आंकड़े

अब, सवाल यह है कि, यह मेरे अपने नए स्थापित एसक्यूएल सर्वर 2008 में इन फ़ाइलों से डेटाबेस की वसूली के लिए संभव है आर 2।

यदि हां: तो मैं यह कैसे कर सकता हूं?

+0

हां, आप [डेटाबेस को संलग्न कर सकते हैं] (http://technet.microsoft.com/en-us/library/ms190209.aspx) जब आपके पास दो फाइलें होंगी। –

+0

मैंने ऐसा करने की कोशिश की लेकिन डेटाबेस को अटैच करते समय यह एक त्रुटि हुई। –

+0

त्रुटि कह रही है कि भौतिक फ़ाइल खोलने में असमर्थ। ऑपरेटिंग सिस्टम त्रुटि 5 (एक्सेस अस्वीकृत) एमएसएसएलएल सर्वर त्रुटि 5120 –

उत्तर

81

हां, यह संभव है। कदम हैं:

  1. पहले C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ फ़ोल्डर में .mdf और .ldf फ़ाइल रखो

  2. फिर एसक्यूएल सॉफ्टवेयर करने के लिए जाओ, "डेटाबेस" राइट क्लिक करें और खोलने के लिए विकल्प "अटैच करें" अनुलग्न करें क्लिक डेटाबेस संवाद बॉक्स

  3. C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\ फ़ोल्डर से खोलने के लिए और पता लगाएँ करने के लिए डेटाबेस फ़ाइलें "जोड़ें" बटन पर क्लिक करें

  4. "ठीक" बटन पर क्लिक करें। SQL सर्वर प्रबंधन स्टूडियो .MDF फ़ाइल से डेटाबेस लोड करता है।

10

पहली Google खोज ने मुझे यह उत्तर दिया। तो मैंने इसे संलग्न करने के नए संस्करण के साथ अद्यतन करने का विचार किया, अलग करें।

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

इसके अलावा, यदि आपके डेटाबेस सफाई से बंद है (वहाँ कोई सक्रिय लेनदेन जबकि डेटाबेस बंद था कर रहे हैं) और आप न लॉग फ़ाइल है, तो आप विधि नीचे का उपयोग कर सकते, एसक्यूएल सर्वर ने एक नया लेनदेन लॉग फ़ाइल पैदा करेगा ..

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

अगर आप लेन-देन लॉग फ़ाइल निर्दिष्ट नहीं करते हैं, एसक्यूएल डिफ़ॉल्ट पथ में देखने के लिए कोशिश करेंगे और यह है कि क्या डेटाबेस सफाई से बंद था या नहीं पर ध्यान दिए बिना उपयोग करने का प्रयास होगा ..

यहाँ क्या है MSDN इस बारे में कहना है ..

यदि रीड-राइट डेटाबेस में एक एकल लॉग फ़ाइल है और आप लॉग फ़ाइल के लिए कोई नया स्थान निर्दिष्ट नहीं करते हैं, तो अटैचमेंट ऑपरेशन फ़ाइल के पुराने स्थान में दिखता है। यदि यह पाया जाता है, तो पुराने लॉग फ़ाइल का उपयोग किया जाता है, इस पर ध्यान दिए बिना कि डेटाबेस को बंद कर दिया गया था या नहीं। हालांकि, अगर पुरानी लॉग फ़ाइल नहीं मिली है और यदि डेटाबेस को साफ़ रूप से बंद कर दिया गया है और इसमें कोई सक्रिय लॉग श्रृंखला नहीं है, तो अटैचमेंट ऑपरेशन डेटाबेस के लिए एक नई लॉग फ़ाइल बनाने का प्रयास करता है।

इस दृष्टिकोण के साथ कुछ प्रतिबंध रहे हैं और कुछ पक्ष भी प्रभावित करता है ..

डेटाबेस
2.Database भरोसेमंद के लिए दोनों को निष्क्रिय पार डेटाबेस स्वामित्व श्रृंखलन 1.attach और अलग आपरेशन
3 पर सेट है।केवल पढ़ने के लिए डेटाबेस को अलग करना अलग-अलग बैकअप के अंतर-आधारों के बारे में जानकारी खो देता है।

अधिकांश importantly..you किसी पुराने संस्करण पर हाल के संस्करण के साथ एक डेटाबेस अनुलग्न नहीं कर सकते

संदर्भ:
https://msdn.microsoft.com/en-in/library/ms190794.aspx

+0

पूर्ण-स्टॉप के साथ क्या है? – cybermonkey

+1

@cybermonkey: कुछ स्वरूपण समस्या, याद नहीं कर सकते, लेकिन अब – TheGameiswar

+0

वोहा अपडेट किया गया था, जो .. जल्दी था। अक्सर जब मैं इस तरह की चीजें टिप्पणी करता हूं, तो लेखक इस मुद्दे को ठीक करने के लिए परेशान नहीं होता है। – cybermonkey

7

एक स्क्रिप्ट से (एक है कि काम करता है):

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 

स्पष्ट रूप से पथ अपडेट करें:

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

जहाँ आपके .mdf और .ldf रहते हैं करने के लिए

0
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' 
4

मेरे पास आपके लिए जवाब है हाँ, यह संभव है।

एसक्यूएल सर्वर प्रबंधन स्टूडियो> का चयन करने के लिए डाटाबेस जाएं> पर

देते हैं तो फिर का चयन करें और .mdf और .ldf फ़ाइल जोड़ने के लिए क्लिक करें। ठीक पर क्लिक करें।

संबंधित मुद्दे