এসকিউএল সার্ভার থেকে ২০০৮-তে ডাটাবেস সরিয়ে নিন


29

আমার কাছে একটি এসকিউএল সেভার 2012 উদাহরণে একটি ডাটাবেস রয়েছে যা আমি একটি 2008 সার্ভারে অনুলিপি করতে চাই। 2008 সার্ভারটি 2012 সার্ভারের দ্বারা তৈরি ব্যাকআপগুলি পুনরুদ্ধার করতে পারে না (আমি চেষ্টা করেছি) have

২০০৮-এর সামঞ্জস্যপূর্ণ ব্যাকআপ তৈরি করতে আমি কোনও বিকল্প খুঁজে পাচ্ছি না। আমি কিছু অনুপস্থিত করছি?

স্কিমি এবং ডেটা এমন কোনও সংস্করণ-অজিনস্টিক ফর্ম্যাটে রফতানি করার সহজ উপায় আছে যা আমি ২০০৮ সালে আমদানি করতে পারি?

ডাটাবেস কোনও 2012 নির্দিষ্ট বৈশিষ্ট্য ব্যবহার করে না। এটিতে সারণী, ডেটা এবং সঞ্চিত পদ্ধতি রয়েছে।

আমি এখন পর্যন্ত যা চেষ্টা করেছি তা এখানে

আমি চেষ্টা কার্যগুলিস্ক্রিপ্ট নির্মাণ 2012 সার্ভারে আর আমি SQL স্ক্রিপ্ট হিসাবে (সঞ্চিত পদ্ধতি সহ) স্কিমা উৎপন্ন করতে সক্ষম হন। যদিও এতে কোনও ডেটা অন্তর্ভুক্ত করা হয়নি।

আমার ২০০৮ মেশিনে এই স্কিমা তৈরির পরে, আমি ২০১২ মেশিনে "এক্সপোর্ট ডেটা" উইজার্ডটি খুলতে সক্ষম হয়েছি, এবং 2012টিকে উত্স মেশিন হিসাবে এবং ২০০৮কে টার্গেট মেশিন হিসাবে কনফিগার করার পরে, আমি টেবিলগুলির একটি তালিকা উপস্থাপন করেছি যা আমি কপি করতে পারে। আমি আমার সমস্ত সারণী (300+) নির্বাচন করেছি এবং উইজার্ডের মাধ্যমে ক্লিক করেছি। দুর্ভাগ্যক্রমে এটি এর স্ক্রিপ্টগুলি তৈরি করতে যুগে যুগে ব্যয় করে, তারপরে "কেবল-পঠনযোগ্য কলাম 'FOO_ID' serোকানো ব্যর্থতা" এর মতো ত্রুটিগুলি ব্যর্থ করে।

আমি "অনুলিপি ডাটাবেস উইজার্ড" চেষ্টা করেছিলাম, যা "2000 বা তার পরে 2005 বা তার পরে" অনুলিপি করতে সক্ষম বলে দাবি করেছিল। এটির দুটি মোড রয়েছে:

  1. "বিযুক্তি এবং সংযুক্তি", যা ত্রুটির সাথে ব্যর্থ হয়েছিল:

    Message: Index was outside the bounds of the array.
    StackTrace:    at Microsoft.SqlServer.Management.Smo.PropertyBag.SetValue(Int32 index, Object value)
    ...
    at Microsoft.SqlServer.Management.Smo.DataFile.get_FileName()
    
  2. এসকিউএল পরিচালনার অবজেক্ট পদ্ধতি যা ত্রুটির সাথে ব্যর্থ হয়েছিল

    ইস্পাইল স্ট্রিম সম্পত্তিটি পড়তে পারে না। এই সম্পত্তি এসকিউএল সার্ভার 7.0 এ উপলব্ধ নয় ""


আপনি সরাসরি রফতানি করতে সক্ষম? আমি জানি না আপনার ডিবি কত বড়, তবে ছোট ডাটাবেসের সাথে কাজ করার সময় এটিই করতাম।
ডেভ

2
এসকিউএল সার্ভারের কোনও পুরানো সংস্করণ নতুন সংস্করণগুলি থেকে ব্যাকআপগুলি পুনরুদ্ধার করতে পারে না। এটি নকশা দ্বারা। রপ্তানি বৈশিষ্ট্য আউট টেবিল এবং ডেটা স্ক্রিপ্ট ব্যবহার, এবং 2008 এসকিউএল স্ক্রিপ্ট লক্ষ্যমাত্রা নির্ধারণ

