sql server - बैकअप सेट में मौजूदा के अलावा किसी अन्य डेटाबेस का बैकअप होता है




sql-server (14)

1) RESTORE कमांड का उपयोग करते समय स्थान के WITH REPLACE उपयोग करें।

2) पुराना डेटाबेस Delete जो विरोधाभासी है और RESTORE आदेश का उपयोग करके फिर से बहाल करें।

अधिक जानकारी के लिए link देखें।

मैं अपने डेटाबेस के लिए एक SQL सर्वर बैकअप फ़ाइल को पुनर्स्थापित करने का प्रयास कर रहा हूं, लेकिन यह एक त्रुटि को फेंकने के रूप में फेंक रहा है:

बैकअप सेट में मौजूदा के अलावा किसी अन्य डेटाबेस का बैकअप होता है

SQL सर्वर 2008 और बैकअप फ़ाइल में मेरा डेटाबेस 2005 में है।

क्या समस्या हो सकती है?


आप एक नए डीबी में पुनर्स्थापित कर सकते हैं, फ़ाइल नाम सिंटैक्स को सत्यापित कर सकते हैं, यह लॉग फ़ाइल में होगा, क्योंकि नया SQL संस्करण "_log" प्रत्यय होगा

विज्ञापन विकल्प टैब में मौजूदा डेटाबेस ध्वज को ओवरराइट करने की जांच करें

फैबियो


इसकी वजह यह है कि मूल Db से .mdf और .ldf फ़ाइलें शायद c:\programFile\.... पर स्थित थीं और यह जानकारी बैकअप में सहेजी गई है!

यदि आप एक अलग SQL सर्वर पर एक ही डीबी बनाते हैं जहां स्थापना c:\program Files (x86)\ .... तो आप आमतौर पर पुनर्स्थापित नहीं कर सकते हैं। आपको .mdf और .ldf फ़ाइलों के लिए पथ स्थानांतरित करने की आवश्यकता है।

इसलिए:

  • नए सर्वर पर एक खाली डीबी बनाएँ

  • खाली डीबी> कार्य> पुनर्स्थापित> डेटाबेस> राइट क्लिक करें डिवाइस पर क्लिक करें अपनी .bak फ़ाइलें> पुनर्स्थापित करने के लिए डीबी का चयन करें

  • बाईं तरफ फ़ाइलों पर क्लिक करें> "फ़ोल्डर में सभी फाइलों को स्थानांतरित करें" का चयन करें
  • बाएं साइट पर विकल्प क्लिक करें> ओवरराइट पर क्लिक करें

किया हुआ!
आशा करता हूँ की ये काम करेगा!


एसएसएमएस 2014 का उपयोग करके, एक ही समस्या का सामना करना पड़ रहा है और इसे हल करके समाधान मिला है

- Just select the Option Overwrite the existing database(WITH REPLACE) 


जेनरेट स्क्रिप्ट का उपयोग करके, मैंने वैकल्पिक तरीके से काम किया। यह मेरे लिए काम करता था क्योंकि बैकअप-पुनर्स्थापना एक ही त्रुटि के कारण समस्या को हल करने में मदद नहीं करता था।


पहले एक ही नाम का रिक्त डेटाबेस बनाएं। फिर पुनर्स्थापित विकल्प के लिए जाओ

बाएं फलक पर विकल्पों के तहत चयन करना न भूलें

  • मौजूदा डेटाबेस को ओवरराइट करें
  • प्रतिकृति सेटिंग्स को संरक्षित करें

बस


मुझे यकीन है कि यह समस्या फाइलों और फ़ोल्डर्स अनुमतियों से संबंधित है।


मेरे साथ एक ही मुद्दा। मेरे लिए समाधान है:

  1. डेटाबेस पर राइट क्लिक करें।
  2. कार्यों का चयन करें, डेटाबेस पुनर्स्थापित करें का चयन करें।
  3. बाईं तरफ के विकल्प पर क्लिक करें।
  4. पहले विकल्प को जांचें मौजूदा डेटाबेस ओवरराइट करें (प्रतिस्थापन के साथ)।
  5. सामान्य पर जाएं, स्रोत और गंतव्य डेटाबेस का चयन करें।
  6. ठीक क्लिक करें, यही वह है

