تمكين نهج الاحتفاظ بالبيانات وتعطيلها
يوضح هذا الموضوع كيفية تمكين نهج الاحتفاظ بالبيانات وتعطيلها لقاعدة بيانات وجدول.
تمكين الاحتفاظ بالبيانات لقاعدة بيانات
يوضح المثال التالي كيفية تمكين الاحتفاظ بالبيانات باستخدام "تغيير قاعدة البيانات".
ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION ON;
التحقق مما إذا كان الاحتفاظ بالبيانات ممكنا لقاعدة بيانات
يمكن استخدام الأمر التالي للتحقق مما إذا كان الاحتفاظ بالبيانات ممكنا لقاعدة بيانات
SELECT is_data_retention_enabled, name
FROM sys.databases;
تمكين الاحتفاظ بالبيانات لجدول
يجب تمكين الاحتفاظ بالبيانات لكل جدول تريد مسح البيانات منه تلقائيا. عند تمكين "الاحتفاظ بالبيانات" على قاعدة البيانات والجدول، ستقوم مهمة نظام الخلفية بفحص الجدول بشكل دوري لتحديد أي صفوف قديمة (قديمة) وحذفها. يمكن تمكين الاحتفاظ بالبيانات على جدول إما أثناء إنشاء جدول باستخدام إنشاء جدول أو باستخدام تغيير الجدول.
يوضح المثال التالي كيفية تمكين الاحتفاظ بالبيانات لجدول باستخدام إنشاء جدول.
CREATE TABLE [dbo].[data_retention_table]
(
[dbdatetime2] datetime2(7),
[product_code] int,
[value] char(10),
CONSTRAINT [pk_current_data_retention_table] PRIMARY KEY CLUSTERED ([product_code])
) WITH (DATA_DELETION = ON ( FILTER_COLUMN = [dbdatetime2], RETENTION_PERIOD = 1 day ) )
يقوم WITH (DATA_DELETION = ON ( FILTER_COLUMN = [dbdatetime2], RETENTION_PERIOD = 1 day ) ) جزء الأمر "إنشاء جدول" بتعيين الاحتفاظ بالبيانات على الجدول. يستخدم الأمر المعلمات المطلوبة التالية
- DATA_DELETION - يشير إلى ما إذا كان الاحتفاظ بالبيانات قيد التشغيل أو الإيقاف.
- FILTER_COLUMN - الاسم الموجود على العمود في الجدول ، والذي سيتم استخدامه للتأكد مما إذا كانت الصفوف قديمة أم لا. يمكن أن يكون عمود عامل التصفية عمودا يحتوي على أنواع البيانات التالية فقط
- التاريخ
- SmallDateTime
- التاريخ والوقت
- DateTime2
- DateTimeOffset
- RETENTION_PERIOD - قيمة صحيحة متبوعة بواصف وحدة. الوحدات المسموح بها هي اليوم والأيام والأسبوع والأسابيع والشهر والأشهر والسنة والسنوات.
يوضح المثال التالي كيفية تمكين الاحتفاظ بالبيانات للجدول باستخدام "تغيير الجدول".
Alter Table [dbo].[data_retention_table]
SET (DATA_DELETION = On (FILTER_COLUMN = [timestamp], RETENTION_PERIOD = 1 day))
التحقق مما إذا كان الاحتفاظ بالبيانات ممكنا لجدول
يمكن استخدام الأمر التالي للتحقق من الجداول التي تم تمكين الاحتفاظ بالبيانات لها
select name, data_retention_period, data_retention_period_unit from sys.tables
تشير قيمة data_retention_period = -1 data_retention_period_unit على أنها INFINITE، إلى أنه لم يتم تعيين الاحتفاظ بالبيانات على الجدول.
يمكن استخدام الاستعلام التالي لتحديد العمود المستخدم كعمود filter_column للاحتفاظ بالبيانات.
Select name from sys.columns
where is_data_deletion_filter_column =1
and object_id = object_id(N'dbo.data_retention_table', N'U')
ربط إعدادات الاحتفاظ ببيانات قاعدة البيانات والجدول
يتم استخدام إعداد الاحتفاظ بالبيانات على قاعدة البيانات والجدول بالاقتران لتحديد ما إذا كان سيتم تشغيل التنظيف التلقائي للصفوف القديمة على الجداول أم لا.
| خيار قاعدة البيانات | خيار الجدول | السلوك |
|---|---|---|
| إيقاف التشغيل | إيقاف التشغيل | يتم تعطيل نهج الاحتفاظ بالبيانات ويتم تعطيل كل من التنظيف التلقائي واليدوي للسجلات القديمة. |
| إيقاف التشغيل | تشغيل | يتم تمكين نهج الاحتفاظ بالبيانات للجدول. يتم تعطيل التنظيف التلقائي للسجلات القديمة، ولكن يمكن استخدام طريقة التنظيف اليدوي لتنظيف السجلات القديمة. |
| تشغيل | إيقاف التشغيل | يتم تمكين نهج الاحتفاظ بالبيانات على مستوى قاعدة البيانات. ومع ذلك ، نظرا لأن الخيار معطل على مستوى الجدول ، فلا يوجد تنظيف قائم على الاحتفاظ بالصفوف القديمة. |
| تشغيل | تشغيل | يتم تمكين نهج الاحتفاظ بالبيانات لكل من قاعدة البيانات والجداول. يتم تمكين التنظيف التلقائي للسجلات القديمة. |
تعطيل الاحتفاظ بالبيانات على جدول
يمكن تعطيل الاحتفاظ بالبيانات على جدول باستخدام "تغيير الجدول". يمكن استخدام الأمر التالي لتعطيل الاحتفاظ بالبيانات على جدول.
Alter Table [dbo].[data_retention_table]
Set (DATA_DELETION = OFF)
تعطيل الاحتفاظ بالبيانات على قاعدة بيانات
يمكن تعطيل الاحتفاظ بالبيانات على جدول باستخدام "تغيير قاعدة البيانات". يمكن استخدام الأمر التالي لتعطيل الاحتفاظ بالبيانات على قاعدة بيانات.
ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION OFF;