فشرده سازی بکاپ در SQL Server

این مقاله مفاهیم پایه ای فشرده سازی بکاپ در SQL Server، شامل اجرای فشرده سازی بکاپ ها را مورد بحث قرار می دهد. فشرده سازی بکاپ در SQL Server 2008 Enterprise معرفی شد. فشرده سازی بکاپ توسط SQL Server 2008 R2 Standard و همه نسخه های بالاتر ساپورت می شود. هر نسخه ای از SQL Server 2008 و بعد، می تواند بکاپ فشرده شده را restore کند.
محدودیت ها
محدودیت های زیر به بکاپ های فشرده شده اعمال می شود:
•بکاپ های فشرده شده و فشرده نشده نمی توانند در یک media set کنار هم باشند.
•نسخه های قبلی SQL Server نمی تواند بکاپ های فشرده شده را بخوانند.
•Ntbackupها نمی توانند یک tape را با بکاپ های فشرده شده SQL Server به اشتراک بگذارند.
تاثیر اجرای بکاپ های فشرده شده
از آنجاییکه بکاپ فشرده شده کوچکتر از بکاپ فشرده نشده همان اطلاعات است، فشرده سازی بکاپ معمولاً ابزار I/O کمتری نیاز دارد و بنابراین سرعت بکاپ گیری گیری را بطور چشمگیری افزایش می دهد. بطور پیش فرض، فشرده سازی کاربرد CPU را افزایش می دهد، و CPU اضافی که توسط فرآیند فشرده سازی مورد استفاده قرار می گیرد، ممکن است عملیات های همزمان را تحت تاثیر قرار دهد. بنابراین، شاید بخواهید بکاپ های فشرده شده با اولویت پایین، در sessionیی که استفاده از CPU توسط Resource Governor محدود شده است، ایجاد کنید.برای بدست آوردن تصویری خوب از اجرای I/O تان، می توانید با ارزیابی sortهای performance counters زیر، بکاپ I/O را به یا از ابزارها جدا کنید:
•کانتر اجرای Windows I/O ، از قبیل counterهای physical-disk
•کانتر Device Throughput Bytes/sec شیSQLServe Backup Device
•کانتر Backup/Restore Throughput/sec شی SQLServeratabases
پیکر بندی
هنگانم نصب، فشرده بکاپ بطور پیش فرض off می شود. رفتار پیش فرض فشرده سازی توسط آپشن پیکربندی در سطح سرور backup compression default Option تعریف می شود. می توانید پیش فرض server-level را هنگام ایجاد بکاپ واحد یا هنگام زمانبندی یک سری از بکاپ های روتین، override کنید.
تغییر دادن پیش فرض در سطح سرور

•Transact-SQL
از استورد پروسیجر sp_configure برای تنظیم مقدار backup compression default استفاده کنید و سپس عبارت RECONFIGURE را اجرا کنید.
•SQL Server Management Studio
از صفحه Database Settings پنجره Server Properties استفاده کنید.
override کردن پیش فرض فشرده سازی بکاپ
می توانید رفتار فشرده سازی بکاپ ر ا برای یک بکاپ مجزا، backup job، یا پیکربندی log shipping عوض کنید.
•Transact-SQL
برای بکاپی معین، می توانید یا از WITH NO_COMPRESSION یا از WITH COMPRESSION در عبارت BACKUP استفاده کنید.برای پیکربندی log shipping، می توانید رفتار فشرده سازی بکاپ log backupها رابا استفاده از sp_add_log_shipping_primary_databasesp_change_log_ shipping_primary_database (Transact-SQL) کنترل کنید.
•SQL Server Management Studio
می توانید پیش فرض فشرده سازی بکاپ سرور را با تعیین Compress backup یا Do not compress backup در هر یک از پنجره های زیر override کنید:
برای محاسبه نسبت فشرده سازی، از مقادیر بکاپ در ستون های backup_size و compressed_backup_size جدول تاریخچه backupset، بشرح زیر استفاده کنید:
backup_size:compressed_backup_size
مثلاً، نسبت فشرده سازی 3:1 نشان می دهد که شما حدود %65 از فضای دیسک را save می کنید. برای کوئری کردن این ستون ها، می توانید از عبارت Transact-SQL زیر استفاده کنید. SELECT backup_size/compressed_backup_size FROM msdb..backupset;
نسبت فشرده سازی بکاپ های فشرده شده، به داده هایی بستگی دارد که فشرده شده است. فاکتورهای مختلفی می توانند روی نسبت فشرده سازی بدست آمده تاثیر بگذارد:
•نوع داده ها.
داده های کاراکتور بیش از یک نوع داده را فشرده می کند.
•سازگاری داده ها بین ردیف های یک صفحه.
معمولاً، اگر صفحه ای حاوی چندین ردیف باشد که در آن فیلدی حاوی همان مقدار باشد، فشرده سازی ممکن است برای آن مقدار اتفاق می افتد. برعکس، در دیتابیسی که حاوی داده های تصادفی یا فقط یک ردیف بزرگ برای هر صفحه است، بکاپ فشرده شده تقریباً هم اندازه بکاپ فشرده نشده خواهد بود.
•آیا داده ها رمزگذاری می شود.
داده های رمزگذاری شده، بطور چشم گیری کمتر از داده های رمزگذاری نشده معادل، فشرده می کند. اگر رمزگذاری داده های transparent، برای رمزگذاری کل دیتابیس استفاده شود، فشرده سازی بکاپ ممکن است سایز آنها را بسیار کم کند.
•آیا دیتابیس رمزگذاری می شود.
اگر دیتابیس فشرده شود، فشرده سازی بکاپ ها ممکن است اندازه آنها را بسیار کنم کند.