मैं एक ही सर्वर पर एक स्टेजिंग डेटाबेस में एक उत्पादन डेटाबेस बहाल करने की कोशिश कर रहा था।

मेरे मामले में काम करने वाली एकमात्र चीज एक नए खाली डेटाबेस में बहाल कर दी गई थी। यह बहुत अच्छा काम करता है, उत्पादन फ़ाइलों को ओवरराइट करने की कोशिश नहीं करता (जो कि अगर आप मौजूदा स्टेजिंग डेटाबेस में केवल उत्पादन बैकअप फ़ाइल को पुनर्स्थापित करते हैं)। फिर पुराने डेटाबेस को हटाएं और नाम बदलें - फाइलें नए अस्थायी नाम रखेंगे लेकिन मेरे मामले में यह ठीक है।

(या अन्यथा स्टेजिंग डेटाबेस को पहले हटाएं और फिर आप स्टेजिंग डेटाबेस के समान नाम के साथ नए डेटाबेस में पुनर्स्थापित कर सकते हैं)


मैं बस इस मुद्दे को हल करने की कोशिश कर रहा था।

मैंने यहां और अन्य जगहों पर दिए गए सुझावों के माध्यम से व्यवस्थापक के रूप में चलने से सब कुछ करने की कोशिश की थी; अंत में मेरे लिए यह हल किया गया था कि फाइल प्रॉपर्टी टैब में "स्थानांतरित करें" विकल्प को चेक करें।

उम्मीद है कि यह किसी और की मदद करता है।


यदि आप स्क्रिप्ट दृष्टिकोण का उपयोग कर रहे हैं और एलडीएफ और एमडीएफ फाइलों से संबंधित कोई त्रुटि है, तो आप पहले बैकअप सेट में फ़ाइलों के तार्किक नाम (और अन्य विवरण) के लिए बैकअप फ़ाइल से पूछ सकते हैं :

-- Queries the backup file for the file list in backup set, where Type denotes 
-- type of file. Can be L,D,F or S
-- info: https://docs.microsoft.com/en-us/sql/t-sql/statements/restore-statements-filelistonly-transact-sql
RESTORE FILELISTONLY FROM DISK = 'C:\Temp\DB_backup.bak'
GO

आपको निम्न के परिणाम मिलेंगे:

और फिर आप प्रश्नों में उन तार्किक नामों का उपयोग कर सकते हैं:

    -- Script assumes you want MDF and LDF files restored on separate drives. Modify for your scenario
    RESTORE DATABASE DB 
    FROM DISK='C:\Temp\DB_backup.bak'
    WITH REPLACE,
      MOVE 'DB' TO 'E:\MSSQL\Data\DB.mdf', -- "DB" is the mdf logical name from query above
      MOVE 'DB_log' TO 'F:\MSSQL\Logs\DB.mdf'; -- "DB_log" is LDF logical name from query above

RESTORE FILELISTONLY को RESTORE FILELISTONLY अधिक जानकारी SQL सर्वर दस्तावेज़ों से मिल सकती है


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


सरल 3 कदम:

1- डेटाबेस> कार्य> पुनर्स्थापित> डेटाबेस पर राइट क्लिक करें

2- स्रोत के रूप में डिवाइस की जांच करें और .bak फ़ाइल का चयन करें

3- विकल्पों पर क्लिक करें और इन तीन चेकमार्क जांचें:

  1. मौजूदा डेटाबेस ओवरव्राइट की जांच करें।
  2. पुनर्स्थापित करने से पहले पूंछ लॉग बैकअप अनचेक करें
  3. गंतव्य डेटाबेस के लिए मौजूदा कनेक्शन बंद करें।
  4. अन्य विकल्प वास्तव में वैकल्पिक हैं!

USE [master];
GO

CREATE DATABASE db;
GO

CREATE DATABASE db2;
GO

BACKUP DATABASE db TO DISK = 'c:\temp\db.bak' WITH INIT, COMPRESSION;
GO

RESTORE DATABASE db2
  FROM DISK = 'c:\temp\db.bak'
  WITH REPLACE,
  MOVE 'db' TO 'c:\temp\db2.mdf',
  MOVE 'db_log' TO 'c:\temp\db2.ldf';






sql-server