2011-06-02 16 views
23

से डेटाबेस बनाएं/पुनर्स्थापित करें मेरे पास मेरी मशीन पर SQL सर्वर प्रबंधन स्टूडियो नहीं है।बैकअप SQL सर्वर एक्सप्रेस

मेरे पास डेटाबेस बैकअप (SQL Server 2008 R2) है। SQL सर्वर एक्सप्रेस है जो मेरी मशीन पर विजुअल स्टूडियो 2010 परम स्थापित है।

मैं इसे डेटाबेस पर बैक अप कैसे पुनर्स्थापित कर सकता हूं और इसे SQL सर्वर एक्सप्रेस से जोड़ सकता हूं?
क्या एसक्यूएल मैनेजमेंट स्टूडियो एक्सप्रेस का उपयोग कर कोई समाधान है?

उत्तर

29

SQL सर्वर प्रबंधन स्टूडियो एक्सप्रेस के साथ भी, आप इस बैकअप को पुनर्स्थापित करने में सक्षम नहीं होंगे। विजुअल स्टूडियो 2010 के साथ स्थापित संस्करण संस्करण संस्करण SQL सर्वर का है - आपका बैकअप SQL सर्वर 2008 R2 रिलीज़ से एक है - उन बैकअप को 2008 संस्करण पर पुनर्स्थापित नहीं किया जा सकता है।

आपको SQL Server 2008 R2 Express version डाउनलोड करने की आवश्यकता होगी, और जब आप इसमें हों - प्रबंधन स्टूडियो के साथ संस्करण प्राप्त करें! इसे स्थापित करें, और फिर आप अपने डेटाबेस बैकअप को पुनर्स्थापित करने में सक्षम होंगे।

तुम सच में वास्तव में Mgmt स्टूडियो का उपयोग किए बिना अपने डेटाबेस पुनर्स्थापित करना चाहते हैं - आप निश्चित रूप से टी SQL में एक RESTORE कथन का उपयोग और sqlcmd command line tool का उपयोग कर इस चला सकते हैं:

RESTORE DATABASE YourDatabaseName 
FROM DISK = N'(path to your BAK file)' 
WITH FILE = 1, 
MOVE N'(your DB name)' TO N'(your SQL path)database.MDF', 
MOVE N'(your DB name)_LOG' TO N'(your SQL path)database_LOG.LDF', 
NOUNLOAD, 
REPLACE, 
STATS = 10 
GO 

(और निश्चित रूप से, वहाँ एक BACKUP command जो आप एक ही फैशन में उपयोग कर सकते हैं - MSDN Books Online सिंटैक्स के बारे में विवरण के लिए आपका मित्र है !!)।

+0

से इसे कैसे करना है यह दिखाने के लिए मैंने अपना समाधान अपडेट किया है क्या आर 2 विजुअल स्टूडियो 2010 परम के बाद जारी किया गया है? – Shahin

+1

@शाहिन: हाँ - वीएस 2010 को –

+1

पैक करने के बाद इसे जारी किया गया था असल में आप केवल वीएस 2010 क्वेरी विंडो में कोड कॉपी और पेस्ट कर सकते हैं, और इसे निष्पादित कर सकते हैं। कोई प्रबंधन स्टूडियो आवश्यक नहीं है और आपको कमांड लाइन दर्ज करने की आवश्यकता नहीं है। लोगों को चिंता करने की आवश्यकता है कि यह बैकअप से पहले पूर्ण टेक्स्ट कैटलॉग को बेहतर छोड़ देता है (उत्पादन डीबी के लिए आप मूल डीबी का क्लोन बना सकते हैं और क्लोन में कैटलॉग छोड़ सकते हैं) क्योंकि ऐसा लगता है (मुझे पूरा यकीन नहीं है) कि SQL एक्सप्रेस पूर्ण पाठ अनुक्रमण का समर्थन नहीं करता है। –

12

आपको एसक्यूएल मैनेजमेंट स्टूडियो एक्सप्रेस क्यों नहीं मिलता है? यह मुफ़्त है, और आपको स्थानीय एसक्यूएल एक्सप्रेस उदाहरणों को प्रशासित करने की अनुमति देनी चाहिए।

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796

BACKUP DATABASE [AdventureWorks] TO 
    DISK = N'\\nas\Backup\L40\SQL2005\AdventureWorks_backup_200702120215.bak' 
    WITH NOFORMAT, NOINIT, NAME = N'AdventureWorks-Full Database Backup', 
    SKIP, NOREWIND, NOUNLOAD, STATS = 10 

