السلام عليكم و رحمة الله وبركاته ...
يوجد في SQL Server عدد من قواعد البيانات الخاصة بالنظام هي Master, TempDB, msdb, Model ... يستخدمها SQL Server لإدارة قواعد البيانات الأخرى.
و كل قاعدة بيانات في SQL Server لابد أن تتكون من ملفين على الأقل هي Data File و الـ Log File ذات الامتداد mdf و ldf.
في أحيان كثيرة نحتاج لنقل موقع ملفات قواعد البيانات لأي سبب من الأسباب، و هذا بسيط نوعاً ما عن إذا كانت قاعدة بيانات مستخدم User Database عن طريق الأمر Deattach و Attach.
و لكن عندما نريد تغيير مواقع ملفات قواعد بيانات النظام، لابد من التفكير قليلاً قبل النقل. فلو تم النقل عن طريق Deattach و Attach سوف يتوقف SQL Server عن العمل.
لكي كل قاعدة بيانات من قثواعد بيانات النظام له طريقة مختلفه في نقل ملفاته... اليوم في هذا المقال سوف أتطرق إلى طريقة نقل ملفات قاعدة البيانات TempDB.
الأمر في غاية البساطة فقط عليك تنفيذ هذا الكود:
USE master;
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLData\tempdb.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = templog, FILENAME = 'F:\SQLLog\templog.ldf');
GO
و لكن لابد من معرفة مكان الملفين قبل تنفيذ هذا الكود، لأن هذا الكود سوف ينسخ الملفات و الأصل سوف تبقى مكانها. لذلك عند الانتهاء من تنفيذ الكود تذكر مسح الملفات الأصل لتوفير مساحة على القرص الصلب.
و بعد تنفيذ الكود، قم يإعادة تشغيل محرك قواعد البيانات Database Engine لكي تتم التغييرات.
و احرص على تغيير الجزء الموضوع تحته خط بما يتناسب مع موقع الملف الذي تريد وضعه فيه.
و تذكر أنه من المفضل وضع الـ Data File و Log File في محركين مختلفين كأفضل تطبيق، و سوف أتحدث لاحقاً عن هذا إن شاء الله.
أتمنى أن يكون المقال مفيد، و سوف اتطرق إن شاء الله في وقت لاحق عن طريقة نقل ملفات قاعدة البيانات master.
* الكود أعلاه يعمل في SQL Server 2000 و SQL Server 2005.
مع تحياتي ... طلال السبيعي.