مقدمه

می ‌دانیم که تکنولوژی دیتابیس ‌های مختلف با یکدیگر متفاوت است، اما اصول مشترکی که اساس کارکرد آن ‌هاست، امکان ایمپورت و اکسپورت اطلاعات پایگاه ‌داده به موتورهای پایگاه‌ داده دیگر را فراهم می ‌کند. همه کاربران می ‌توانند با اجرای یک کوئری ساده این ‌کار را انجام دهند. در این مقاله قصد داریم به معرفی انواع شیوه‌ های انتقال اطلاعات از دیتابیس SQL در کامپیوتر شخصی به هاست در SQL Server بپردازیم. تا انتهای مطلب با ما همراه باشید

انتقال اطلاعات از دیتابیس SQL در کامپیوتر شخصی با SQL Server Management Studio (SSMS)

اگر قصد دارید کل دیتابیس را یک‌جا منتقل کنید، قبل از هر‌چیز باید از دیتابیس خود بکاپ (نسخه پشتیبان) بگیرید. نرم‌افزارSQL Server Management Studio خود را باز کنید. نام دیتابیس موردنظر خود را بیابید و از منوی Tasks عبارت Backup را انتخاب کنید، سپس در بخش Destantion محل ذخیره نسخه پشتیبان را تعیین کنید. با کلیک بر روی گزینه ok، نسخه بکاپ شما ایجاد می‌ شود.

سپس باید برای خود یک نام کاربری ایجاد کنید، به این ‌روش که موس ‌خود را روی آیکن Database نگه داشته و بر روی SQL Server کلیک کنید. سپس گزینه Create User را انتخاب کنید. یک نام ‌کاربری و رمز عبور برای خود انتخاب کرده و در نهایت اطلاعات وارد شده را Save کنید.

ساخت پایگاه داده در SQL Server

موس را روی آیکن Database نگه ‌داشته و روی SQL Server کلیک کنید. سپس گزینه Create Database را انتخاب کنید. برای دیتابیس جدید خود یک نام انتخاب کنید. در بخش بعدی نام‌ کاربری خود را وارد کرده و سپس بر روی دکمه Save کلیک کنید.

انتقال داده به هاست SQL Server

حال باید نسخه پشتیبانی که تهیه کردیم را در پایگاه داده جدید، Restore کنیم. برای این‌ کار موس خود را روی آیکن Database نگه داشته و بر روی SQL Server کلیک کنید. سپس دیتابیسی که در مرحله قبل ساختیم را انتخاب کرده و بعد از انتخاب گزینه Maintenance Tools، بر روی عبارت Restore کلیک کنید.

در این مرحله دو حالت پیش روی شما خواهد بود:

  • Upload File

برای دیتابیس ‌هایی که حجم آن‌ ها کم است، این گزینه پیشنهاد می ‌شود. با کلیک بر روی Browse File، فایل بکاپ با پسوند .bak که تهیه شد را انتخاب کرده و گزینه Restore را انتخاب کنید. در نهایت عملیات انجام شده را Save کنید.

  • Hosting Space File

این گزینه جهت انتقال اطلاعات از دیتابیس SQL در کامپیوتر شخصی برای دیتابیس ‌هایی با حجم بالاتر از 1 مگابایت توصیه می ‌شود. به‌ محض آنکه از دیتابیس خود بکاپ می‌ گیرید، سیستم یک پوشه به نام db در Root Folder ایجاد می ‌کند. کافی است به سرور متصل شوید و با کلیک بر روی پوشه db، دیتابیس خود را در این پوشه Upload نمایید.

زیر بخشHosting Space File  یک کادر وجود دارد، بر روی آن کلیک کنید تا پنجره Root Folder باز شود. علامت مثلث کنار آن را انتخاب کنید. در این‌بخش پوشه db قابل مشاهده است. بار دیگر بر روی این علامت مثلث کلیک کرده و فایل بکاپ دیتابیس خود با فرمت .bak یا.Zip را انتخاب کنید. در آخر گزینه Restore را انتخاب کرده و عملیات را Save کنید.

اما اگر قصد دارید تنها چند جدول را از دیتابیس کامپیوتر به هاست SQL Server منتقل کنید، مراحل زیر را دنبال کنید:

پیکربندی منبع داده (Data Source)

