डिवाइस पर मीडिया परिवार गलत तरीके से बनता है। SQL सर्वर इस मीडिया परिवार को संसाधित नहीं कर सकता है


31

मैं SQL सर्वर में .BAK को पुनर्स्थापित करने का प्रयास कर रहा हूं, लेकिन निम्न त्रुटि प्राप्त करता है:

Msg 3241, स्तर 16, राज्य 7, पंक्ति 1 डिवाइस 'c: \ glyn \ JA.bak' पर मीडिया परिवार गलत तरीके से बनता है। SQL सर्वर इस मीडिया परिवार को संसाधित नहीं कर सकता है। Msg 3013, लेवल 16, स्टेट 1, लाइन 1 RESTORE DATABASE असामान्य रूप से समाप्त हो रहा है।

मैंने 2012, 2008 और यहां तक ​​कि 2005 का उपयोग करके पुनर्स्थापित करने की कोशिश की है, लेकिन कुछ भी काम नहीं करता है, मैंने निम्नलिखित क्वेरी का उपयोग किया है और Tasks >> Back upकुछ भी नहीं के माध्यम से काम करता है, यहां मेरा SQL है:

RESTORE DATABASE JA FROM DISK='c:\glyn\JA.bak'

क्या किसी के पास कोई सुझाव है? मैंने पढ़ा है कि बेक भ्रष्ट हो सकता है, इसे मेरे एक अन्य डेवलपर ने डीवीडी पर भेजा था जो प्रोजेक्ट पर काम कर रहा है।


जवाबों:


12

यदि आप पुराने SQL संस्करण में नए डेटाबेस को पुनर्स्थापित करने का प्रयास कर रहे हैं, तो आप हमेशा पुराने SQL संस्करण में डेटाबेस को मैन्युअल रूप से बना सकते हैं और कार्य का उपयोग कर सकते हैं - स्क्रिप्ट उत्पन्न कर सकते हैं और डेटा शामिल कर सकते हैं।

फ़ाइल में सहेजें -> उन्नत -> स्क्रिप्ट के लिए डेटा के प्रकार -> स्कीमा और डेटा

सर्वर संस्करण के लिए स्क्रिप्ट भी सुनिश्चित करें ।

यदि आप नए SQL सर्वर से पुराने संस्करण में जाने का प्रयास कर रहे हैं तो यह एकमात्र समर्थित विकल्प हो सकता है।

संबंधित: SQL Server 2008 डेटाबेस के लिए SQL Server 2012 बैकअप पुनर्स्थापित करें?


एक हैक की तरह लगता है, लेकिन मुझे लगता है कि यह मेरे मामले में इस मुद्दे के आसपास काम करता है।
जिपरसन

7

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

और यह ब्लॉग जो यह बताता है कि किसी और ने उसी समस्या को कैसे ठीक किया।


8
"सूचीबद्ध करता है कि किसी और ने एक ही समस्या कैसे तय की है" आम तौर पर एसई नेटवर्क साइटों पर आपको ब्लॉग पोस्ट जैसी चीजों के प्रासंगिक बिट्स पोस्ट करना चाहिए; यह लिंक क्षय को रोकता है
jcollum

6

मुझे एक ही समस्या थी, मेरी स्क्रिप्ट गलत FILE प्रकार को निर्दिष्ट कर रही थी, मेरे पास एक थी .bakऔर मैं निर्दिष्ट कर रहा था कि कौन FILE = 2सी है .trn

USE [master]
RESTORE DATABASE [MyNewDB] FROM
DISK = N'D:\MyOldDB.bak'
WITH
    FILE = 1, -- 1 = .bak, 2 = .trn type backup
    MOVE N'MyOldDB' TO N'd:\data\MyOldDB.mdf',
    MOVE N'MyOldDB_log' TO N'd:\data\MyOldDB_log.ldf',
    NOUNLOAD,
    STATS = 5    
GO

मुझे यकीन नहीं है कि अगर RESTORE कमांड ऑटो का पता लगाता है या इसके लिए एक डिफ़ॉल्ट सेट करता है ...


1
त्रुटि इसके चारों ओर घूमती है, समस्या यह है कि जब आप डेटाबेस को पुनर्स्थापित करने के लिए GUI का उपयोग करते हैं, तो SQL प्रबंधन स्टूडियो आपको विस्तृत जानकारी प्रदान नहीं करता है। यदि आप t-sql स्क्रिप्ट का उपयोग करके पुनर्स्थापित करने का प्रयास करते हैं, तो sql सर्वर आपको MOVE विकल्प का उपयोग करने के लिए रिपोर्ट करेगा।
dlopezgonzalez

5

स्रोत और गंतव्य SQL सर्वर पर निम्न स्क्रिप्ट चलाएँ, संस्करणों को या तो मेल खाना चाहिए या गंतव्य में SQL सर्वर का उच्च संस्करण होना चाहिए अन्यथा आप .bak फ़ाइल को पुनर्स्थापित नहीं कर सकते हैं:

SELECT @@Version

1
संस्करणों के बारे में बिंदु अन्य उत्तरों में दोहराया गया है।
एंड्री एम

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


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.