এমএস এসকিউএল সার্ভারে মাইএসকিউএল ডাটাবেস আমদানি করুন


92

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


4
আপনারও কি মূল ডাটাবেসে অ্যাক্সেস রয়েছে? বা রফতানি ফাইলটি মূলত আপনার যা কিছু আছে?
hakাক্কি

মূল ডিবিতেও আমার অ্যাক্সেস রয়েছে। আমি কেবল ভেবেছিলাম যে ডাম্প ব্যবহার করা আরও সহজ হতে পারে
marionmaiden

উত্তর:


62

ব্যবহারের SQL সার্ভার মাইগ্রেশন সহকারী (SSMA)

মাইএসকিউএল ছাড়াও এটি ওরাকল, সিবাস এবং এমএস অ্যাক্সেস সমর্থন করে।

এটি বেশ স্মার্ট এবং এমনকি অযৌক্তিক স্থানান্তরকে পরিচালনা করতে সক্ষম বলে মনে হচ্ছে। এটি কিছু কমান্ড লাইন ইন্টারফেসও পেয়েছে (জিইউআই ছাড়াও) তাই তাত্ত্বিকভাবে এটি কিছু ব্যাচের লোড প্রক্রিয়াতে সংহত করা যায়।

এটি মাইএসকিউএল সংস্করণ https://www.microsoft.com/en-us/download/details.aspx?id=54257 এর জন্য বর্তমান ডাউনলোড লিঙ্ক

ডেটা স্থানান্তর করার সময় বর্তমান (জুন 2016) স্থিতিশীল সংস্করণ 6.0.1 বর্তমান (5.3.6) মাইএসকিউএল ওডিবিসি ড্রাইভারের সাথে ক্র্যাশ হয়েছে। সবকিছু 64 বিট। 5.1.13 ওডিবিসি ড্রাইভার সহ 5.3 সংস্করণটি দুর্দান্ত কাজ করে।


9
এই সরঞ্জামটি কেবল তখনই কাজ করে যদি আপনি আপনার পিসি থেকে আপনার মাইএসকিউএল ডিবিতে কোনও ওডিবিসি সংযোগকারী ইনস্টল করতে পারেন। আপনার যদি মাত্র একটি। এসকিউএল ডাম্প ফাইল থাকে তবে আপনি এসএসএমএ ব্যবহার করতে পারবেন না।
জ্যাক মুনসন

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

4
ভাল যুক্তি. এবং এটাই আমি গতকাল শেষ করেছি। আপনার নিজস্ব কাস্টম রূপান্তর ইউটিলিটি লেখার সংক্ষিপ্ততা, মাইএসকিউএল ইনস্টল করা সেরা বিকল্প বলে মনে হচ্ছে। এসএসএমএ ব্যবহারের বাটটিতে ব্যথা ছিল তবে শেষ পর্যন্ত আমি এটি কাজে লাগিয়েছি।
জ্যাক মুনসন

4
এসএসএমএ একটি দুর্দান্ত বিকল্প, এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। আমি এটি ব্যবহার করা মোটেই কঠিন পাইনি।
ডনবেকার

4
এটির জন্য এসকিউএল সার্ভার এজেন্ট প্রয়োজন যা এসকিউএল সার্ভার এক্সপ্রেস দিয়ে আসে না।
ভিনিসিয়াস রোচা 23

18

আমি আপনাকে মাইএসকিএলডাম্প এর মতো ব্যবহার করার পরামর্শ দিচ্ছি :

mysqldump --compatible=mssql

phpMyAdmin এখনও একটি ওয়েব-অ্যাপ্লিকেশন এবং সম্ভবত এর জন্য কিছু সীমাবদ্ধতা থাকতে পারে বড় ডেটাবেসগুলির (স্ক্রিপ্ট এক্সিকিউশন সময়, বরাদ্দযোগ্য মেমরি এবং আরও কিছু)।


6
হায়, এটি আমাকে সমস্ত ধরণের তুলনামূলক সমস্যা দেয়। স্ক্রিপ্টটিতে কলামের নামগুলি, এমএসএসকিউএল-তে বিদ্যমান না এমন ডেটা প্রকারের চারপাশে ব্যাকটিকস থাকবে, সর্বাধিক 1000-সন্নিবেশ সীমাবদ্ধতা, অটো_সংশোধন কীওয়ার্ডস ইত্যাদি লঙ্ঘন করবে এই উত্তরটি একটি যৌক্তিক পরামর্শ, তবে আমি ভয় পাচ্ছি যে এটি না করে খুব ভাল কাজ করবেন না (কমপক্ষে: এটি আমার পক্ষে হয়নি)।
জেরোইন

mysqldump --comp موافق = ansi "আউটপুট উত্পাদন করুন যা অন্যান্য ডাটাবেস সিস্টেমের সাথে বা পুরানো মাইএসকিউএল সার্ভারের সাথে আরও উপযুক্ত this
টমাস টেলর

14