از بخش Import Data wizard و Export Data wizard برنامه SQL Server، گزینه MySQL Data Provider را انتخاب کنید. در بخش گزینه‌ های Tasks، Import Data wizard یک بسته نرم‌ افزاری SSIS برای شما ایجاد می‌ کند. این بسته را می ‌توان بلافاصله اجرا کرد یا آن را ذخیره کرد تا بعدها ویرایش یا اجرا شود.
فرض کنید پایگاه‌ های داده ‌ای به نام user_portal در MySQL و pub_db در SQL Server داریم. در دیتابیس MySQL چندین جدول به نام ‌های privileges_mst، privileges_api_link، privileges_api_link و … داریم و قصد داریم تعدادی از ستون ‌های چند جدول را در پایگاه داده pub_db در جدول priv_emp_detail در SQL Server کپی کنیم.
به بخش Tasks> Import Data…> Next…> Source Data بروید:

یک منبع داده را از لیست کشویی انتخاب کنید؛ می‌ تواند ODBC، OLEDB، Flat File، Access، Excel و غیره باشد. فرمت انتخاب شده به نوع داده‌ ای که قصد دارید به SQL Server و وارد کنید و دیتابیس منبع بستگی دارد.
وقتی MySQL به عنوان منبع داده انتخاب می‌ کنید، Wizard برنامه اطلاعات احراز هویت را از شما دریافت می ‌کند. در بخش Security، کاربر باید نام کاربری و رمز عبور MySQL خود را برای احراز هویت وارد کند.

پیکربندی سرور مقصد (Destination Server)

در مرحله بعد، نام نمونه SQL Server یا آدرس IP مقصد را به عنوان سرور مقصد وارد کنید. همچنین برای ورود به سیستم SQL Server باید نام ورود و رمز عبور SQL Server را وارد کنید. اگر از احراز هویت Windows استفاده می‌ کنید، تیک گزینه Use Windows Authentication را علامت بزنید، همچنین می ‌توانید اطلاعات گواهی ورود به سیستم SQL Server را وارد کنید.
در پنجره Databases بر روی گزینه Refresh کلیک کنید تا همه پایگاه‌ های داده فهرست شوند، سپس پایگاه داده فعلی را انتخاب کنید. این Wizard به‌ طور کاملاً خودکار در طول این فرآیند دیتابیس جدیدی ایجاد می ‌کند.

انتخاب جداول یا پایگاه داده منبع

اکنون وقت آن رسیده که در پایگاه داده منبع، جداولی که قصد دارید اطلاعاتشان را انتقال دهید، انتخاب کنید. چنانچه کاربر بخواهد اطلاعات خود را از جداول متعدد یا ساختارهای نرمال نشده به جداول پایگاه داده SQL Server منتقل کند، امکان نوشتن کوئری برای انتخاب این داده ‌ها وجود دارد.

جداول و ویوها را از پایگاه داده منبع انتخاب کرده و به جداول مقصد وصل (attach) کنید. پس از انتخاب جداول و ویوها، دکمه Preview ستون‌ ها، ویوها یا کوئری ها را از جداول دیتابیس منبع به مقصد نشان می‌ دهد

اجرای Import Data Wizard در SQL Server

با کلیک بر روی Next، یک بسته SSIS برای انتقال داده ‌ها ایجاد می ‌شود. گزینه Save، یک دایرکتوری برای ذخیره بسته در سرور یا سیستم فایل درخواست می ‌کند.

در مرحله بعد، کاربر جزئیات سرور مقصد را در کنار نام شیء Source و Destination دریافت می‌ کند.

در نهایت بر روی Finish کلیک کنید تا Wizard داده‌ها را به سرعت و به‌طور خودکار از MySQL به SQL Server منتقل کند:

اگر انتقال اطلاعات از دیتابیس SQL در کامپیوتر شخصی با موفقیت انجام شود، سطرهای دیتابیس منتقل شده به همراه وضعیت انتقال آن‌ ها قابل مشاهده است:

انتقال اطلاعات از دیتابیس SQL در کامپیوتر شخصی با SSMA

انتقال اطلاعات از دیتابیس SQL در کامپیوتر شخصی برای با SSMA، باید فریمورک.NET را نصب کرده باشید. در ادامه فرض کنید که یک پایگاه داده در MySQL داریم و می ‌خواهیم 3 جدول موجود و جدول جدیدی با نام Contacts که در MySQL ایجاد شده ‌اند را با استفاده از SQL Server Migration Assistant for MySQL به SQL Server منتقل کنیم. SSMA را باز کرده و با انتخاب گزینه New Project، یک پروژه جدید بسازید.