4
"কেন তাদের সঠিক মনের কেউ পিছন দিকে সরে যেতে হবে তা জানার চেষ্টা করা হয়েছে।" - আমার ২০১২ সালে একটি প্রোডাকশন সার্ভার চলছে তবে আমার ডেভ মেশিনটি কেবল ২০০৮ সালে রয়েছে development এত ফাঁকা জায়গা বাকি আছে এবং এটি ইনস্টল করার জন্য ঘন্টা ব্যয় করতে চান না। (সুতরাং আমি পরিবর্তে পিছনে স্থানান্তরিত করার চেষ্টা করে ঘন্টা ব্যয় করছি .... তবে এটি কেবল আমিই))
রিচ

1
তুমি অনেকটা সেখানে. আপনি যে রফতানি বিভাগে গিয়েছিলেন সেটিতে স্কিমার পাশাপাশি ডেটা অন্তর্ভুক্ত করার বিকল্প রয়েছে।

1
কেবল রামহাউন্ডের জন্য যুক্ত করতে চেয়েছিলাম: আমি আমার দেব পরিবেশে এসকিউএল ২০০৮ আর -২ এর জন্য এসকিউএল ২০১২ তে একটি আপগ্রেড করেছি এবং তারপরে, আমি আমার আপগ্রেড হওয়া উদাহরণে প্রচুর স্কিমা এবং ডেটা পরিবর্তন করার পরে বুঝতে পেরেছিলাম যে ভিএস ২০১০ এসকিউএল ২০১২ এর সাথে স্কিমা বা ডেটা তুলনা করতে পারে না। ভিএস ২০১০ এবং ভিএস ২০১২-এর এসএসডিটি এসকিউএল ২০১২ এর সাথে স্কিমা তুলনা করতে পারে তবে মূল ভিএস ২০১০ ডাটাবেস প্রকল্পের সাথে উপযুক্ত নয় এবং ডেটা তুলনা করতে পারে না। দীর্ঘ গল্প সংক্ষেপে, আমি বরং এসকিউএল ২০০৮ আর 2 এ ফিরে গিয়ে 2012-এর দিকে এগিয়ে যাওয়ার জন্য সংস্থা-বুদ্ধিমান সিদ্ধান্ত না নেওয়া পর্যন্ত অপেক্ষা করব But তবে আমি আমার নতুন স্কিমা / ডেটা সংরক্ষণ করতে চাই। আফাইক আমার ঠিক মনে আছে
জিএফকে

উত্তর:


40

২০১২ সালের এসকিউএল ম্যানেজমেন্ট স্টুডিওতে ডাটাবেসে ডান ক্লিক করুন এবং "কার্য -> স্ক্রিপ্টগুলি তৈরি করুন" নির্বাচন করুন। স্বাগতম স্ক্রিনের অতীতে ক্লিক করুন, "স্ক্রিপ্ট সম্পূর্ণ ডাটাবেস এবং সমস্ত ডাটাবেস অবজেক্ট" চয়ন করুন। "স্ক্রিপ্টগুলি কীভাবে সংরক্ষণ করা উচিত তা নির্দিষ্ট করুন" পৃষ্ঠায়, "উন্নত" ক্লিক করুন। পপ-আপ বৈশিষ্ট্য পৃষ্ঠায় "জেনারেল" এর অধীনে, "স্কিমে ডেটা প্রকারের "টিকে" কেবলমাত্র স্কিমা "থেকে" স্কিমা এবং ডেটা "তে পরিবর্তন করুন এবং" 2012 "থেকে" 2008 "তে" সার্ভার সংস্করণের জন্য স্ক্রিপ্ট "পরিবর্তন করুন।

এরপরে এই বিশাল এসকিউএল ফাইলটির শুরুতে সম্পাদনা করার জন্য, ডাটাবেসটি কীভাবে তৈরি হবে তা টুইট করার জন্য আমাকে কিছু উপায় খুঁজে বের করতে হয়েছিল - এই প্রশ্নটি দেখুন: /programming/102829/best-free-text-editor -supporting-আরো-চেয়ে-4GB-ফাইল

এবং পরিশেষে আমাকে এসকিউএল স্ক্রিপ্টটি চালনার জন্য কিছু উপায় খুঁজে বের করতে হয়েছিল, যা এসকিউএল পরিচালনার স্টুডিওতে খোলার পক্ষে খুব বড় ছিল - এই প্রশ্নটি দেখুন: /programming/431913/how-do-you-run- একটি 300mb-MS-SQL-SQL ফাইল