আমি নেট এ জন্য একটি উপায় খুঁজে পেয়েছি

এটি কিছুটা কাজের দাবি করে, কারণ এটি টেবিলের মাধ্যমে টেবিলটি করতে হবে। তবে যাইহোক, আমি একটি এমএস এসকিউএল ডাটাবেসে টেবিলগুলি, ডেটা এবং সীমাবদ্ধতার অনুলিপি করতে পারি।

লিঙ্কটি এখানে

http://www.codeproject.com/KB/datedia/migrate-mysql-to-mssql.aspx


4
এটি তখনই যখন মাইএসকিএল এবং এসকিউএল উভয়ই একটি মেশিনে থাকে বা তারা কোনও নেটওয়ার্কের মাধ্যমে সংযুক্ত থাকে। যখন দুটি পৃথক মেশিন উপস্থিত থাকে এবং মাইএসকিএল থেকে আপনার কাছে একটি ডাম্প ফাইল থাকে তখন এটি কার্যকর হয় না। ঠিক?
এস্পান্ত

7

আপনি যদি পিএইচপিএমইএডমিনের সাথে রফতানি করেন তবে আপনি এসকিউএল সামঞ্জস্যতা মোডকে 'এমএসএসকিউএল' এ স্যুইচ করতে পারেন। এইভাবে আপনি আপনার এমএস এসকিউএল ডাটাবেসের বিপরীতে রফতানি স্ক্রিপ্টটি চালান এবং আপনার কাজ শেষ।

আপনি যদি পিএইচপিএমইএডমিন ব্যবহার করতে না চান বা না চান তবে মাইএসকিলডাম্পে একটি সামঞ্জস্যের বিকল্পও রয়েছে , তবে ব্যক্তিগতভাবে আমার চেয়ে পিএইচপিএমএইডমিনটি আমার পক্ষে এটি করানো উচিত।


4
উত্পন্ন স্ক্রিপ্টে নূন্যতম পরিবর্তন সহ এই উত্তরটি আমার পক্ষে কাজ করেছিল। এটি এসকিউএল সার্ভারে 2012 এ নিয়েছে before
কিয়েল

7

এমএস এসকিউএল .sql ফাইলগুলি আমদানি করার জন্য আমার পদ্ধতিটি এখানে রয়েছে:

  1. মাইএসকিউএল থেকে সারণী রফতানি করুন --compatible=mssqlএবং --extended-insert=FALSEবিকল্পগুলি:

    mysqldump -u [username] -p --compatible=mssql --extended-insert=FALSE db_name table_name > table_backup.sql

  2. পাওয়ারশেলের সাথে রফতানি হওয়া ফাইলটি প্রতি ফাইল প্রতি 300000 লাইন দ্বারা বিভক্ত করুন:

    $i=0; Get-Content exported.sql -ReadCount 300000 | %{$i++; $_ | Out-File out_$i.sql}

  3. এমএস এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিওতে প্রতিটি ফাইল চালান

সন্নিবেশগুলিকে কীভাবে দ্রুত করা যায় তার কয়েকটি টিপস রয়েছে ।

অন্যান্য পদ্ধতির মধ্যে মাইএসকিএলডাম –whereবিকল্পটি ব্যবহার করা । এই বিকল্পটি ব্যবহার করে আপনি যে কোনও শর্তে আপনার টেবিলটি বিভক্ত করতে পারেন যা whereস্কয়ার ক্লজ দ্বারা সমর্থিত ।


আমরা কীভাবে টেবিলের মাধ্যমে টেবিলের পরিবর্তে পুরো ডাটাবেস রপ্তানি করতে পারি
MonsterMMORPG

--databases [db_name]কীওয়ার্ডটি চেষ্টা করুন যেমন এটি এই উত্তরে ব্যাখ্যা করেছে: stackoverflow.com/a/26096339/155687
ভ্লাদিস্লাভ

4

আমার আজ একটি খুব অনুরূপ সমস্যা ছিল - আমার মাইএসকিউএল থেকে একটি বড় টেবিল (৫ মিলিয়ন সারি) এমএস এসকিউএলে অনুলিপি করা দরকার।

আমি যে পদক্ষেপগুলি করেছি (উবুন্টু লিনাক্সের অধীনে):

  1. এমএস এসকিউএলে একটি টেবিল তৈরি করেছে যা মাইএসকিএলে উত্স সারণীর সাথে কাঠামোর সাথে মেলে।

  2. এমএস এসকিউএল কমান্ড লাইন ইনস্টল করা হয়েছে: https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools#ubuntu

  3. মাইএসকিউএল থেকে একটি ফাইলে ডাবড টেবিল:

