راهکارهای ساده برای امن کردن انبار داده

راهکارهای ساده برای امن کردن انبار داده

امن کردن انبار داده (DWH) به معنای حفظ و حفاظت از امنیت و حریم خصوصی داده‌های موجود در انبار داده است. امنیت انبار داده شامل محافظت از دسترسی غیرمجاز، جلوگیری از افشای اطلاعات حساس، بهبود حفظ صحت و صحت داده‌ها، و دیگر اقداماتی است که به منظور حفاظت و افزایش امنیت داده‌ها در ایمن سازی انبار داده انجام می‌شود.

از آنجا که امنیت سایبری همچنان خطرناک ترین و ویرانگرترین عامل تهدید کننده است، امن کردن انبار داده ضروری است. توسعه دهندگان باید سیستم های بی عیب و نقص را برای محافظت از داده های حساس شرکت ها  و  مشتریان طراحی کنند. در این مقاله، شما با اصول و چالش های امن کردن انبار داده، حریم خصوصی، راههایی برای بهبود حفاظت از انبار داده ، از جمله روش های رمز گذاری و رویکردهای مبتنی بر سخت افزار آشنا خواهید شد.

امنیت انبار داده

یک انبار داده یا DWH یک ابزار نرم‌ افزاری است که اطلاعات کسب و کار را از چندین منبع جمع‌ آوری می‌ کند. به طور ساده، یک مخزن است. داده‌ ها را ذخیره می‌ کند، دسترسی سریع را فراهم می کند و به آنالیز داده ها کمک می کند. البته، این مخزن داده باید امن باشد و اینجاست که مشکل اصلی پیش می‌ آید.

در کل، حفظ امنیت انبار داده شبیه به امنیت سایر سیستم‌ ها است. در حالی که کارکنان باید بتوانند در هنگام نیاز،  به داده‌های مورد نیاز دسترسی پیدا کنند، برنامه‌های محافظت شده باید از دسترسی غیرمجاز و حملات هکری جلوگیری کنند . با این حال، دسترسی بسیار سختگیرانه باعث تداخل کار کاربران با اطلاعات یکپارچه می‌شود. علاوه بر این، امنیت همیشه بر عملکرد تأثیر می‌گذارد.

صاحبان کسب و کار باید قبل از ساخت انبار داده ها به حفاظت از داده‌ های شرکت/کاربران توجه کنند. به روش‌ هایی که قصد استفاده از داده‌ ها را دارید توجه کنید. به عنوان مثال، انبارهای داده ای که بر داده های فروش تمرکز دارند باید سطوح دسترسی جداگانه ای برای هر مشتری داشته باشند. به طور همزمان، انبارهای داده برای کارهای داخلی، باید به فرآیندهای سریع و بدون خطا، اولویت دهند.

چالشهای ایمن سازی انبار داده

