انتقال فایل‌های دیتابیس اس کیوال سرور 2008
اندازه‌ی قلم متن
تخمین مدت زمان مطالعه‌ی مطلب: یک دقیقه


روز قبل نیاز بود تا فایل‌های mdf و ldf دیتابیس‌ها جابجا شوند (یک هارد بزرگتر و از این مسایل).
برای جابجا کردن این فایل‌ها هم روش معمول detach و سپس attach است. ابتدا روی دیتابیس کلیک راست کرده و detach . حالا فایل‌ها را جابجا می‌کنید و سپس attach . یا می‌شود بک آپ کامل گرفت و بعد ری استور کرد.
عموما هم نمی‌توان دیتابیس در حال استفاده را detach‌ کرد. باید دیتابیس ابتدا single user شود و بعد می‌توان این‌کار را انجام داد.
تا اینجای کار متداول است. همه چیز به خوبی انجام شد. سپس در لحظه attach ، دیتابیس‌ها به صورت read only اتچ شدند با آیکونی سیاه رنگ در management studio . (و رنگ من هم بلافاصله به همین رنگ متمایل شد!)
بعد از مدتی جستجو مشخص شد که در اس کیوال سرور 2008 برای کاهش سطح حمله به سرور، از یک سری یوزر با دسترسی کم برای نصب اس کیوال سرور استفاده می‌شود (بسیار هم خوب) و اس کیوال سرور 2008 ، یک سری یوزر مخصوص را هم در حین نصب ایجاد می‌کند که به صورت خودکار بر روی پوشه دیتای شما دسترسی full control دارد برای اینکه بتواند کارش را انجام دهد.
حال اگر شما در جای دیگری پوشه‌ای درست کردید و این دیتابیس‌ها را منتقل نمودید، مجددا پیش از هر کاری باید این دسترسی را برقرار کنید و گرنه اس کیوال سرور مجوز write نخواهد داشت؛ به همین جهت دیتابیس به صورت read only در management studio با رنگ مشکی ظاهر می‌شود.
نام این کاربر مخصوص به صورت زیر است:

SQLServerMSSQLUser$ComputerName$MSSQLSERVER




پس از برقراری دسترسی هم مشکل برطرف نمی‌شود. باید دستور زیر را نیز اجرا نمود:
ALTER DATABASE myDB SET READ_WRITE
اجرای این دستور نیز، نیاز به حالت single user دارد.

پ.ن.
می‌توان دسترسی یوزر سرویس اس کیوال سرور 2008 را نیز مانند نگارش‌های قبلی به حالت local system تغییر داد (یا هر اکانت دیگری با دسترسی بالا) تا این مشکلات نباشد؛ ولی بدیهی است سطح حمله به سرور نیز به همین اندازه افزایش می‌یابد.

  • #
    ‫۱۵ سال و ۵ ماه قبل، پنجشنبه ۲۴ اردیبهشت ۱۳۸۸، ساعت ۱۳:۳۲
    من به شخصه برای انتقال دیتابیس اول میام سرویس دیتابیس رو stop می کنم بعد منتقل میکنم و بعد دوباره سرویس رو Start می کنم . آیا این روش موردی داره ؟
    حتی تو یه برنامه مجبور شدم این کار رو توسط برنامه نویسی هم انجام بدم ...چونکه مجبور از فایل دیتابیس کپی بگیرم .
  • #
    ‫۱۵ سال و ۵ ماه قبل، پنجشنبه ۲۴ اردیبهشت ۱۳۸۸، ساعت ۱۴:۵۰
    - البته منظور از انتقال در اینجا بحث move و cut بود نه copy . بنابراین در حالت move ، سرور به نحوی باید از محل جدید مطلع بشه و نیاز به attach هست.
    - ضمنا اگر به دنبال امنیت هستید، کپی کردن mdf و ldf ممکن است کار دست شما بده و یک وقت خیلی ساده attach نشه. ولی بک آپ این مشکل رو نداره.
  • #
    ‫۱۵ سال و ۵ ماه قبل، پنجشنبه ۲۴ اردیبهشت ۱۳۸۸، ساعت ۱۸:۴۶
    این عدم دسترسی ممکن است هنگام attach سبب بروز خطاهای زیر هم شود (جهت تکمیل بحث):
    - Database cannot be upgraded because it is read-only or has read-only files. Make the database or files writeable, and rerun recovery

    - CREATE FILE encountered operating system error 5 (failed to retrieve text for this error. Reason: 1815) while attempting to open or create the physical file