السلام عليكم.
توجد لدي قاعدة بيانات Sql server(MDF file) واريد ان انقلها لجهاز آخر فكيف يتم ذلك ودمتم علما بأني جربت الأمر import وفشل فشلا ذريعا
ودمتم
السلام عليكم.
توجد لدي قاعدة بيانات Sql server(MDF file) واريد ان انقلها لجهاز آخر فكيف يتم ذلك ودمتم علما بأني جربت الأمر import وفشل فشلا ذريعا
ودمتم
:'(
ما فهمته أن الجهاز الآخر غير مرتبط بشبكة مع الجهاز الحالي
و بناء علي ذلك
أنشيء قاعدة بيانات فارغة أكسس عادية فارغة
ثم من
ENterprise MAnager
اختار القاعدة المطلوبة
right click
all tasks
Export
Next
Next
Choose Msaccess
choose File Name & Location
copy Tables and Views
و بذلك يتم نقل القاعدة الي ملف أكسس عادي
ثم انقل القاعدة الي الجهاز الجديد
و استورد الملفات اليها بنفس الطريقة (بالعكس)
أخي شكرا لإهنمامك ومحاولة مساعدتي ولكن دعني اوضح بعض الأمور.
أولا قاعدة البيانات هذه بإستخدام SQL Server 7
ثانيا : كنا نستخدم قاعدة البيانات هذه منذ حواي سنه ، ومنذ ذلك الحين إنتقلنا إلى نظم أخرى ونقلنا الملفات (نقلا) إلى خادمات أخرى.
وبقيت ملفات هذه القاعدة (.MDF) موجودة على الخادم دون تفعيل (إذ كنا نستخدم قواعد ونظم أخرى) .
الآن أحتاج لنقل مجموعة من البيانات القديمة (من القاعدة القديمة) .
وكما قلت لك لا يوجد الا الملفات.
ما قمت بعملة أنني انشأت قاعدة بيانات (في SQL server ) بنفس الإسم القديم. وحاولت ربطها بالملفات القديمة (الملفات موجودة بالكامل ولم تتغير) الا ان SQL server يرفض الإرتباط بها.
افيدوني وساعدوني وفقكم الله.
من الانتربرايز ماناجر
اختار خصائص القاعدة البيانات
ثم
Data File
و امتداده Mdf
ثم أعد توجيه المسار الي الملف الذي نقلته
و نفس الشيئ بالنسبة لل Log File
و امتداده ldf
و ان لم تنجح فأخبرني
بالتأكيد هذا أول شيء عملته ولكن لا يقبل ويعطي رسالة:-
A database file's physical file name cannot be changed once the database file has been created.
وحتى لو عملت قاعدة جديدة بنفس الإسم ووضعت الملف القديم سيفشل ويعطي رسالة :-
cannot create file ... because it already exists.
بعد اذنك سأغير عنوان السؤال
حتي يأتي الي هنا من يعرف الاجابة
يـــــــــــارب
الرسالة مبينة عليها من زمان ، انا لو كنت باعرف انها عن SQL Server لكنت تدخلت للاجابة فورا :)
معلش حصل خير
نقل قواعد البيانات من جهاز الى اخر عملية سهلة جدا في Microsoft SQL Server و حتى نقل واعد بيانات بين SQL Server 7 الى 2000 سهلة جدا ايضا.
اسهل الطرق هي ان تذهب الى الجهاز القديم و من ال Enterprise Manager تقوم بعمل Backup لقاعدة البيانات في ملف
و تذهب الى الجهاز الجديد و تعمل لها Restore هناك و تنتهي المسئلة
بالطبع عند ال Restore انتبه لاسماء الملفات الجديدة (انت طبعا يجب ان تعمل لها Restore فوق قاعدة بيانات جديدة فارغة و تختار اختيار حذف البيانات القديمة) و لكن مع ذلك سيعرض عليك اماكن جديدة لملفات ال MDF انتبه لها حيث ان الكثيرون يواجهون مشاكل في هذه النقطة
اما عملية النقل نفسها فسهلة جدا
اذا كنت تحب نقل قاعدة البيانات مع ملفاتها فيمكنك استخدم الامر Attach Database و Deatach
-- ============================================= -- Attach database via sp_attach_single_file_db -- ============================================= -- note: it builds a new log file and performs additional cleanup work -- to remove replication from the newly attached database EXECUTE sp_attach_single_file_db @dbname = N'<database_name, sysname, test_db>', @physname = N'<physname, nvarchar(260), c:program filesmicrosoft sql servermssqldatatest_db.mdf>' GO -- ============================================= -- Attach database via sp_attach_db -- ============================================= EXECUTE sp_attach_db @dbname = N'<database_name, sysname, test_db>', @filename1 = N'<filename1, nvarchar(260), c:program filesmicrosoft sql servermssqldatatest_db.mdf>', @filename2 = N'<filename2, nvarchar(260), c:program filesmicrosoft sql servermssqldatatest_db_log.ldf>' GO -- ============================================= -- Detach database via sp_detach_db -- ============================================= EXECUTE sp_detach_db @dbname = N'<database_name, sysname, test_db>', @skipchecks = N'<skipchecks, nvarchar(10), TRUE>' GO
الساق هي 3 اوامر للعملية و بامكانك استخدامهم سهولة لفصل قاعدة البيانات و ربطها في مكان جديد و هناك من يستخدم تلك الاوامر عبر البرامج المخصصة لذلك او عبر Access او عبر برامج ADO و ذلك في حال استخدمت النسخة المصغرة من SQL Server و التي لا يوجد لها برنامج ادارة
بالطبع بامكانك استخدام تكنولوجيا DTC و تكنولوجيا نقل بيانات غيرها و لكن اسهل اسهل اسهل الطرق هي Backup and Restore اذا ال SQL Server كان بيعمل و Deatach و Attach اذا ما كان يعمل و لكن قبل استخدام المجموعة الثانية من الاوامر اذا رغبت باستخدامها اعمل Backup حتى لا تروح قاعدة البيانات
المجموعة الثانية من الاوامر تفصل الاتصال بقاعدة البيانات و ترجع الاتصال بها في جهاز اخر ، اعمل تجارب على قاعدة بيانات جديدة تصنعها لهذه العملية قبل القيام بالامر على الحقيقية
شيئ اخر ، في حالة نسخك قاعدة البيانات بدون Deatach لها فهذا لن يكون مشكلة و لكن قم بايقاف ال SQL Server قبل ذلك و من ثم انسخ الملفات ، لا تنسخ الملفات و ال SQL Server شغال لانك ستنسخ محتويات خاطئة لهذه الملفات حيث ان SQL Server عندما يعمل يستخدم ملفات اضافية
ايقاف SQL Server سهل جدا و يتم عبر ال Services في لوحة التحكم او عبر برنامج الادارة نفسه
بالتوفيق و في حال وجود اسئل اخرى عن SQL Server بامكانك وضعها في المنتدى و لو حدثت مشاكل ارسل لي اعلام بريدي فربما اذا لم اكن مشغول اتمكن من الاجابة عليها :)
تم تعديل هذه المشاركة بواسطة walcom في 23 مارس 2005 في 12:18
افضل طريقة هي ان يتم تصدير الـبنية الخاصة بقاعدة البيانات Structure وتصدير البيانات علي هيئة ملفات XML و XSD .
اعتقد ان عمل الـRestore لن ينجح الا إذا كانت نفس نسخة الـSQL Server التي تم عمل Backup بها ...
والله اعلم .
هذا الموضوع مغلق.