با توجه به اهمیت تعادل بین دسترسی آسان و اقدامات امنیتی، چالش‌های امنیتی مربوط به مدل‌سازی و امن کردن انبار داده را بررسی می‌کنیم. علاوه بر این موضوع، چندین نکته دیگر وجود دارد:

    چالش های امنیت انبار داده

    • طبقه‌ بندی وظایف: چگونه وظایف کاربران را طبقه بندی کنیم تا دسترسی صحیح را برای آنها فراهم کنیم. این نکته ممکن است فقط شامل کارکنان باشد و یا مشتریان و شرکای همکار نیز اضافه شوند.

    در وظایف طبقه‌بندی، ما با مسئله‌ای روبرو هستیم که برای یک نمونه داده ورودی، برچسب کلاسی را پیش‌بینی می‌کند. این مسئله می‌تواند شامل تعیین دسترسی صحیح برای کاربران باشد. به عنوان مثال:

    1. طبقه‌بندی دودویی (Binary Classification): در این نوع، ما یکی از دو کلاس را پیش‌بینی می‌کنیم. به عنوان مثال، تشخیص ایمیل‌ها به عنوان “اسپم” یا “غیر اسپم”.
    2. طبقه‌بندی چندکلاسه (Multi-Class Classification): در این حالت، ما باید یکی از بیش از دو کلاس را پیش‌بینی کنیم. به عنوان مثال، تشخیص نویسه‌های دست‌نویس به عنوان یکی از نویسه‌های شناخته‌شده.
    3. طبقه‌بندی چندبرچسبی (Multi-Label Classification): در این نوع، ما باید یک یا چند کلاس را برای هر نمونه پیش‌بینی کنیم. به عنوان مثال، تشخیص رفتار کاربران به عنوان “لغو اشتراک” یا “عدم لغو اشتراک”.
    4. طبقه‌بندی نامتوازن (Imbalanced Classification): در این حالت، توزیع نمونه‌ها در کلاس‌ها مساوی نیست. به عبارت دیگر، تعداد نمونه‌ها در هر کلاس متفاوت است.

    برای انجام طبقه‌بندی، ما به داده‌های آموزشی نیاز داریم که شامل مثال‌های ورودی و خروجی‌ها باشد. مدل‌های مختلفی برای حل مسائل طبقه‌بندی وجود دارند، اما مهم‌ترین نکته انتخاب مدل مناسب برای هر مسئله است .

    • روش‌های رمزگذاری: مدیران باید بهترین ترکیب نرم‌افزار/سخت‌افزار را برای کاهش هزینه‌ها و تنظیم کیفیت بالا دریافت کنند.
    • مساله استخراج: پایگاه‌های داده نه تنها اطلاعات را ذخیره می‌کنند، بلکه به کاربران اجازه می دهند اطلاعات را مشاهده، تبادل ، آپلود و دانلود کنند. اقدامات امنیتی باید این لینک‌های ضعیف را در نظر بگیرند.
    • تأثیر عملکرد: هر چه سیستم پیچیده‌تر و محافظت شده‌تر باشد، منابع بیشتری مورد نیاز است. بارگذاری های سنگین منجر به کرش و در بدترین حالت، نشت اطلاعات می‌شود.

     

     

    جنبه های معماری برای ایمن سازی انبار داده

    بهتر است در ابتدا برای ساخت یک انبار داده ایمن، به این نکات توجه کنید. با توجه به اینکه شرکت‌ها با جذب مشتریان و شرکای جدید رشد می‌ کنند، این فرآیند منجر به منابع داده‌ای جدید و همچنین سطوح دسترسی جدید می‌ شود. بدون برنامه‌ ریزی اولیه مناسب، شما باید اقدامات امنیتی جدید را اضافه کنید و دسترسی برای تمام شرکای جدید را تنظیم کنید و در نتیجه منابع اضافی را تخصیص دهید.

    ساخت یک پلتفرم قوی و محافظت شده از ابتدا، بسیار آسان تر از طراحی مجدد آن برای امن کردن انبار داده، اضافه کردن ویژگی های جدید یا ارتقاء لایه های امنیتی است. بنابراین بهتر است برای ساخت یک پلتفرم قوی و محافظت شده، در ابتدا طراحی صحیحی را انجام دهید.

    با توجه به مدل سازی انبار داده ، سه فعالیت کلیدی وجود که با بهره گیری از آن ها می توانید امنیت انبار داده را حفظ کنید و از دسترسی غیرمجاز به داده های خود جلوگیری کنید:

    جنبه های معماری امنیت انبار داده

    ۱.دسترسی کاربران

    برای شروع، در یک سیستم لایه‌های دسترسی وجود دارد. این لایه‌ها می‌توانند بر اساس معیارهای مختلفی مانند نوع داده‌ها، وظایف شغلی، سلسله مراتب شرکت یا نقش کارکنان تنظیم شوند. هنگام طراحی انبار داده، باید در مورد داده‌هایی که افراد به آنها دسترسی دارند فکر کنید و سپس، اطلاعات و کاربران را طبقه‌ بندی کنید.

    دو رویکرد در طبقه‌بندی داده وجود دارد:

    • بر اساس حساسیت: اطلاعات شخصی بسیار حساس، محدودتر خواهند بود در حالی که داده‌های عمومی برای بیشتر کاربران قابل دسترسی خواهند بود.
    • بر اساس عملکرد: هر گروه دسته بندی شده از کاربران فقط به داده‌هایی که برای کارشان نیاز دارند، دسترسی خواهند داشت. سایر اطلاعات مسدود خواهند شد.

    و دو رویکرد در طبقه‌بندی کاربر:

    • بر اساس سلسله مراتب: این مدل برای شرکت‌هایی با تعداد کمی دپارتمان مناسب است. بنابراین، می‌توانید انبار داده‌هایی با دسترسی‌های منحصر به فرد برای هر تیم ایجاد کنید.
    • بر اساس نقش: اگر یک شرکت تعداد زیادی شعبه با داده‌های مورد نیاز مشابه دارد، بهتر است دسترسی‌ها بر اساس نقش‌ها تنظیم شود: مدیران، توسعه‌دهندگان، تحلیل‌گران و غیره.

    با انتخاب یک روش یا ترکیب چندین روش، مدیران می‌توانند یک معماری انبار داده جامع و قابل توسعه ایجاد کنند. به خاطر داشته باشید که انواع داده/کاربر جدید ممکن است در طول زمان اضافه شوند بنابراین از کلاس‌های سراسری استفاده کنید.

    ۲.انتقال و بارگذاری داده ها

    به طور معمول، هنگامی که یک کارمند به داده ها دسترسی دارد، امنیت داده ها به خطر می افتد. گاهی اوقات، زمانی که بسته ها آپلود یا دانلود می شوند، هکرها به سرعت به مناطق منع شده دسترسی پیدا می کنند. همچنین، کارکنان می توانند به طور مستقیم اطلاعات حساس را سرقت کنند. به عنوان مثال، در آوریل ۲۰۱۹، بیش از ۵۴۰ میلیون رکورد خصوصی فیس بوک در سرورهای عمومی آمازون یافت شد. این یک مثال روشن از عدم امنیت در زمان تبادل داده بین پلتفرم ها است.

    برای حفظ  امنیت انبار داده در سطح بالا، به سؤالات مربوط به جنبه های مختلف انتقال داده پاسخ دهید:

    • فایل‌های اصلی کجا ذخیره می‌شوند؟ چه کسانی به این دایرکتوری‌ها دسترسی دارند؟
    • آیا فایل های بکاپ وجود دارند؟ چگونه ذخیره می‌شوند و چه کسانی به آنها دسترسی دارند؟
    • چگونه با داده‌های موقت(temporary) کار می‌کنید؟ نتایج پرس و جو کجا ذخیره می‌شوند؟

    صرف نظر از نوع داده، به یاد داشته باشید که استانداردهای امنیتی را حفظ کنید. به عنوان مثال، اغلب، کارکنان معمولی می‌توانند یک کوئری را انجام دهند و جداول موقت با اطلاعات محدود را دریافت کنند. این قابل قبول نیست.

    ۳.الزامات شبکه

    علاوه بر امنیت کاربر و داده، نباید مسائل فنی فراموش شود. از مدل سازی انبار داده برای طراحی و اتصال زیرساخت های قابل اعتماد استفاده می شود. برای ایمن کردن شبکه خود، باید برنامه ریزی کنید که داده ها چگونه در سراسر سازمان جریان پیدا کنند، چه راه هایی برای ارسال و دریافت اطلاعات استفاده خواهید کرد و چه نوع رمزگذاری را (اگر وجود دارد) استفاده خواهید کرد.

    متخصصین علوم داده  با بسیاری از سیستم های مبتنی بر معماری ضعیف انبار داده کار کرده اند. یکی از مشکلات رایج، به معنای قابلیت توسعه پذیری ضعیف است. شرکت ها از روش های رمزگذاری پیشرفته استفاده می کنند اما فراموش می کنند که بسته های داده بزرگ با گذر زمان نیاز به قدرت پردازش بیشتری دارند. به همین دلیل، طراحی ساختار قبل از ایجاد DWH  بسیار حیاتی است.

    بهترین روش ها برای امن کردن انبار داده

    روش های سخت‌افزاری

    ممکن است اینطور به نظر برسد که شرایط فیزیکی و حفاظتی انبار داده اهمیت کمتری نسبت به جنبه‌های دیجیتال، داشته باشد. ولی سخت افزار همچنان یک سطح امنیتی حیاتی است. اگر یک کارمند کلاهبردار به صورت فیزیکی به انبار داده دسترسی پیدا کند و به اطلاعات ارزشمند  آسیب بزند یا آن ها را سرقت کند، تمام تصمیمات نرم‌ افزاری بی فایده خواهند شد . راه‌حل‌های متمرکز بر سخت‌افزار، به سه نکته زیر می‌رسند:

      روشهای سخت افزاری امن کردن انبار داده
      1. کنترل دسترسی فیزیکی به انبار: برای این کار، روش‌های شناسایی پیشرفته وجود دارد. دستگاه های بیومتریک، اسکنرها، دوربین‌ها و سایر دستگاه‌ها می‌توانند با موفقیت از دسترسی غیرمجاز به سرورها جلوگیری کنند.
      2. تعیین پروتکل‌های امنیتی استاندارد: اطمینان حاصل کنید که همه کارمندان (و مهمانان در صورت نیاز) از پروتکل‌های شرکت اطلاع دارند . آنها باید همیشه این قوانین را رعایت کنند. استانداردها باید واضح، قابل فهم و موثر باشند.
      3. استفاده از قطعات سخت‌افزاری قابل اعتماد: سیستم‌های قدیمی ممکن است به دلیل مشکلات ساده سخت‌افزاری، امنیت قابل اعتمادی را فراهم نکنند. سرورها اغلب در بارهای سنگین خراب می‌شوند، پردازنده‌ها به معنای واقعی کلمه می سوزند و کل شبکه‌ غیرفعال می‌ شود که باعث می ‌شود نفوذ به سیستم آسان ‌تر شود.

      اگرچه حفظ امنیت فیزیکی انبار داده بسیار مهم است، اما ما به مدیران پیشنهاد می‌دهیم هزینه‌ها را با دقت محاسبه کنند. در حالی که خسارت تخمینی از نشت داده، چند میلیون دلار است، ایجاد دفاع فیزیکی که چند میلیارد دلار هزینه دارد، غیرمنطقی است. با این حال، شرکت‌های بزرگ باید در دفاع فیزیکی سرمایه‌گذاری کنند. به عنوان مثال، ۳ میلیارد حساب کاربری یاهو به خطر افتاده بود و منجر به خسارت ۳۵۰ میلیون دلاری شد. احتمالاً، جلوگیری از این حمله ارزان‌ تر می بود.

      روش های نرم افزاری

      نرم‌افزار یک عامل کلیدی در امنیت سایبری است. در زیر، چندین راهکار نرم افزاری برای امن کردن انبار داده‌ها در برابر دسترسی غیرمجاز آورده شده است:

      روشهای نرم افزاری امن کردن انبار داده
      • رمزنگاری داده: اصلی ترین لایه محافظتی، روش‌های رمزنگاری را برای جلوگیری از خواندن اطلاعات توسط افراد غیرمجاز فراهم می‌کند. رمزنگاری اطلاعات در پایگاه‌های تراکنشی الزامی است.همچنین، بهتر است که در پایگاه داده‌های اصلی نیز از رمزنگاری استفاده شود. برای این کار، می‌توانید از الگوریتم‌های AES و نرم‌افزارهایی که با FIPS 140-2  گواهی شده‌اند، استفاده کنید.
      • حفاظت از انتقال داده: امروزه داده های زیادی در سیستم های ابری ذخیره می شود. مطمئنا، کسب و کارها باید آن را انتقال دهند، با شرکا به اشتراک بگذارند، کپی کنند و غیره. برای حفاظت از داده‌های در حال انتقال، از پروتکل‌های سنتی مانند SSL و TSL استفاده کنید. همچنین، سعی کنید برای افزایش امنیت آنلاین، VPN را به سیستم خود اضافه کنید.
      • طبقه‌بندی داده: تمام داده‌ها در انبارهای داده باید مطابق با دسترسی کاربران طبقه‌بندی شوند. می‌توانید از روشی که بیشتر مورد علاقه‌تان است، مانند طبقه‌بندی بر اساس عملکرد یا دپارتمان ها، استفاده کنید. همچنین، باید از تقسیم بندی داده‌ها استفاده کنید. این روش بر اساس ایده حساسیت است و اطلاعات حساس را از بسته‌های دیگر جدا می‌کند.
      • کنترل مبتنی بر نقش: علاوه بر طبقه‌بندی داده، به یاد داشته باشید که به نقش‌ها و اختیارات کاربران نیز توجه کنید. برای کاربران مختلف مجوزهای متفاوتی تعیین کنید تا کارمندان غیرمجاز نتوانند درخواست‌های SQL را ارسال کنند، جداول موقت ایجاد کنند یا داده‌ها را دانلود کنند. حتماً باید پروفایل‌های مدیران را به خوبی محافظت کنید زیرا آنها می‌توانند دسترسی کاربران دیگر را فعال یا غیرفعال کنند.
      • انبارهای داده‌ خصوصی مجازی : (VPD) این ابزارها به شما اجازه می ‌دهند تا تدابیر امنیتی را بر روی جداول، پروفایل‌ ها، کلمات، ردیف‌ ها، ستون‌ ها و موارد دیگر تنظیم کنید. VPDها دسترسی ‌ها را به صورت پویا محدود می ‌کنند و هر شیء را، به جای کل انبار داده محافظت می‌ کنند. با این ویژگی، مشتریان بانک فقط تراکنش‌های خود را و کارمندان فقط حقوق خود را مشاهده خواهند کرد.

      در حفاظت نرم افزاری نیز محاسبه ی هزینه‌ها را فراموش نکنید. اگر آسیب به صورت بالقوه کم است، نیازی به راه‌حل‌های پرهزینه نیست . خسارت‌های اعتباری را نیز در نظر بگیرید. به عنوان مثال، بانک‌ها حتی اگر داده‌های حساس زیادی در انبار داده خود نداشته باشند، به سیستم‌های امنیتی پیشرفته علاقه‌مند هستند. به طور طبیعی، بانک‌های محافظت شده توسط مشتریان بیشتری مورد تقاضا هستند.

      روندهای آینده

      روش های متعددی برای امنیت انبار داده و حفظ حریم خصوصی آن ارائه شده است. روش های امنیتی اغلب در مورد رمزنگاری، حسابرسی، انتقال، نمایش، اتصالات چندپلتفرمی و مدل‌سازی کلی انبار داده صحبت می‌کنند. اکثر مطالعات بر روی مدل‌های توسعه پذیر و مستقل تمرکز دارند، در حالی که رویکردهای محبوب شامل کوئری های رمزنگاری شده، تکنیک‌های امنیتی مبتنی بر UML و XML هستند.

      می‌توانیم پیش‌بینی کنیم که رویکردهای قدیمی مانند کنترل دسترسی اجباری به مرور زمان از بین خواهند رفت، زیرا کارشناسان امنیت سایبری گزینه‌ هایی با کارایی بیشتر را معرفی خواهند کرد.

       

      راهکارهایی برای بهینه‌ سازی TempDB و دسترسی به دیسک در SQL Server

      راهکارهایی برای بهینه‌ سازی TempDB و دسترسی به دیسک در SQL Server

      یکی از مشکلات رایج در عملکرد پایگاه داده، بهینه‌سازی TempDB است. چند نکته اساسی برای به دست آوردن بهترین عملکرد ممکن از TempDB شما وجود دارد، اما باید در نظر داشته باشید که هر سروری بصورت جداگانه نیاز به بهینه‌سازی دارد. گزینه‌ای در تنظیمات سرور وجود ندارد که با فعال کردن آن، عملکرد بهینه به دست آید. شما باید جزئیات خاص مثال پایگاه داده خود را بررسی کنید و سرور را به گونه‌ای تنظیم نمایید که بهترین عملکرد را از ترکیب سخت‌افزار، نرم‌افزار و بار کاربری خود به دست آورید.

      پیکربندی صحیح زیرسیستم‌های ورودی/خروجی برای دستیابی به عملکرد و کارکرد بهینه SQL Server حیاتی است. برخی از رایج‌ترین و بهترین شیوه‌های توصیه شده بهتر است در زمان پیکربندی و نصب سرور انجام شوند.

       

       درک ویژگی‌ ها و نیازهای دسترسی به دیسک SQL Server

      برای موفقیت در طراحی و استقرار ذخیره‌ سازی برای نصب SQL Server خود، باید درک اساسی از الگو ها و ویژگی‌ های دسترسی به دیسک SQL Server داشته باشید. Performance Monitor بهترین مکان برای جمع‌ آوری این اطلاعات برای یک برنامه است که اجازه می‌ دهد به اطلاعات خاصی برسید.

      • نسبت خواندن در مقابل نوشتن برنامه چیست؟
      • معمولاً نرخ ورودی/خروجی (عملیات ورودی/خروجی در ثانیه، مگابایت در ثانیه و اندازه عملیات ورودی/خروجی) چقدر است؟
      • شمارنده‌های perfmon را نظارت کنید:
      • میانگین بایت خوانده شده/نوشته شده در ثانیه
      • خواندن/نوشتن در ثانیه
      • بایت خوانده شده از دیسک/نوشته شده به دیسک در ثانیه
      • میانگین زمان دیسک به ازای هر خواندن/نوشتن
      • میانگین طول صف دیسک
      • چقدر از دسترسی‌های ورودی/خروجی به صورت ترتیبی یا تصادفی هستند؟ آیا این عمدتاً یک برنامه OLTP است یا انباره داده رابطه‌ای؟

      برای عملکرد بهینه، همیشه اسپیندل بیشتر(IOps بالاتر) و سریع‌تر بهتر است

      • دیسک‌های اضافی با اسپیندل‌های بیشتر همیشه اجازه عملکرد بیشتر را می‌دهند و احتمال اینکه سرعت دیسک منبع گلوگاهی برای عملکرد اوج شما باشد را کاهش می‌دهند.
      • مطمئن شوید تعداد اسپیندل‌های کافی برای پشتیبانی از نیازهای ورودی/خروجی شما با تاخیر قابل قبول وجود دارد.
      • از فایل گروه‌ها برای نیازهای مدیریتی مانند پشتیبان گیری و بازیابی، در دسترس بودن بخشی از پایگاه داده و غیره استفاده کنید.
      • از فایل‌های داده برای “نواربندی” پایگاه داده در سراسر پیکربندی ورودی/خروجی خاص شما (دیسک‌های فیزیکی، LUNها و غیره) استفاده کنید. پایگاه داده خود را روی چند فایل داده توزیع نمایید.
      • طراحی‌های ساده‌تر به طور کلی عملکرد خوب و انعطاف‌پذیری بیشتری نسبت به طراحی‌های پیچیده ورودی/خروجی دارند

         

      • این به طور اساسی رویکرد “ساده نگه دارید احمق” KISS به طراحی ورودی/خروجی است.
      • از تلاش برای بیش از حد بهینه‌سازی ورودی/خروجی با قرار دادن انتخابی شیءها روی اسپیندل‌های جداگانه اجتناب کنید مگر اینکه برنامه را بسیار خوب درک کنید.
      • مطمئن شوید از ابتدا به استراتژی رشد فکر کنید. همان‌طور که اندازه داده‌های شما رشد می‌کند، چگونه رشد فایل‌های داده، LUNها یا گروه‌های RAID را مدیریت خواهید کرد؟ بسیار بهتر است از ابتدا برای این موضوع طراحی کنید تا اینکه در یک استقرار تولیدی بعداً فایل‌های داده یا LUN(ها) را مجدداً متوازن کنید.

      پیکربندی‌ها را قبل از استقرار اعتبارسنجی و آزمایش کنید

      • آزمایش عبوردهی پایه زیرسیستم ورودی/خروجی را قبل از استقرار مثال SQL Server خود انجام دهید. مطمئن شوید این آزمایش‌ها قادر به دستیابی به نیازهای ورودی/خروجی شما با تاخیر قابل قبول هستند.
      • SQLIO  یکی از ابزارهایی است که می‌تواند برای آزمایش عملکرد مورد استفاده قرار گیرد. یک سند با پایه‌های آزمایش یک زیرسیستم ورودی/خروجی با این ابزار ارائه شده است. این ابزار اکنون از رده خارج شده و جایگزین آن می توانید از DiskSpd استفاده کنید.
      • DiskSpd  یک افزوده جدید به مجموعه ابزارهای در دسترس شماست. از این ابزار می توانید برای تست عملکرد سیستم ذخیره سازی خود استفاده کنید. این برنامه ابزاری است برای تولید I/O به منظور انجام میکرو-بنچمارک. با این بازار می توانید بارکاری مد نظر خود را بصورت مصنوعی ساخته و برنامه خود را پیش از توزیع تست نمایید.
      • درک کنید که هدف از اجرای این آزمایش‌ها شبیه‌سازی دقیق ویژگی‌های ورودی/خروجی SQL Server نیست، بلکه آزمایش حداکثر عبوردهی قابل دستیابی توسط زیرسیستم ورودی/خروجی برای انواع معمول ورودی/خروجی SQL Server است.

      همیشه فایل‌های لاگ را روی دیسک‌های RAID 10 قرار دهید

      • عملکرد اوج ارائه شده توسط RAID 10 واقعاً به عملکرد کلی لاگ کمک خواهد کرد.
      • بهترین حفاظت در برابر خرابی سخت‌افزار
      • عملکرد بهتر نوشتن
      • به طور کلی RAID 10 عبوردهی بهتری را برای برنامه‌های با نوشتن بیشتر فراهم خواهد کرد. مقدار عملکرد به دست آمده بسته به پیاده‌سازی سازنده سخت‌افزاری RAID  متفاوت خواهد بود. رایج‌ترین جایگزین RAID 10، RAID 5 است.

      در سطح دیسک فیزیکی، لاگ را از داده‌ها جدا کنید

       

      • شما نیاز دارید فایل‌های لاگ شما روی دیسک فیزیکی متفاوتی نسبت به دیسک داده باشند، نه فقط دیسک‌های منطقی متفاوت.
      • این کار در محیط‌های SQL تلفیق شده، ممکن است امکان‌پذیر نباشد. پس باید ویژگی‌های ورودی/خروجی را در نظر بگیرید و فایل‌ها با ویژگی‌های ورودی/خروجی مشابه (یعنی همه لاگ‌ها)
      • ترکیب بارکارهای ناهمگون (بارکارها با ویژگی‌های بسیار متفاوت دسترسی به دیسک و تاخیر) می‌تواند اثرات منفی روی عملکرد کلی داشته باشد(مثلا قرار دادن داده‌های Exchange و SQL روی همان اسپیندل‌های فیزیکی).
      • شما نیاز دارید دیسک‌ها را در سطح فیزیکی درک کنید تا به بهترین پیکربندی ممکن برسید، بنابراین واقعاً نیاز دارید پیکربندی سخت‌افزار مجازی را درک کنید اگر سرور شما در یک محیط مجازی قرار دارد.

      در نظر گرفتن پیکربندی پایگاه داده TempDB

      • مطمئن شوید TempDB را پس از نصب SQL Server به ذخیره‌سازی با فضای کافی منتقل کرده و از پیش اندازه آن را تنظیم کنید.
      • عملکرد ممکن است از قرار دادن TempDB روی RAID 10 (بسته به استفاده از TempDB ) سود ببرد.
      • برای پایگاه داده TempDB، ۱ فایل داده به ازای هر CPU ایجاد کنید.
      • TempDB را روی دیسک جداگانه‌ای نسبت به پایگاه‌های داده کاربر قرار دهید.
      • TempDB را روی سریع‌ترین زیرسیستم دسترسی به دیسک ممکن قرار دهید.
      • اندازه TempDB را متناسب تنظیم کرده و رشد خودکار آن را پیکربندی کنید. این به ویژه اگر سیستم شما نمی‌تواند کاهش عملکرد را تحمل کند، مهم است. اگر اندازه پایگاه داده را خیلی کوچک با رشد خودکار فعال تنظیم کنید، tempdb به طور خودکار بر اساس افزایش اندازه تنظیم شده توسط شما رشد خواهد کرد.
      • اندازه فایل‌های داده tempdb را یکسان نگه دارید و افزایش رشد خودکار را در سراسر فایل‌های داده یکسان پیکربندی کنید.
      • TempDB را روی پوشه سیستم (معمولاً درایو C: ) قرار ندهید، زیرا واسط کاربری عمومی ویندوز را خواهید دید که دسترسی به دیسک موجود را مصرف می‌کند، و TempDB می‌تواند مشکلاتی را ایجاد کند که باعث پر شدن غیرمنتظره درایو سیستم شود. این می‌تواند باعث خرابی سیستم شود.
      • اگر مدیر SAN شما می‌تواند ارائه دهد، فایل‌های داده متعدد را در سراسر LUNهای متفاوت تقسیم کنید در مقابل نگه داشتن همه چیز روی یک LUN.

      همراستا کردن تعداد فایل‌های داده با CPU برای بارکارهای پرتخصیص مقیاس‌پذیری بهتری دارد

       

      • فایل‌های داده اضافی باعث بهبود عملکرد شدند
      • توصیه می‌شود به ازای هر CPU روی سرور میزبان، ۱ فایل داده (در هر فایل گروه) داشته باشید.
      • این به ویژه در مورد TempDB صدق می‌کند که توصیه آن ۱ فایل داده به ازای هر CPU است.
      • یک CPU دو هسته‌ای به عنوان ۲ شمرده می‌شود، یک CPU چهار هسته‌ای به عنوان ۴ و غیره.

       

      به یاد داشتن مبانی SQL Server

      • شما باید از یک چک لیست ذهنی (یا نوشته شده) از چیزهایی که باید هنگام تلاش برای دستیابی به بهترین عملکرد ممکن سرور بررسی کنید، استفاده نمایید.
      • SQL Server از الگوریتم پر کردن متناسب استفاده می‌کند که تخصیص‌ها را در فایل‌هایی با فضای آزاد بیشتر ترجیح می‌دهد، بنابراین فایل‌های داده باید اندازه‌های برابر داشته باشند.
      • از پیش اندازه فایل‌های داده و لاگ را تنظیم کرده و به AUTOGROW تکیه نکنید. اگر امکان دارد، به جای آن رشد فایل‌های پایگاه داده را به صورت دستی مدیریت کنید. ممکن است AUTOGROW را به دلایل ایمنی روشن نگه دارید، اما باید به طور فعال رشد فایل‌های داده را مدیریت کنید.

      نادیده گرفتن پایه‌های پیکربندی ذخیره‌سازی

      • از جدیدترین درایورهای HBA توصیه شده توسط فروشنده ذخیره‌سازی استفاده کنید.
      • از درایورهای اختصاصی فروشنده ذخیره‌سازی از وب‌سایت تولیدکننده استفاده کنید.
      • تنظیمات درایور را بر اساس نیاز برای حجم‌های ورودی/خروجی خود تنظیم کنید.
      • اطمینان حاصل کنید که نرم‌افزار آرایه ذخیره‌سازی تا آخرین سطح توصیه شده به روز است.
      • از نرم‌افزار چندمسیری برای دستیابی به توازن در سراسر HBAها و LUNها استفاده کرده و اطمینان حاصل کنید این به درستی کار می‌کند.

      روش‌ های بکاپ‌ گیری داده‌ ها

      روش‌ های بکاپ‌ گیری داده‌ ها

      در این مطلب، به مقایسه و بررسی روش‌های مختلف بکاپ‌گیری داده‌ها می‌پردازیم. بکاپ‌گیری یک فرآیند بسیار مهم در مدیریت اطلاعات است که به ما امکان بازیابی اطلاعات پس از از دست رفتن آن‌ها به دلیل خرابی‌ها، حملات نرم‌افزاری، حذف تصادفی یا دلایل دیگر را می‌دهد. روش‌های بکاپ‌گیری متفاوتی وجود دارد که هر یک مزایا و معایب خود را دارند. برخی از این روش‌ها به شرح زیر است:

       روش های بکاپ گیری

      1. بکاپ‌گیری تکمیلی (Incremental Backup):
        در این روش، فقط تغییرات انجام شده از زمان بکاپ‌گیری قبلی تاکنون ذخیره می‌شوند. این بدین معنی است که فقط فایل‌ها و داده‌هایی که تغییر کرده‌اند، به بکاپ اضافه می‌شوند. این روش سرعت بکاپ‌گیری را افزایش می‌دهد اما در صورت نیاز به بازیابی اطلاعات، به مرور زمان ممکن است پردازش‌ها کمی پیچیده‌تر شود.
      2. بکاپ‌گیری تفاضلی (Differential Backup):در این روش، تمام تغییراتی که از زمان بکاپ‌گیری اصلی تاکنون رخ داده است، ذخیره می‌شوند. بدین ترتیب، هربار بکاپ تفاضلی از بکاپ اصلی گرفته می‌شود، حجم اطلاعات ذخیره شده افزایش می‌یابد. اما این روش بازیابی سریعتری دارد زیرا همه تغییرات را در یک جا دارد و نیازی به ادغام اطلاعات از چند بکاپ تفاضلی نیست.
      3. بکاپ‌گیری کامل (Full Backup):در این روش، تمام داده‌ها و اطلاعات موجود در سیستم یا دستگاه به یک بکاپ اصلی کپی می‌شوند. این روش باعث ایجاد یک بکاپ کامل و کامل از داده‌ها می‌شود، اما به دلیل حجم بالای اطلاعات، ممکن است زمان‌بر و منابع زیادی را مصرف کند. بازیابی اطلاعات نیز به دلیل کامل بودن بکاپ، ساده‌تر است.
      4. بکاپ‌گیری موازی (Mirror Backup):در این روش، تمام داده‌ها و اطلاعات به‌طور کامل به یک محل دیگر کپی می‌شوند و بکاپ اصلی با بکاپ ذخیره شده در محل دیگر، همیشه یکسان است. این روش باعث حفاظت کامل اطلاعات می‌شود و در صورت خرابی یک محل ذخیره‌سازی، داده‌ها به‌صورت کامل از محل دیگر بازیابی می‌شوند.
      5. بکاپ‌گیری آفلاین (Offline Backup):در این روش، بکاپ‌ها به یک دستگاه ذخیره‌سازی مجزا (مانند هارد دیسک خارجی) ایجاد می‌شوند و بعد از انجام بکاپ‌گیری، این دستگاه از سیستم جدا می‌شود. این روش به امنیت اطلاعات کمک می‌کند زیرا دستگاه بکاپ‌گیری در معرض خطر حملات نرم‌افزاری نیست.

       نرم افزارهای کاربری

       در ادامه، نرم‌افزارهای پرکاربردی که برای بکاپ‌گیری داده‌ها استفاده می‌شوند و معرفی آن‌ها به همراه مقایسه‌ی عملکرد آن‌ها آمده است.

      1. Veeam Backup & Replication:Veeam Backup & Replication یکی از محبوب‌ترین نرم‌افزارهای بکاپ‌گیری در محیط‌های مجازی و فیزیکی است. این نرم‌افزار به خوبی با انواع پلتفرم‌ها و سیستم‌عامل‌ها سازگاری دارد و امکانات پیشرفته‌ای برای بکاپ‌گیری از ماشین‌های مجازی را فراهم می‌کند. همچنین امکان بازیابی سریع و پشتیبانی از روش‌های تفاضلی و تکمیلی را نیز داراست.
      2. Acronis True Image: Acronis True Image یک نرم‌افزار بکاپ کامل و بازیابی برای سیستم‌عامل‌های ویندوز و مک است. این نرم‌افزار به صورت ساده و کاربرپسند امکان بکاپ‌گیری از اطلاعات شخصی، فایل‌ها، تصاویر و حتی دیسک‌های سیستمی را فراهم می‌کند. همچنین با امکان ایجاد بکاپ‌های ابری نیز از پشتیبان‌گیری خود محافظت می‌کند.
      3. Backup Exec :Backup Exec یک نرم‌افزار پشتیبان‌گیری و بازیابی از شرکت Veritas است که برای سیستم‌های فیزیکی و مجازی مناسب است. این نرم‌افزار دارای امکانات پیشرفته‌ای برای مدیریت بکاپ‌ها و نگهداری از آن‌ها است و از روش‌های تفاضلی و تکمیلی برای بکاپ‌گیری استفاده می‌کند.
      4. Duplicati
        Duplicati یک نرم‌افزار متن‌باز و رایگان بکاپ و بازیابی است که برای انواع سیستم‌عامل‌ها از جمله ویندوز، مک و لینوکس قابل استفاده است. این نرم‌افزار از روش‌های تفاضلی و تکمیلی پشتیبانی می‌کند و قابلیت بکاپ‌گیری به ابری و FTP نیز داراست.

       

      مقایسه عملکرد

      • Veeam Backup & Replication از طراحی خوبی برخوردار است و برای محیط‌های مجازی به صورت اختصاصی پیشنهاد می‌شود. این نرم‌افزار دارای سرعت بالا در بکاپ‌گیری و بازیابی است و قابلیت‌های پیشرفته‌ای مانند instant VM recovery و SureBackup را داراست.
      • Acronis True Image برای کاربران خانگی و کسانی که به دنبال راه‌حل ساده و کاربرپسند هستند، مناسب است. این نرم‌افزار قابلیت بکاپ‌گیری به ابری را نیز داراست که به کاربران امکان دسترسی آسان به بکاپ‌های خود از هر جا را می‌دهد.
      • Backup Exec به عنوان یک نرم‌افزار پیشرفته پشتیبان‌گیری از سرورها و بزرگترین سیستم‌ها مناسب است. این نرم‌افزار دارای امکانات پیشرفته‌ای مانند deduplication و امکان بازیابی فوق‌سریع (Instant Recovery) است.
      • Duplicati از طریق استفاده از تکنولوژی‌های متن‌باز باعث اطمینان از امنیت بیشتر برای کاربران می‌شود. این نرم‌افزار رایگان بوده و به عنوان یک گزینه مقرون به صرفه برای بکاپ‌گیری پراکنده از اطلاعات مورد استفاده قرار می‌گیرد.