كيفية الاستعلام من ملفات السجل (.LDF) من SQL Server 2005 Express Edition؟

StackOverflow https://stackoverflow.com/questions/2145717

سؤال

أريد أن أفعل ذلك ، لأنني أود أن أعرف عدد المرات التي تم فيها تغيير صف معين.

هل هذا ممكن؟

شكرًا

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

المحلول

قراءة ملف السجل إما تأخذ أداة تجارية ، أو قدر لا يصدق من المعرفة الداخلية SQL لتحقيقها. يمكنك رؤية بعض الإخراج الخام باستخدام: SELECT * FROM: FN_DBLOG (NULL ، NULL)

في الواقع ، سيكون فك التشفير للعثور على نفس السجل الذي يتم تغييره وضمان ارتكاب أي تغيير ، وما إلى ذلك ، مهمة صعبة لوضعها بخفة. لذلك فمن الممكن "ولكن ليس" محتملًا "جدًا أنك ستتمكن من القيام بذلك.

إذا كنت بحاجة إلى هذه الوظيفة داخل قاعدة بيانات ، فيجب أن تبحث عن المشغلات / المنطق داخل الكود.

نصائح أخرى

الإجابة المتأخرة ولكن آمل أن يكون من المفيد للقراء الجدد ...

وظيفة أخرى يمكنك تجربتها هي سجل DBCC ولكن للأسف هذه الوظيفة غير الموثقة مثل FN_DBLOG.

المشكلة في سجل المعاملات في خادم SQL هي أنه لم يكن من المفترض استخدامه لهذا ولكن فقط للسماح بخصائص استرداد الوقت والمعاملات.

هناك إعلان تجاري سجل القارئ من ApexSql يمكنك المحاولة.

فيما يلي أيضًا مشاركات متشابهة قد تنقلك في الاتجاه الصحيح.

اقرأ ملف السجل (*.LDF) في SQL Server 2008

SQL Server Transaction Log Explorer/Analyzer

يمكنك استخدام هذا البرنامج للقيام بذلك http://www.red-gate.com/products/sql_log_rescue/index.htm

النظر في استخدام SQL Server 2008.

هناك ميزة جديدة على SQL Server 2008 تسمى تغيير التقاط البيانات هذا يفعل بالضبط ما تحتاجه ، أي تتبع تعديلات البيانات مع مرور الوقت.

البحث عن ملف السجل من أجل تتبع التغييرات ليس ممارسة حكيمة. سيوفر لك القيام بذلك تاريخًا محدودًا ، وسيعتمد نطاقه أيضًا على نموذج الاسترداد الذي تستخدمه لقاعدة البيانات الخاصة بك.

يمكنك "لفة" حل الخاص بك "مع كمية صغيرة من التطوير ، باستخدام جدول السجل وتشغيله باستخدام مشغلات SQL Server. إن ملاءمة مثل هذا الحل تعتمد بالطبع على حالة عملك.

ألقِ نظرة على مقالة Technet التالية لبعض القراءة المثيرة للاهتمام:

تتبع التغييرات في قاعدة بيانات المؤسسة الخاصة بك

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