এমডিএফ বা বেক ফাইল তৈরি করতে ব্যবহৃত এসকিউএল সার্ভারের সংস্করণ নির্ধারণের জন্য কি কোনও উপায় আছে?


19

আমার কাছে একটি এসকিউএল সার্ভার ডিবি-র একটি স্থানীয় অনুলিপি আছে যা এমডিএফ ফাইল হিসাবে সঞ্চয় করা আছে। এসকিউএল সার্ভারের কোন সংস্করণটি ফাইলটি তৈরি করতে ব্যবহৃত হয়েছিল তা বলার উপায় আছে?

উত্তর:


8

অফসেট 0x12064 এ দুটি বাইট দেখে আপনি একটি ডাটাবেসের প্রাথমিক এমডিএফ ফাইলের সংস্করণ নির্ধারণ করতে পারেন। এমডিএফ ফাইলের ডাটাবেস সংস্করণটি কীভাবে নির্ধারণ করা যায় তা দেখুন ।

ইন .bakফাইল নিচের বাইট 0xEAC হয় এবং উচ্চতর 0xEAD হয়।

আপনি মাইক্রোসফট SQL এর জন্য সবচেয়ে অভ্যন্তরীণ ডাটাবেসের সংস্করণ সংখ্যা জানতে পারেন এখানে


1
বিঃদ্রঃ! এটি এমএস এসকিউএল এর x64 সংস্করণে আলাদা বলে মনে হচ্ছে। সব ক্ষেত্রে 4 টি ব্লক রয়েছে - এসএফএমবি, এসএসইটি, ভিওএলবি, এমএসসিআই। সংস্করণটি এমএসসিআই ব্লকে রয়েছে। সমস্যা হ'ল ব্লকের আকার ধ্রুবক নয়। ভাগ্যক্রমে মনে হচ্ছে ব্লকের আকার 512 (0x200) দ্বারা বিভক্ত করা যেতে পারে। সুতরাং কেবল প্রতি 512 বাইট অনুসন্ধান করুন এবং "এমএসসিআই" সন্ধান করুন। তারপরে লো বাইটের জন্য 172 বাইট (0xAC) এবং উচ্চ বাইটের জন্য পরবর্তী বাইটের জন্য ঝাঁপুন।
নাক্স

22

পুনরুদ্ধার পুনরুদ্ধার করুন, উদাহরণস্বরূপ

RESTORE HEADERONLY FROM DISK = 'D:\whatever.bak'

আপনি প্রচুর কলাম পাবেন তবে আগ্রহের বিষয়গুলি হ'ল সফটওয়্যার ভার্সনমজর, সফটওয়্যার ভার্সনমিনিসর এবং সফটওয়্যার ভার্সনবিল্ড, যা আপনাকে এসকিউএল সার্ভারের সংস্করণ নম্বর দেবে। আমাদের সিস্টেমে উদাহরণস্বরূপ, এটি 10, 0 এবং 4000, যার অর্থ 10.0.4000 (২০০৮ এসপি 2)।

নিশ্চিত না যে আপনি সার্ভারটি যে সংস্করণটি চলছে তার সংস্করণে পুনরুদ্ধার করতে খুব পুরানো ব্যাকআপের সাহায্যে এটি করার চেষ্টা করলে কী হবে তা - তবে আপনি সম্ভবত একটি ত্রুটি এবং কোনও তথ্য পেতে পারেন (যদিও এটি নিজেই কমপক্ষে কিছু সংকেত সরবরাহ করবে) সংস্করণ এটি থেকে)।


1
আমি এটি চেষ্টা করতে যাচ্ছিলাম, তবে আমার কাছে কোনও ব্যাকআপ ডিভাইস সেট আপ নেই :-( এই পরামর্শের জন্য ধন্যবাদ, যদিও!
বেন ম্যাককর্ম্যাক

1
নোট করুন যে আপনি যখন এসকিউএল ২০০৮
নূস

6

এমডিএফ ফাইলগুলির জন্য এই কমান্ডটি ব্যবহার করে দেখুন:

dbcc checkprimaryfile ('c:\MyApp\AppData\foo.mdf', 2)

এটা তোলে আউটপুট মান 3 বৈশিষ্ট্য হবে: Database name, Database versionএবং Collation

সিনট্যাক্সটি অনুসরণ করছে (কমান্ডটি অননুমোদিত, সুতরাং এখানে আরও তথ্য ):

ডিবিসিসি চেকপ্রিমিমারফাইলে (File 'ফাইলের নাম'} [, opt = {0 | 1 | 2 | 3}])

ফাইলের নাম এসকিউএল সার্ভার ডাটাবেস প্রাথমিক ডেটা ফাইল .mdf ফাইলের আসল পথ ব্যতীত আর কিছুই নয়।

Opt = 0 - ফাইলটি একটি এসকিউএল সার্ভার ডাটাবেস প্রাথমিক ডেটা ফাইল (.mdf) কিনা তা যাচাই করে।

অপ্ট = 1 - ডাটাবেস সম্পর্কিত সমস্ত ফাইলের ডাটাবেসের নাম, আকার, সর্বোচ্চ আকার, বৃদ্ধি, স্থিতি এবং পাথ ফেরত দেয়।

অপ্ট = 2 - ডাটাবেসের নাম, সংস্করণ এবং কোলেশন সম্পর্কিত তথ্য ফেরত দেয়।

Opt = 3 - ডাটাবেসের সাথে সম্পর্কিত সমস্ত ফাইলের নাম, স্থিতি এবং পথ ফেরত দেয়।


1
আপনি আপনার উত্তরে একটি ব্যাখ্যা যুক্ত করতে চাইতে পারেন যাতে এটি আরও অর্থবোধ করে।
ড্র খুরি

0

ভাল প্রশ্ন! আমি এরূপ বিশ্বাস করি না - বলুন - এসকিউএল সার্ভার ২০০ 2008 আর -২ ব্যাকআপ ফাইলটি এসকিউএল সার্ভার ২০০ onto-এ পুনরুদ্ধার করার চেষ্টা করছি - স্পষ্টতই, এটি কাজ করবে না। ম্যানেজমেন্ট স্টুডিও ব্যবহার করা এবং পুনরুদ্ধারের জন্য সামগ্রীর বোতামে ক্লিক করা - আপনাকে আকর্ষণীয় কিছু দেখিয়ে দেবে কিনা তা আমি মনে করতে পারি না।

আমি সেগুলি চেষ্টা করে দেখিনি, তবে এটি সম্ভব যে রেড গেটের ভার্চুয়াল পুনরুদ্ধারের মতো কোনও তৃতীয় পক্ষের সরঞ্জাম আপনাকে বলবে - এটি আপনাকে ব্যাকআপ ফাইলটির "ভিতরে" ডাটাবেসটি দেখার অনুমতি দেয়। http://www.red-gate.com/products/dba/sql-virtual-restore/



0

এটি করার সর্বোত্তম উপায়ে এসকিউএল সার্ভার এমএসডিএন ফোরামে এই পোস্টটি থেকে সংগ্রহ করা হয়েছিল ।

মূলত এর মধ্যে ফাইলটি প্রবেশ করা এবং এমডিএফ ফাইলের বুট পৃষ্ঠাটি পরীক্ষা করা জড়িত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.