ফাইলটির শুরুতে আপনি কী টুইট করলেন?
জোনোরআর

1
দুঃখিত, আমি ঠিক মনে করতে পারি না। অ্যাপ নির্দিষ্ট জিনিস, আমি মনে করি। সম্ভবত ডাটাবেসের নাম বা এর মতো কিছু। আমি মনে করি এটি যদি এখানে একই সমস্যাযুক্ত মানুষের সাথে প্রাসঙ্গিক হয় তবে আমি এটি এখানে যুক্ত করতাম।
ধনী

3
@ জোনোআরআর আপনি সম্ভবত তৈরি করুন ডেটাবাস স্টেটমেন্টটি সম্পাদনা করতে এবং গন্তব্য সার্ভারে যা কিছু বুঝায় তা ডেটাফাইলে পাথ সেট করতে চান।
ইগবি লার্জম্যান

12

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

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

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

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


1
আপনি এই উইজার্ডে 2008 আর 2 কোথায় সেট করবেন?
JonoRR

দুর্দান্ত টিপ, আমি এক্সপ্রেস 2012 থেকে ওয়েব 2008-তে একটি ডাটাবেস পুনরুদ্ধার করেছি Very খুব সহজ।
rkawano

এটি বিজ্ঞাপন হিসাবে কাজ করে তা নিশ্চিত করতে পারে। একটি 2014-> 2012, ক্রস ডোমেন, স্থানীয় এসকিউএল-সার্ভার করেছে। এই সরঞ্জামটি কীভাবে এতক্ষণ আমার অনুসন্ধানগুলি এড়িয়ে চলেছে! এমনকি অজুর ব্যবহারের জন্য আশ্চর্যজনক।
গোমিবুশি

3

আমি এসকিউএল-এ নতুন, তবে আমি ২০১২ থেকে ২০০৮ পর্যন্ত স্থানান্তরিত করতে সক্ষম হয়েছি so এটি করার জন্য আমি এসকিউএল আমদানি এবং রফতানি ইউটিলিটি ব্যবহার করি। আমি এসকিউএল 2012 সার্ভার এবং ডেটাবেস যা আমি স্থানান্তরিত করতে চাই এবং শেষ পর্যন্ত 2008 সার্ভারটি বেছে নিয়েছি এবং আমার গন্তব্যটির ডেটাবেস হিসাবে একটি নতুন ডাটাবেস তৈরি করেছি। এটা কাজ করেছে.


2

ব্যবহার করে দেখুন APEXSQL সরঞ্জাম। তাদের একটি সরঞ্জাম রয়েছে যা ডাটাবেসটিকে স্ক্রিপ্ট করবে এবং ডেটাও স্ক্রিপ্ট করবে।


"299 from থেকে" - কোনও বিনামূল্যে বিকল্প আছে?
ধনী

1

আমার ২০০৮ মেশিনে এই স্কিমা তৈরির পরে, আমি ২০১২ মেশিনে "এক্সপোর্ট ডেটা" উইজার্ডটি খুলতে সক্ষম হয়েছি, এবং 2012টিকে উত্স মেশিন হিসাবে এবং ২০০৮কে টার্গেট মেশিন হিসাবে কনফিগার করার পরে, আমি টেবিলগুলির একটি তালিকা উপস্থাপন করেছি যা আমি কপি করতে পারে। আমি আমার সমস্ত সারণী (300+) নির্বাচন করেছি এবং উইজার্ডের মাধ্যমে ক্লিক করেছি। দুর্ভাগ্যক্রমে এটি এর স্ক্রিপ্টগুলি তৈরি করতে যুগে যুগে ব্যয় করে, তারপরে "কেবল-পঠনযোগ্য কলাম 'FOO_ID' serোকানো ব্যর্থতা" এর মতো ত্রুটিগুলি ব্যর্থ করে।

