سؤال

هل هناك أداة مكافئة لتصدير/تفريغ المخططات والبيانات لـ SQL Server كما هو الحال في MySQL مع mysqldump.أحاول نقل موقع ASP القديم وأنا خارج المكان السعيد بالعمل على خادم Windows.

ملحوظة:يبدو أن أداة التصدير المساعدة الخاصة بـ DTS تقوم بتصدير البيانات، بدون تحديدات الجدول.أصبح استخدام Enterprise Manager وتصدير قاعدة البيانات أقرب إلى تصدير المخطط والبيانات...ولكن لا يزال يفتقد الإجراءات المخزنة.

أبحث بشكل أساسي عن حل يفعل كل شيء ويحصل على كل ما أحتاجه في وقت واحد.

هل كانت مفيدة؟

المحلول

أسهل طريقة هي معالج نشر قاعدة بيانات خادم SQL.

  • مفتوح المصدر
  • حر
  • هل بالضبط ما تريد
  • تم تطويره بواسطة مايكروسوفت

لا يحتوي على جميع ميزات mysqldump ولكنه قريب بدرجة كافية.

http://www.codeplex.com/sqlhost/wiki/view.aspx?title=database%20publishing%20wizard

نصائح أخرى

للقيام بذلك بسهولة باستخدام SQL Server 2008 Management Studio:

1.) انقر بزر الماوس الأيمن على قاعدة البيانات (وليس الجدول) وحدد المهام -> إنشاء البرامج النصية

location of tool

2.) انقر فوق التالي في الصفحة الأولى

3.) إذا كنت تريد نسخ قاعدة البيانات بأكملها، فقط انقر فوق التالي.إذا كنت تريد نسخ جداول معينة، فانقر فوق "تحديد كائنات قاعدة بيانات محددة"، وحدد الجداول التي تريدها، ثم انقر فوق التالي.

4.) يجب تحديد "حفظ إلى ملف". مهم:انقر فوق الزر "خيارات متقدمة" بجوار "حفظ في ملف"، وابحث عن "أنواع البيانات في البرنامج النصي"، وقم بتغيير "المخطط فقط" إلى "المخطط والبيانات" (إذا كنت تريد إنشاء الجدول) أو "البيانات فقط" (إذا كنت 'إعادة نسخ البيانات إلى جدول موجود).

adding data to the script

5.) انقر فوق الباقي وقد انتهيت!سيتم حفظه كملف .sql.

تتمثل أسهل طريقة لنقل قاعدة البيانات في استخدام SQL Server Management Studio لتصدير قاعدة البيانات إلى خادم آخر، أو إذا لم ينجح ذلك، فقم بعمل نسخة احتياطية كما اقترح الآخرون واستعادتها في مكان آخر.

إذا كنت تبحث عن طريقة لتفريغ بنية الجدول إلى SQL بالإضافة إلى إنشاء برامج نصية لإدراج البيانات، فسيكون الخيار المجاني الجيد هو استخدام amScript وamInsert من http://www.asql.biz/en/Download2005.aspx.

إذا كنت تريد إصدارًا جيدًا للدفع، فسأقوم بمراجعة Red-Gate SQL Compare وRed-Gate SQL-Data Compare.من المحتمل أن تكون هذه الأدوات مبالغة فيها وربما تكون باهظة الثمن بعض الشيء إذا كنت لا تنوي استخدامها كثيرًا.أعتقد أنه سيتم نقله في الغالب إلى مسؤولي قواعد البيانات.يمكنك إلقاء نظرة على أدوات Red-Gate على http://www.red-gate.com/.

لم أجد الأداة المناسبة، قررت إنشاء أداة خاصة بي:أداة مساعدة لسطر الأوامر sqlserverdump.التحقق من ذلك على http://sqlserverdump.codeplex.com/.

والأسهل من ذلك هو استخدام SMO API.فهو يتيح لك أن تفعل تمامًا مثل mysqldump، بل وحتى أفضل.فيما يلي مثال على الكود:

http://samyem.blogspot.com/2010/01/automate-sql-dumps-for-sqlserver.html

حسنًا، Mysqldump عبارة عن سلسلة من عبارات SQL.يمكنك القيام بذلك باستخدام DTS، ولكن لماذا لا تقوم فقط بإنشاء نسخة احتياطية واستعادتها على جهازك الجديد؟

إذا كنت تريد القيام بذلك عبر SQL:http://msdn.microsoft.com/en-us/library/aa225964(SQL.80).aspx

أو فقط انقر بزر الماوس الأيمن فوق قاعدة البيانات واضغط على المهام -> النسخ الاحتياطي (http://msdn.microsoft.com/en-us/library/ms187510.aspx)

الأسهل هو النسخ الاحتياطي والاستعادة أو الفصل والإرفاق

أو قم بإخراج كافة الجداول وإخراج BCP للبيانات ثم BCP في البيانات الموجودة على الخادم الجديد

أو استخدم DTS/SSIS للقيام بذلك

يمتلك SQL Enterprise manager أو SQL Server Management studio أساليب تعتمد على المعالج، وسيقوم الأخير بإنشاء البرامج النصية حتى تتمكن من رؤية كيفية القيام بذلك.

يمكنك أيضًا استخدام أوامر النسخ الاحتياطي والاستعادة.مزيد من التفاصيل هنا: http://msdn.microsoft.com/en-us/library/ms189826.aspx

إذا كان بإمكانك توصيل DTS أو Integration Services بكلا الخادمين، فيمكنك استخدام المعالجات "لنسخ الكائنات" من خادم إلى آخر.يتطلب "نسخ قاعدة البيانات" أن يتمكن الخادمان من المصادقة مع بعضهما البعض، وهو ما يعني عادةً أن يكونا على نفس المجال وأن الخدمة تعمل تحت تسجيل دخول المجال.

بخلاف ذلك، يمكنك إنشاء برنامج نصي للمخطط، ويمكنك استخدام حزمة Integration Services/DTS لتصدير البيانات إلى ملف، ثم استيرادها من الملف الآخر.

نحن الآن نستخدم بشكل عام مقارنة SQL و مقارنة بيانات SQL.البوابة الحمراء SQL الحزم قد يكون أيضًا خيارًا.

شيئان لن تفعلهما عملية النسخ الاحتياطي/الاستعادة:

  1. انطلق من خادم Microsoft ، الذي كان جزءًا من السؤال الأصلي
  2. ساعد في العثور على فرق هيكلي بسرعة بين اثنين من DBs من المفترض أن يكون له نفس الهيكل عندما يكون أحدهما يعمل ببطء.Unix Diff ، أو SDIFF ، متجاهلة المساحة البيضاء ولكن بحاجة إلى طريقة لصنع ملفات الإدخال.

إذا كنت بحاجة إلى عبارات SQL مكافئة مثل CREATE TABLE...& INSERT INTO...، ثم أنصحك بتجربة HeidiSQL.إنها أداة رائعة ومجانية يمكنها الوصول إلى Microsoft SQL Server وMySQL وPostgreSQL.فهو يمكّنك من تصفح البيانات وتحريرها وإنشاء وتحرير الجداول وطرق العرض والإجراءات والمشغلات والأحداث المجدولة.يمكنك أيضًا تصدير البنية والبيانات إلى ملف SQL.http://www.heidisql.com

انتقل إلى الأدوات / تصدير قاعدة البيانات بتنسيق SQL وحدد المخطط.حدد المربع لإنشاء الجداول وبيانات "إدراج".هذا كل شيء.

أفضّل HeidiSQL على "Microsoft SQL Server Management Studio" أو phpMyAdmin...إلخ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top