এসকিউএল সার্ভার ২০০২ এর সাথে ব্যাকআপের জন্য পশ্চাদপটে সামঞ্জস্য


14

এসকিউএল সার্ভার ২০০৮ এর সাথে আমার বেশ কয়েকটি ক্লায়েন্ট রয়েছে এবং এটি আমার সার্ভারেও আমার কাছে রয়েছে। আমি ক্লায়েন্টদের এবং আমার অফিসে পিছনে পিছনে ডাটাবেসগুলি প্রেরণে ব্যাকআপ ফাইলগুলি ব্যবহার করি।

আমি পড়েছি যে আপনি যখন এসকিউএল সার্ভার 2012 থেকে একটি ব্যাকআপ তৈরি করবেন তখন এটি 2008 এর উদাহরণে পুনরুদ্ধার করার কোনও উপায় নেই। আমি ধরে নিয়েছিলাম যে সামঞ্জস্যতা স্তরটি এই সমস্যার যত্ন নেবে, তবে তা হয় না। অতএব, কীভাবে আপগ্রেড করব সে সম্পর্কে আমি ক্ষতিতে আছি। আমার সমস্ত ক্লায়েন্ট একবারে আপগ্রেড করা ব্যতীত, যা অসম্ভব, আমি এটি করার কোনও পরিষ্কার উপায়ের কথা ভাবতে পারি না।

আমার ক্লায়েন্টের কাছে একটি ডেটাবেস পাঠানোর পাশাপাশি ক্লায়েন্টের কাছ থেকে একটি ডেটাবেস পাওয়ার প্রয়োজন। এটি এসকিউএল সার্ভারে আমার প্রথম সংস্করণ আপগ্রেড, সুতরাং আমি এই সমস্যায় নতুন। কিভাবে এগিয়ে যেতে কোন ধারণা?


4
আপনার এসকিউএল সার্ভার ২০০৮ এর একটি উদাহরণ থাকতে পারে এবং একই সাথে আপনার সার্ভারে বিভিন্ন উদাহরণের নাম সহ ইনস্টল করা এসকিউএল সার্ভার ২০১২ থাকতে পারে। সম্ভবত এটি বিভিন্ন সংস্করণে ক্লায়েন্টদের সাথে আপনার সমস্যাগুলি সমাধান করবে?
মিকেল এরিকসন

তাই একই প্রশ্ন: stackoverflow.com/q/1744808/95710
DForck42

উত্তর:


16

এখানে দুটি জিনিস জড়িত রয়েছে: ফাইলটির সংস্করণ নম্বর এবং সামঞ্জস্যের স্তর। যখন আপনি একটি নতুন প্রধান সংস্করণে (যেমন ২০০৮ থেকে ২০০৮R2, বা ২০০৮R2 থেকে ২০১২ পর্যন্ত) কোনও ডাটাবেস সংযুক্ত করেন তখন ডাটাবেস সংস্করণ স্থায়ীভাবে পরিবর্তিত হয় এবং আপনি সেই ডাটাবেসটিকে আবার কোনও পুরানো সংস্করণে সংযুক্ত করতে পারবেন না।

সামঞ্জস্যতা স্তরটি পুরাতন-স্কুলটিকে অবহিত টি-এসকিউএল পার্স করার জন্য যা এসকিউএল সার্ভারের পুরানো সংস্করণগুলিতে কাজ করত। এটি কিভাবে ডিস্কে ডেটা সংরক্ষণ করা হয় তা পরিবর্তন করে না।

এসকিউএল সার্ভারের পুরানো সংস্করণে কাউকে ডেটাবেস দেওয়ার জন্য আপনাকে ডেটা রফতানি করতে হবে এবং এটি অন্য ডাটাবেসে আমদানি করতে হবে। রেড গেটের ডেটা তুলনার মতো সরঞ্জামগুলি এর জন্য সহায়ক।


হ্যাঁ, আমি আগে ঠিক এই একই সমস্যা ছিল। পুরো ডাটাবেসটি স্ক্রিপ্ট করে শেষ করে এবং তারপরে সমস্ত ডেটা স্ক্রিপ্ট করে। রেড গেটের এসকিউএল তুলনা এবং ডেটা তুলনা সেদিন উদ্ধার করতে এসেছিল।
ডিফোর্ক 42

@ ডিফোর্ক :৪: আমার ক্ষেত্রে, ডিবি ডেটা দিয়ে স্ক্রিপ্ট আউট করার পক্ষে খুব বড় ছিল, তাই আমি স্কিমাটি স্ক্রিপ্ট করে শেষ করে দিয়ে ডেটা সরিয়ে নিলাম bcp
ivan_pozdeev