ابتدا به MySQL متصل می ‌شویم:

نام سرور، نام کاربری، رمز عبور و پورت را مشخص کرده و در آخر گزینه Connect را انتخاب کنید:

اگر همه چیز درست باشد، دسترسی شما به پایگاه داده فراهم می ‌شود.

به دیتابیس جهانی که در SQL Server ایجاد شده، متصل شوید:

اگر همه چیز خوب باشد، می ‌توانید دیتابیس‌ های SQL Server را مشاهده کنید:

در پنجره MySql Metadata Explorer، جداول موردنظر خود را انتخاب کرده و آیکن Convert Schema را انتخاب کنید.

در مرحله بعد در بخش SQL Server Metadata، گزینه Synchronize with Database را انتخاب کنید.

یک پنجره جدید نمایش داده می ‌شود. دکمه تائید را فشار دهید.

در نهایت، جداول موجود در دیتابیس MySQL را انتخاب کرده و بر روی آیکن Migrate Data کلیک کنید.

اگر همه چیز به خوبی انجام شود، همه ردیف ‌ها و تعداد ردیف‌ های منتقل شده نشان داده می ‌شود. در این مثال جداول City و Contacts با موفقیت منتقل شدند. برخی از ستون‌ های 2 جدول دیگر مشکلات عدم سازگاری داشتند و منتقل نشدند.

انتقال اطلاعات از دیتابیس SQL در کامپیوتر شخصی با MySQL ODBC

در این روش برای انتقال اطلاعات از دیتابیس SQL در کامپیوتر شخصی از اتصال‌دهنده MySQL ODBC استفاده می‌شود.

  • ابتدا برنامه MySQL ODBC Connector را بارگیری و نصب کنید.
  •  ODBC Data Source Administrator را از آدرس Control Panel > Administrative Tools Administrative Tools باز کنید. در برگه System DSN روی گزینه «Add» کلیک کنید، آدرس «MySQL ODBC driver» را باز کرده و سپس «Finish» را انتخاب کنید.
  •  یک پنجره گفتگو باز می ‌شود، جزئیات اتصال سرور MySQL (نام کاربری و رمز عبور خود) را در پنجره جدید وارد کرده و OK کنید.
  •  حالت SQL_MODE را در هاست SQL Server بر روی ANSI_QUOTES تنظیم کنید.
  •  سپس برنامه SSMS را باز کنید.
  •  می توانید یک دیتابیس جدید بسازید یا از دیتابیس های قبلی استفاده کنید.
  •  پس از کلیک ‌راست بر روی دیتابیس مقصد و انتخاب گزینه Tasks، روی‌گزینه Import Data کلیک کنید تا SQL Server Import and Export Wizard راه ‌اندازی شود.
  • NET Data Provider for ODBC را به‌عنوان منبع داده انتخاب کرده و DSN که قبلاً ایجاد کرده بودید را تعیین کنید.
  •  SQL Server Native Client 10 را به‌عنوان مقصد انتخاب کنید، جزئیات پایگاه ‌داده SQL Server خود را وارد کرده و روی Next کلیک کنید.
  • گزینه Copy data from one or more table or views را انتخاب کرده و روی Next کلیک کنید.
  •  جداول مبدأ و مقصد را انتخاب کنید. با استفاده از گزینه Edit Mappings می ‌توانید درج هویت را فعال کنید.
  •  در آخر بسته را اجرا کرده و در صورت لزوم آن را برای استفاده بعدی ذخیره کنید.

کلام آخر

در این مقاله قدم به قدم انتقال اطلاعات از دیتابیس SQL در کامپیوتر شخصی به هاست SQL Server را به روش ‌های مختلف از جمله استفاده از SSMS، SSMA و MySQL ODBC را بررسی کردیم. شما از کدام ‌یک از این روش ‌ها برای انتقال دیتابیس خود به هاست استفاده می‌ کنید؟ اگر تجربه ‌ای در این زمینه دارید، منتظر نظرات ارزشمند شما هستیم.

https://www.sqlshack.com/sql-server-import-data-from-mysql-using-ssms/

https://www.mssqltips.com/sqlservertutorial/2205/mysql-to-sql-server-data-migration/

https://www.sqlshack.com/migrate-mysql-tables-sql-server-using-sql-server-migration-assistant-ssma-ssis/