RESTORE DATABASE [AdventureWorksNew] 
    FROM DISK = N'\\nas\Backup\L40\SQL2005\AdventureWorks_backup_200702120215.bak' 
    WITH FILE = 1, 
    MOVE N'AdventureWorks_Data' TO N'C:\Data\MSSQL.1\MSSQL\Data\AdventureWorksNew_Data.mdf', 
    MOVE N'AdventureWorks_Log' TO N'C:\Data\MSSQL.1\MSSQL\Data\AdventureWorksNew_Log.ldf', 
    NOUNLOAD, STATS = 10 
+0

इसका अच्छा तरीका संबद्ध नहीं हूँ ... लेकिन वहाँ wihout एसक्यूएल प्रबंधन स्टूडियो एक्सप्रेस किसी भी समाधान है? – Shahin

+2

मैंने एसक्यूएल –

7

निम्नलिखित लिंक marc_s के समान समाधान प्रदान करता है, और यह भी गहरा हो जाता है। मैं नीचे दिए गए लिंक में दिए गए समाधान के साथ बैकअप फ़ाइल से सफलतापूर्वक एक नया डीबी बनाने में सक्षम था।

http://codeonaboat.wordpress.com/2012/02/16/sql-server-2008-creating-a-database-from-a-bak-file/

नीचे समाधान ऊपर दी गई लिंक से नकल है:

  1. SSMS में, डेटाबेस सर्वर के मालिक डेटाबेस में एक प्रश्न विंडो खोलें। यही वह जगह है जहां आप निम्नलिखित प्रश्नों को चलाएंगे।

  2. देखें क्या डेटाबेस .bak फ़ाइल में ऊपर का समर्थन किया गया है की "LogicalName"

    डिस्क से FILELISTONLY पुनर्स्थापित है = 'c: \ DatabaseBackups \ dev2012021601।बक '

यह आपको डेटाबेस और उसके संबंधित लॉग फ़ाइल के तार्किक नाम दे देंगे। मान देता है कि नाम "dbname" और "dbname_log"

  1. अब निम्नलिखित बहाल आदेश चला। सुनिश्चित करें कि जिस नाम से आप बनाने का प्रयास कर रहे हैं उसका डेटाबेस पहले से मौजूद नहीं है (नीचे दिए गए कोड नमूने में, dbForSocialMigration मौजूद नहीं है)।
RESTORE DATABASE dbForSocialMigration 
FROM DISK = 'c:\DatabaseBackups\dev20120307.bak' 
WITH 
MOVE 'dbname' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\dbForSocialMigration.mdf', 
MOVE 'dbname_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\dbForSocialMigration_log.mdf' 

C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA निर्देशिका जहां एसक्यूएल एक्सप्रेस आम तौर पर अपने डेटा फ़ाइलों को रखता है। आप निर्देशिका का पता लगा सकते हैं कि आपका डेटाबेस सर्वर इसका डेटाबेस चुनकर, गुण संवाद पर राइट क्लिक करके खोल रहा है और बाईं ओर से "फ़ाइलें" विकल्प का चयन कर रहा है।

यह काम करना चाहिए, और उस बिंदु पर आप डेटाबेस "dbForSocialMigration" डेटाबेस तक पहुंचने में सक्षम होना चाहिए .bak फ़ाइल से सभी तालिकाओं और डेटा के साथ पॉप्युलेट किया गया है।

16

देर से एक लेकिन आशा है कि यह देखने वाले अन्य लोगों के लिए उपयोगी ...।

यदि समस्या प्रबंधन स्टूडियो के बिना बहाल हो रही है तो इसे आसानी से एसक्यूएलसीएमडी का उपयोग करके सुलझाया जा सकता है क्योंकि marc_s पहले से ही इंगित किया गया है।

हालांकि असली समस्या एसएसएमएस का उपयोग किए बिना SQL 2008 पर 2008 आर 2 बैकअप को पुनर्स्थापित कर रही है, तो केवल समाधान तीसरे पक्ष के औजारों का उपयोग कर रहा है जो बैकअप पढ़ सकते हैं और स्कीमा बनाने और डेटा डालने के लिए स्क्रिप्ट उत्पन्न कर सकते हैं।

आइडिया SQL 2008 पर खाली डेटाबेस बनाना है और 2008 R2 के साथ जेनरेट किए गए बैकअप के साथ तुलना करने के लिए किसी तृतीय पक्ष टूल का उपयोग करना है।

मैं अपने पिछले काम के ApexSQL Diff और ApexSQL Data Diff का उपयोग किया है अच्छा सफलता के साथ लेकिन वहाँ Red Gate से भी अच्छा उपकरण हैं (एसक्यूएल की तुलना करें) और Idera (तुलना टूलसेट)। यदि आप ऑनलाइन देखते हैं तो आपको शायद बहुत कुछ मिल जाएगा ...।

अस्वीकरण: मैं उपर्युक्त कंपनियों में से किसी के साथ

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