mysqldump
    - কমপ্যাক্ট
    - অসম্পূর্ণ সন্নিবেশ \
    - না-তৈরি তথ্য \
    --comp موافق = এমএসকিউএল
    - এক্সটেন্ডেড-সন্নিবেশ = মিথ্যা \
    --হোস্ট "$ MYSQL_HOST" \
    - ব্যবহারকারীর "$ MYSQL_USER" \
    -p "$ MYSQL_PASS" \
    "$ MYSQL_DB" \
    "$ টেবিল"> "ILE ফাইল"
  1. আমার ক্ষেত্রে ডাম্প ফাইলটি বেশ বড় ছিল, তাই আমি এটিকে কয়েকটি ছোট ছোট টুকরো (প্রতিটি 1000 টি লাইন) এ বিভক্ত করার সিদ্ধান্ত নিয়েছি - split --lines=1000 "$FILENAME" part-

  2. অবশেষে আমি এই ছোট ফাইলগুলিতে পুনরাবৃত্তি করেছি, কিছু পাঠ্য প্রতিস্থাপন করেছি এবং এমএস এসকিউএল সার্ভারের বিপরীতে টুকরোগুলি একের পর এক চালিত করেছি:

এসকিউএলসিএমডি = / অপ্ট / এমএসকিউএল-সরঞ্জামগুলি / বিন / এসকিএলসিএমডি রফতানি করুন

x = 0

অংশে ফাইলের জন্য - *
কর
  প্রতিধ্বনি "এমএস এসকিউএলে ফাইল [$ ফাইল] রফতানি করা হচ্ছে $ x হাজার (গুলি) প্রসেস করা হয়েছে"

  # \ 'এর সাথে' 'প্রতিস্থাপন করে
  সেড -i "এস / \\\ '/' '/ জি" "$ ফাইল"

  # সমস্ত সরান "
  sed -i 's / "// g'" $ ফাইল "

  # নির্দিষ্ট পিকে (আইডি) সহ রেকর্ড সন্নিবেশ করতে দেয়
  সেড -i "1s / ^ / সেট পরিচয়পত্রের সারণি AB টেবিল চালু; \ n /" "$ ফাইল"

  "$ এসকিউএলসিএমডি" -এস "Z আজিউর_সেবার" -ড "Z আউজুরি_ডিবি" -ইউ "Z আউজুরি_উসার" -পি "$জুরিপাস" -আই "$ ফাইল"
  প্রতিধ্বনি ""
  প্রতিধ্বনি ""

  x = $ ((x + 1))
সম্পন্ন

প্রতিধ্বনি "সম্পন্ন"

অবশ্যই আপনার মত আমার ভেরিয়েবল প্রতিস্থাপন করতে হবে $AZURE_SERVER, $TABLEপুলিশের সঙ্গে, ইত্যাদি।

আশা করি এইটি কাজ করবে.


3

আমার পক্ষে এটি এই কমান্ডের সাথে সমস্ত ডেটা রফতানি করতে সর্বোত্তম কাজ করেছে:

mysqldump -u USERNAME -p --all-databases --complete-insert --extended-insert=FALSE --compatible=mssql > backup.sql

--extended-insert = mssql 1000 সারি আমদানির সীমা এড়াতে FALSE প্রয়োজন।

আমি আমার মাইগ্রেশন সরঞ্জামটি দিয়ে আমার টেবিলগুলি তৈরি করেছি, তাই ব্যাকআপ.এসকিউএল ফাইল থেকে ক্রেইট কাজ করবে কিনা তা আমি নিশ্চিত নই।

এমএসএসকিউএল এর এসএসএমএসে আমাকে আইডি ক্ষেত্রগুলি লেখার জন্য আইডেন্টিটিপ নম্বর দিয়ে টেবিলে ডেটা টেবিলটি আমদানি করতে হয়েছিল:

SET IDENTITY_INSERT dbo.app_warehouse ON;
GO 
INSERT INTO "app_warehouse" ("id", "Name", "Standort", "Laenge", "Breite", "Notiz") VALUES (1,'01','Bremen',250,120,'');
SET IDENTITY_INSERT dbo.app_warehouse OFF;
GO 

আপনার যদি সম্পর্ক থাকে তবে আপনাকে প্রথমে বাচ্চাটি বিদেশী কী সহ টেবিলের চেয়ে আমদানি করতে হবে।




0

আপনি মাইএসকিউএল থেকে স্কেলসার্ভারে রূপান্তর করার জন্য স্ক্লি অ্যাপ্লিকেশন ব্যবহার করতে পারেন আপনি এই ভিডিওটি দেখতে পারেন https://www.youtube.com/watch?v=iTVEqys_vTQ&t=108s


4
স্টারওভারফ্লো @gorgino এ আপনাকে স্বাগতম! আপনি যদি কোনও লিঙ্ক পোস্ট করেন তবে দয়া করে ভবিষ্যতে লিঙ্কটি নিচে নেমে যাওয়ার বিষয়বস্তুটির একটি সংক্ষিপ্তসারও পোস্ট করুন। লিঙ্ক প্রধানত আপনার উত্তর প্রসারিত করতে, না ব্যবহার করা উচিত হবে আপনার উত্তর।
ক্রাইবার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.