درباره نویسنده

16 دیدگاه

  1. فرشید علی اکبری

    فرشید علی اکبری

     سلام

    آموزش کاربردی و قسمت بعدی CDC را چه موقع ارائه می دهید؟ و با وجودیکه 
    In-Memory OLTP از cdc پشتیبانی نمیکند آیا راهکار بهتری برای اینگونه جداول با کمترین هزینه کاری برای سرور پیشنهاد میکنید؟

    پاینده باشید.
    پاسخ
    1. مسعود طاهری

      مسعود طاهری

       با سلام

      فرشید جان بله متاسفانه پشتیبانی نمیشه 
      مجبور هستیم از روش های کلاسیک مثل 
      1- تریگر
      2- کد نویسی در APP 
      3- ,…
      استفاده کنیم. 
      البته بایسد منتظر باشیم ببینیم در SQL Server 2016 آیا قابلیت استفاده از Temporal Database برای این نوع جداول پشتیبانی خواهد شد و یا خیر (احتمالا باید این مورد جزء درخواست های کاربران بوده و کاربران برای آن رای جمع آوری کنند)
      امسال بعد از Release یکسری درخواست را برای SQL Server 2016 مثل کاربران کشورهای دیگه استارت خواهیم زد. ان شااله  تا به کمک اعضاء محترم سایت بتونیم رای جمع آوری کنیم 
      موفق باشید
      پاسخ
  2. مسعود طاهری

    مسعود طاهری

     سلام مقاله شما برای آشنایی با CDC عالی است

    اگر بتوانید به شکل کاربردی یک مثال را هم پیاده سازی کنید خیلی عالی می شود
    موفق باشید
    پاسخ
  3. محمدحسین عبدالهی

    محمدحسین عبدالهی

    تشکر می کنم
    سوال : برای اینکه مشخص بشه چه کاربری تغییرات رو در جدول داده به چه صورت باید عمل کنیم؟
     آیا باید به ازای تک تک کاربران یوزری در اس کیو ال سرور به صورت کامل ایجاد کنیم ؟
    یا اینکه می تونیم با یک یوزر و پسورد که در اس کیو ال ایجاد شده برای هر کاربری به صورت مجزا مشخص کنیم چه فردی تغییرات CRUD را انجام داده است ؟

    پاسخ
    1. مسعود طاهری

      مسعود طاهری

       آیا باید به ازای تک تک کاربران یوزری در اس کیو ال سرور به صورت کامل ایجاد کنیم ؟ 

      یکی از راه ها همین روشی است که شما اشاره کردید به این نوع فیلدها اصطلاحا Audit Field می گوییم.
      که عموما به صورت D-Normal در جداول اعمال می گردد. مانند (کاربری که رکورد را درج کرده * آخرین کاربری که رکورد را ویرایش کرده * تاریخ درج رکورد* آخرین تاریخ ویرایش رکورد * آی پی کاربر درج کننده رکورد * آی پی کاربر درج کننده رکورد و…)

      یا اینکه می تونیم با یک یوزر و پسورد که در اس کیو ال ایجاد شده برای هر کاربری به صورت مجزا مشخص کنیم چه فردی تغییرات CRUD را انجام داده است ؟
      این روش را هم می توانید استفاده کنید در این حالت لازم از Database Audit Specification استفاده کنید 
      پاسخ
  4. مرجان آب بر

     با سلام و تشکر فراوان
    من چند ماه پیش روی این قضیه کار کردم تا بتوانم از cdc برای ذخیره تغییرات انجام شده توسط هر کاربر در برنامه ام استفاده کنم اما تا جایی که یادم هست مشکل عمده این بود مشخص نمیشد کدام کاربر این تغییرات را اعمال کرده است .
    با وجود ساختن یوزر جداگانه در اس کیو ال برای هر کاربر و لاگین کردن با این یوزر به اس کیو ال اما sql server aqent باز کاربر فعلی را همان یوزر ادمین ذخیره میکرد. و متاسفانه به نتیجه ای نرسیدم ممنون میشم اگه کسی راهنمایی نماید.

    پاسخ
    1. مسعود طاهری

      مسعود طاهری

      سلام 

      این موضوع در تاپیک بالا بررسی شده و چند راه حل ارائه شده است
      در ضمن یادتان باشد که کاربران  موجود در App عموما کاربران Businessی می باشند و نه کاربران دیتابیس بنابراین برای اینکه بفهمید چه کاربری اینکار را انجام داده است مجبور هستید از روش های اشاره شده در تاپیک بالا استفاده کنید (پاسخ سوال مربوط به آقای محمد حسین عبدالهی) بررسی شود
      پاسخ
  5. فرشید علی اکبری

     سلام مهندس طاهری عزیز

    میخواستم بدونم در بانکهای اطلاعاتی بزرگ که
    بالای 150 جدول اطلاعاتی دارند (منظورم  اینه که کل مجموعه نرم افزارها شامل سیستم های
    مختلف از یک دیتابیس تغذیه میشوند ولی با استفاده از گروه بندی های مختلف و شماها
    و سطح دسترسی های مختلف جداسازی شده اند) چنانچه در چنین بانک اطلاعاتی 
    CDC را (برای اطلاعات پایه
    گرفته تا کلیه فرمهای عملیاتی)  راه اندازی
    کنیم آیا مشکلی برای
    Performance سرور پیش نمی آید؟ البته
    در شرایطی که
    job های مربوطه را روی 60 روز
    برای حذف سوابق تنظیم کنیم و تعداد کاربران شبکه حداقل 10 نفر باشند آیا برای سرور
    شبکه هزینه بر است و یا اینکار فقط برای فاکتورها- رسیده- اسناد- کدینگ وامثال این
    موارد پیاده سازی شود؟  آیا بالاخره در نسخه 2016 ما امکان استفاده از cdc برای جداول
    In-Memory OLTP را خواهیم داشت؟

    از اینکه سئوالم طولانی شد عذرخواهی میکنم.

    با سپاس فراوان

    پاسخ
  6. مجتبی شهریور

    مجتبی شهریور

     سلام
    ضمن تشکر از مقاله خوبتون سئوالی برام پیش اومد و اون اینکه می خواستم بدونم اتفاقاتی که برای نگهداری در جدول رخ می دهد (بق بند آخر مقاله) منظور جول اصلی بانک اطاعاتی می باشد؟؟؟؟

    پاسخ
  7. جواد

    سلام خسته نباشید
    خیلی ممنون بابت مطلبی که بهش پرداخته اید
    من از CDC استفاده کردم و Backup از دیتابیس گرفتم وقتی که دیتابیس رو Restore کردم تمام اطلاعات جداول CDC  حذف شده اند و دیگر تغییرات را ذخیره نمی کند
    با تشکر

    پاسخ
    1. مسعود طاهری

      مسعود طاهری

       سلام 

      برای اینکار از Option ی به نام Keep_CDC باید استفاده کنید
      به مثال زیر توجه کنید
      RESTORE DATABASE YourDB FROM  DISK = N’C:\Dump\YourBackupFile.bak’ WITH  FILE = 1, KEEP_CDC
      موفق باشید
      پاسخ
  8. جواد

    خیلی ممنون بابت راهنماییتون
    این کارو کردم ولی نه اطلاعات برگشت نه دیگه تغییرات را ثبت میکنه
    موقع Backup  گرفتن هم باید از Keep_CDC استفاده کنم؟

    پاسخ
    1. مسعود طاهری

      مسعود طاهری

      1- آیا CDC الان روی دیتابیس اصلی فعال است ؟

      2- آیا به ازای تغییرات شما Capture گیری انجام می شود؟
      توجه داشته باشید که هنگام Restore باید سرویس Agent هم فعال باشه تا CDC بتونه روی اون تنظیم بشه. در ضمنا پس از Restore برای پروسه Capture گیری شما یک Job اضافه خواهد شد. چک کنید ببینید بعد از Restore اجرا شده و یا خیر ؟ در صورتیکه اجرا نشده باشد دستی آن را اجرا کنید
      موفق باشید

      پاسخ
  9. جواد

    درست شد خیلی خیلی ممنون
    سایت بسیار خوبی دارید خسته نباشید

    پاسخ
  10. m

    m

     سلام خوب بود فقط سعی کنید برای افرادی که از Express هم استفاده می کنند راه کار های جدید ارائه بدید من در حال حاضر از تریگر ها استفاده می کنم اگه لطف کنید راهکارهای جدیدتر در این زمینه ارائه بدید ممنون میشم تمام برنامه ها که نیاز به دیتابیس های بزرگ ندارند میشه از express استفاده کرد در ضمن دوره هایی مثل linked server را هم اگه لطف کنید ادامه بدید خیلی خوب میشه

    پاسخ
    1. مسعود طاهری

      مسعود طاهری

      یکی از راه های ساده جمع آوری لاگ تغییرات استفاده از تریگر است . یا اینکه در خود Application از این کار را انجام دهید. (لایه DAL)

      البته لازم می دانم اشاره کنم که این موضوع برای خود دردسرهایی نیز به همراه دارد
      پاسخ

ارسال یک نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

تمامی حقوق مادی و معنوی این وب سایت متعلق به نیک آموز می باشد.
این سایت توسط تیم آموزش برنامه نویسی نیک آموز مدیریت می شود.