সমস্যাটি হ'ল এটি আইডি কলামগুলি সন্নিবেশ করতে সক্ষম নয়, তাই:

  1. সমস্ত টেবিলগুলি টিক দিয়ে তাদের নির্বাচন করুন
  2. সমস্ত সারণী নির্বাচন করুন (এটি করার উপায়টি প্রথমটিতে ক্লিক করুন এবং শিফটটি ধরে রাখুন এবং শেষ টেবিলটিতে ক্লিক করুন)
  3. "ম্যাপিংস সম্পাদনা করুন" এ ক্লিক করুন - আপনি দেখতে পাচ্ছেন যে ঠিক পরের বোতামটির উপরে এবং পূর্বরূপের পাশে।
  4. আপনি একটি উইন্ডো পাবেন, "পরিচয় সন্নিবেশ সক্ষম করুন" এ টিক দিন এবং তারপরে ক্লিক করুন এবং এগিয়ে যান, এটি কাজ করা উচিত। এটা আমার জন্য কাজ করে।

1

আমি উপরের রিচের সমাধানটি /superuser//a/469597/312310 অনুসরণ করেছি এবং এটি দুর্দান্ত কাজ করেছে! ধন্যবাদ - আমি এখানে এখনও ভোট দিতে পারছি না!

এটির কাজ পেতে আমার অতিরিক্ত পদক্ষেপগুলি হ'ল:

  • লজিক্যাল ফাইলের নাম পরিবর্তন করুন এবং নিশ্চিত করুন যে পথটি সঠিক। আমাকে উত্পন্ন লগের নামটিও পরিবর্তন করতে হয়েছিল, অন্যথায় এটি লগটি দিয়ে এমডিএফ ফাইলটি ওভাররাইট করার চেষ্টা করেছিল এবং তারপরে এই ত্রুটিটি /programming/7534664/sql-server-script-error-database-is- এ ছুঁড়ে ফেলেছে ইতিমধ্যে ব্যবহার করা হচ্ছে

    প্রাইমারীতে ডাটাবেস [এক্সএক্সএক্সএক্সএক্সএক্স] তৈরি করুন (নাম = এক্সএক্সএক্সএক্সএক্সএক্সএক্স), ফাইল নাম = এন'সি: \ প্রোগ্রাম ফাইলগুলি \ মাইক্রোসফ্ট এসকিউএল সার্ভার \ এমএসএসকিউএলএস.এমএসকিউএসএলভার \ এমএসএসকিউএল \ ডেটা \ এক্সএক্সএক্সএক্সএক্স.এমডিএফ ', সাইজ = 14400 কেবি, ম্যাক্সিজাইল = ইউএনএলডিমিডি 1024 কেবি ) লগ করুন (নাম = এন'এক্সএক্সএক্সএক্সএলএক্সএলএফ ), ফাইল ফাইল = এন'সি: \ প্রোগ্রাম ফাইলগুলি \ মাইক্রোসফ্ট এসকিউএল সার্ভার \ এমএসএসকিউএল 11. এমএসএসকিউএলএসভার V এমএসএসকিউএল ATA ডেটা \ xxxxx_log.ldf ', সাইজ = 18560 কেবি, ম্যাক্সিজিজ = 2048 জিবি, ফাইল %) যান

  • আমাকে উত্পন্ন বিভাগটি মন্তব্য করতে হয়েছিল এবং তার পরে ম্যানুয়ালি ব্যবহারকারীর অনুমতিগুলি যুক্ত করতে হয়েছিল

    USE [xxxxx]
    GO
    /****** Object:  User [xxxxx]    Script Date: 30/11/2014 12:44:07 ******/
    CREATE USER [xxxxx] FOR LOGIN [xxxxx] WITH DEFAULT_SCHEMA=[dbo]
    GO
    sys.sp_addrolemember @rolename = N'db_owner', @membername = N'Umbraco'
    GO
    sys.sp_addrolemember @rolename = N'db_datareader', @membername = N'Umbraco'
    GO
    sys.sp_addrolemember @rolename = N'db_datawriter', @membername = N'Umbraco'
    GO
    

এটি চালিয়ে যান, দেখুন এবং দেখুন আমি এখন আমার নতুন উম্ব্রাকো 7.1.2 ডাটাবেসটিকে আমার ওয়েব সার্ভারে পুনরুদ্ধার করতে পারি যা কেবলমাত্র এসকিউএল সার্ভার ২০০৮ আর 2 আছে!


0

কটাক্ষপাত আছে xSQL স্কিমা তুলনা এবং xSQL ডেটা তুলনা । আপনি প্রথমে স্কিমা তুলনা করে স্কিমা সিঙ্ক্রোনাইজ করতে পারেন এবং তারপরে ডেটা অনুলিপি করতে পারেন।

দাবি অস্বীকার: আমি এক্সএসকিউএল এর সাথে অনুমোদিত।

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