@ivan_pozdeev আপনি কি বলছেন যে আপনি এসকিউএল সার্ভার 2012 বিসিপি ব্যবহার করে রফতানি করেছেন এবং এসকিউএল সার্ভার 2008R2 বিসিপি ব্যবহার করে আমদানি করেছেন? ফাইল ফর্ম্যাটগুলি সামঞ্জস্যপূর্ণ তা জানতে পেরে ধন্যবাদ, ধন্যবাদ।
ক্রিস

2
@Chris msdn.microsoft.com/en-us/library/ms162802.aspx "-এ SQL সার্ভার 2014, BCP ইউটিলিটি সমর্থন নেটিভ ডেটা SQL সার্ভার 2000, SQL সার্ভার 2005, SQL সার্ভার 2008, এসকিউএল সার্ভার 2008 R2 এবং সঙ্গে সামঞ্জস্যপূর্ণ ফাইল এসকিউএল সার্ভার 2012. "
আইভান_পোজদেদেভ

ধন্যবাদ @ আইভান_পোসদেব, এটি প্রকাশ পেয়েছে। আমি নীচে আমার পদক্ষেপগুলি নথিভুক্ত করেছি যদি এটি অন্য কাউকে সহায়তা করে।
ক্রিস

6

নির্দিষ্ট নতুন বৈশিষ্ট্যগুলি কীভাবে পরিচালনা করা উচিত তা নির্ধারণ করতে এসকিউএল সার্ভারের দ্বারা সামঞ্জস্যতা স্তর সেটিংটি ব্যবহার করা হয়। এইভাবে কোনও ডিবি অ্যাপ্লিকেশন নিয়ে সমস্যা না করে এসকিউএল এর নতুন সংস্করণে স্থানান্তরিত হতে পারে। সামঞ্জস্যের স্তরটি পিছনে পিছনে পরিবর্তন করা যেতে পারে।

দুর্ভাগ্যক্রমে, ব্যাকআপ ফাইলগুলি পিছনের দিকে সামঞ্জস্যপূর্ণ নয়। একটি পদ্ধতি হ'ল আপনার বর্তমান ডিবি থেকে আপনার ডেটাটিকে আপনার পুরানো সংস্করণের উদাহরণে সরিয়ে নিতে আমদানি / রফতানি ব্যবহার করা হবে।


3

এসকিউএল স্থানান্তরের জন্য, ফ্রি এবং ওপেন সোর্স এসকিউএল ডেটাবেস মাইগ্রেশন উইজার্ড ব্যবহার করুন।

দম্পতি ~ 10 মিলিয়ন রেকর্ড সহ আমার একটি 5 জিবি ডাটাবেস ছিল এবং জেনারেট স্ক্রিপ্টের মাধ্যমে রুটটি চেষ্টা করেছিলাম এবং এর চেয়ে sqlcmd.exe দিয়ে চালিয়েছি। প্রথমত, উত্পন্ন স্ক্রিপ্টটি সর্বদা সঠিকভাবে কাজ করে না। দ্বিতীয়ত, sqlcmd.exe উপলব্ধ বড় মেমরির অভিযোগ করেও বড় ফাইলগুলিতে ব্যর্থ হতে পারে। osql.exe কাজ করে তবে বয়সগুলি গ্রহণ করে (এবং একই কমান্ড লাইনের আর্গুমেন্ট রয়েছে)।

তারপরে আমি এসকিউএল সার্ভারকে এসকিউএল অ্যাজুরি ডাটাবেসে স্থানান্তরিত করার জন্য একটি দুর্দান্ত সরঞ্জাম পেলাম। এটি এসকিউএল সার্ভারের জন্য এসকিউএল সার্ভারেও কাজ করে, উদাহরণস্বরূপ যদি আপনি একটি এসকিউএল 2012 ডাটাবেসকে ২০০৮ আর -২ এ স্থানান্তর করতে চান। এটি bcp.exe ব্যবহার করে, যা বাল্ক কপি ব্যবহার করে। একটি জিইউআই এবং কমান্ড-লাইন (ব্যাচ) সংস্করণ উপলব্ধ রয়েছে এবং এটি ওপেন সোর্স। Http://sqlazuremw.codeplex.com/ দেখুন । আমার ক্ষেত্রে, অপারেশনটি 16 মিনিট সময় নেয়।

একটি উন্নত স্ক্রিনে আপনি নির্বাচন করতে পারেন যে আপনার লক্ষ্য এসকিউএল সার্ভার, এসকিউএল অ্যাজুরি নয়।


2

এসকিউএল সার্ভারের পূর্ববর্তী সংস্করণে ডেটা আনার জন্য এবং আরডিএস থেকে ডেটা টানানোর জন্য আমি বিসিপিকে কয়েকটি সরঞ্জামের চেয়ে কার্যকর বলে মনে করেছি। (ধন্যবাদ @ivan_posdeev।)

