تمكين وتعطيل نهج استبقاء البيانات

هام

سيتم إيقاف Azure SQL Edge في 30 سبتمبر 2025. لمزيد من المعلومات وخيارات الترحيل، راجع إشعار الإيقاف.

إشعار

لم يعد Azure SQL Edge يدعم النظام الأساسي ARM64.

توضح هذه المقالة كيفية تمكين وتعطيل نهج استبقاء البيانات لقاعدة بيانات وجدول.

تمكين استبقاء البيانات لقاعدة بيانات

يوضح المثال التالي كيفية تمكين استبقاء البيانات باستخدام ALTER DATABASE.

ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION ON;

التحقق مما إذا كان الاحتفاظ بالبيانات ممكنا لقاعدة بيانات

يمكن استخدام الأمر التالي للتحقق مما إذا كان الاحتفاظ بالبيانات ممكنا لقاعدة بيانات.

SELECT is_data_retention_enabled,
    name
FROM sys.databases;

تمكين استبقاء البيانات لجدول

يجب تمكين استبقاء البيانات لكل جدول تريد إزالة البيانات منه تلقائيا. عند تمكين استبقاء البيانات في قاعدة البيانات والجدول، تقوم مهمة نظام الخلفية بفحص الجدول بشكل دوري لتحديد وحذف أي صفوف قديمة (قديمة). يمكن تمكين استبقاء البيانات على جدول إما أثناء إنشاء الجدول باستخدام CREATE TABLE أو باستخدام ALTER TABLE.

يوضح المثال التالي كيفية تمكين استبقاء البيانات لجدول باستخدام CREATE TABLE.

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)) جزء الأمر CREATE TABLE بتعيين الاحتفاظ بالبيانات على الجدول. يستخدم الأمر المعلمات المطلوبة التالية:

  • DATA_DELETION: يشير إلى ما إذا كان استبقاء البيانات قيد التشغيل أو إيقاف التشغيل.

  • FILTER_COLUMN: اسم العمود في الجدول، والذي سيتم استخدامه للتأكد مما إذا كانت الصفوف قديمة أم لا. يمكن أن يكون عمود عامل التصفية عمودا فقط مع أنواع البيانات التالية:

    • date
    • وقت صغير
    • التاريخ والوقت
    • التاريخ والوقت2
    • تاريخ البدء
  • RETENTION_PERIOD: قيمة عدد صحيح متبوعة بواصف وحدة. الوحدات المسموح بها هي اليوم والأيام والأسبوع والأسابيع والشهر والأشهر والسنة والسنوات.

يوضح المثال التالي كيفية تمكين استبقاء البيانات للجدول باستخدام ALTER TABLE.

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');

ربط إعدادات استبقاء بيانات قاعدة البيانات والجدول

يتم استخدام إعداد استبقاء البيانات في قاعدة البيانات والجدول بالاقتران لتحديد ما إذا كان يتم تشغيل autocleanup للصفوف المسنة على الجداول.

خيار قاعدة البيانات خيار الجدول سلوك
إيقاف التشغيل إيقاف التشغيل تم تعطيل نهج استبقاء البيانات ويتم تعطيل كل من التنظيف التلقائي واليدوي للسجلات المسنة.
إيقاف التشغيل تشغيل يتم تمكين نهج استبقاء البيانات للجدول. يتم تعطيل التنظيف التلقائي للسجلات القديمة، ولكن يمكن استخدام أسلوب التنظيف اليدوي لتنظيف السجلات القديمة.
تشغيل إيقاف التشغيل يتم تمكين نهج استبقاء البيانات على مستوى قاعدة البيانات. ومع ذلك، نظرا إلى تعطيل الخيار على مستوى الجدول، لا يوجد تنظيف قائم على الاستبقاء للصفوف المسنة.
تشغيل تشغيل يتم تمكين نهج استبقاء البيانات لكل من قاعدة البيانات والجداول. يتم تمكين التنظيف التلقائي للسجلات القديمة.

تعطيل استبقاء البيانات على جدول

يمكن تعطيل استبقاء البيانات على جدول باستخدام ALTER TABLE. يمكن استخدام الأمر التالي لتعطيل استبقاء البيانات على جدول.

ALTER TABLE [dbo].[data_retention_table]
SET (DATA_DELETION = OFF);

تعطيل استبقاء البيانات على قاعدة بيانات

يمكن تعطيل استبقاء البيانات على جدول باستخدام ALTER DATABASE. يمكن استخدام الأمر التالي لتعطيل استبقاء البيانات على قاعدة بيانات.

ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION OFF;