إسقاط صلات قاعدة بيانات في MS SQL خادم 2000
-
03-07-2019 - |
سؤال
ولدي قاعدة البيانات التي لدينا مشاكل مع. بطريقة أو بأخرى وقد أصبح سجل 400 جيجابايت، وقد جعلت قاعدة البيانات عديمة الفائدة. أريد أن إسقاط كافة الاتصالات الموجودة في قاعدة البيانات ومن ثم فصل قاعدة البيانات.
وأساسا ما انا ذاهب الى القيام به هو التخلص من ملف السجل العملاقة وإنشاء واحدة جديدة وأعد ما اذا كان يعمل. إن لم يكن، ونحن في طريقنا الذهاب الى استعادة من النسخ الاحتياطي.
المحلول 3
وحسنا في الأساس لا يوجد أوامر من شأنه تنفيذ agaisnt قاعدة البيانات، على الإطلاق. ما انتهى به كان إيقاف الخدمة وإنشاء نسخ فارغة من يمول وملفات LDF واستبدال تلك المستخدمة من قبل خادم SQL. بعد ذلك نحن استعادة قاعدة البيانات من النسخة الاحتياطية الماضي وفويلا، انها تعمل مرة أخرى (في الغالب).
نصائح أخرى
إذا سجل لا طائل منه، يمكنك استخدام هذه الأوامر، ولكن يرجى توثيق عليها بنفسك قبل تطبيق على خادم إنتاج.
وBACKUP LOG WITH NO_LOG لdisgard صفحات من السجل،
وsp_helpdb الرئيسية ليبحث اسم ملفات ديسيبل
وSHRINKFILE DBCC ( 'الخاص بك اسم السجل "، 0) - لالكابلات ملف فعلي لحجم المحدد
إذا كنت متأكدا من عدم وجود صفقات مفتوحة يمكنك وضع قاعدة البيانات في وضع مستخدم واحد.
وALTER DATABASE [YourDB] SET SINGLE_USER مع NO_WAIT
عند الانتهاء وضعها مرة أخرى في وضع المستخدم متعددة ALTER DATABASE [YourDB] SET MULTI_USER مع NO_WAIT
هل
وسجل النسخ الاحتياطي yourdb مع SHRINKDATABASE truncate_only ثم DBCC (yourdb) لا تقليص ملف التسجيل بالنسبة لك؟
ALTER DATABASE [DB_NAME_HERE] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE [DB_NAME_HERE] SET MULTI_USER