আমি প্রথমে এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও, টাস্কস, স্ক্রিপ্টগুলি জেনারেট করে ডাটাবেসে ডান-ক্লিক করে স্কিমা তৈরি করি। সমস্ত বস্তুতে টিক দিন, উন্নত অবজেক্টগুলিতে আপনার প্রয়োজনীয় সমস্ত কিছু স্ক্রিপ্ট করা হবে তা নিশ্চিত করুন (পরিসংখ্যান, সূচিপত্র ইত্যাদি), আপনার গন্তব্য ডাটাবেসের আলাদা নাম রয়েছে, আপনার গন্তব্য ডাটাবেস সংস্করণে সামঞ্জস্যতা সেট করুন এবং একটি উত্পন্ন করুন আপনার স্কিমা তৈরি করে এমন ফাইল। আপনার গন্তব্য সম্বন্ধে একটি ডাটাবেস তৈরি করুন এবং (ব্যবহার করে এটি উপর এই ফাইলটি রান osql, sqlcmdবা গুই)।

ডেটা স্থানান্তর করতে, নিম্নলিখিত কোয়েরি চালানো দুইবার উপর উৎস , ডাটাবেজ প্রথম, নির্যাস ডেটাতে ব্যাচ ফাইল জেনারেট করতে দ্বিতীয় কলামে মন্তব্য তারপর প্রথম কলামে মন্তব্য আপনার গন্তব্য চালানোর আমদানি ব্যাচ ফাইল তৈরি করতে। (আপনাকে আপনার উত্স এবং গন্তব্য সার্ভার, উদাহরণস্বরূপ নাম, আউটপুট এবং ইনপুট ফাইল ডিরেক্টরিগুলি, ব্যবহারকারীর নাম এবং পাসওয়ার্ড যুক্ত করতে হবে integrated সংহত সুরক্ষা ব্যবহার করার জন্য -Uএবং -Pবিকল্পগুলির সাথে প্রতিস্থাপন করুন -T))

এটি ইউনিকোড সমর্থন করে, যদি আপনার এটির প্রয়োজন না -Nহয় তবে উভয় বিবৃতিতে স্যুইচ পরিবর্তন করুন -n

SELECT 
   'bcp SOURCEDATABASE.' + s.Name + '.' + t.NAME  + ' out d:\dbdump\' + s.Name + '.' + t.NAME  + '.dat -N -S SOURCESERVER\INSTANCE -UUSER -PPASSWORD'
--    'bcp DESTINATIONDATASE.' + s.Name + '.' + t.NAME  + ' in d:\dbdump\' + s.Name + '.' + t.NAME  + '.dat -N -S DESTINATIONSERVER\INSTANCE -UUSER -PPASSWORD -E -h TABLOCK -b 1000 -e d:\dbdump\' + s.Name + '.' + t.NAME  + '.ERRORS.dat'
FROM 
    sys.tables t
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
LEFT OUTER JOIN 
    sys.schemas s ON t.schema_id = s.schema_id
ORDER BY 
    s.Name, t.NAME

স্কিমা.ট্যাবলেমন.আরআরআরএস.ড্যাট নামের চেক ফাইলগুলি চালনার পরে - ব্যর্থ হওয়া যে কোনও সারি অন্তর্ভুক্ত থাকবে, যদি কিছুই না করে খালি হয়।

এখানে বিসিপির জন্য এমএসডিএন রেফারেন্স , এখানে বিসিপি বিকল্পগুলির আরও বন্ধুত্বপূর্ণ পদচারনা

স্ক্রিপ্টগুলি তৈরি করার এবং আমি চেষ্টা করেছি এমন যে কোনও সরঞ্জামের চেয়ে আমি এটিকে আরও দুর্দান্ত superior এটি আরডিএস ডাটাবেসেও চালিত হয় (যা ব্যাকআপের অনুমতি দেয় না)। উত্পন্ন ডেটা ফাইলগুলি এসকিউএল স্ক্রিপ্টগুলির 30% আকারের, এগুলি চালানো সময়ের একটি অংশ গ্রহণ করে এবং এটি অনেক বেশি নির্ভরযোগ্য। (স্ক্রিপ্টিং ডেটার জন্য এসকিউএল সার্ভারের দ্বারা উত্পাদিত স্ক্রিপ্টগুলি সর্বদা ট্রিপ আপ হয়ে যায়, কখনও কখনও অনুমানযোগ্য কখনও কখনও হয় না, উত্পাদিত এসকিউএল 2008 আর 2 এর সাথে সামঞ্জস্যপূর্ণ ছিল না (উদাহরণস্বরূপ, ব্যবহৃত nvarchar(0), প্রায়শই কোনও বোধগম্য কারণে সম্পূর্ণ হয় না, ইত্যাদি) বিসিপিও কোনও বাধা লঙ্ঘনের প্রতিলিপি তোলে যেমন রেফারেন্সিয়াল অখণ্ডতা))।

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