Mengaktifkan dan menonaktifkan kebijakan retensi data

Penting

Azure SQL Edge tidak lagi mendukung platform ARM64.

Artikel ini menjelaskan cara mengaktifkan dan menonaktifkan kebijakan retensi data untuk database dan tabel.

Mengaktifkan retensi data untuk database

Contoh berikut menunjukkan cara mengaktifkan retensi data dengan menggunakan ALTER DATABASE.

ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION ON;

Memeriksa apakah retensi data diaktifkan untuk database

Perintah berikut dapat digunakan untuk memeriksa apakah retensi data diaktifkan untuk database.

SELECT is_data_retention_enabled,
    name
FROM sys.databases;

Mengaktifkan retensi data untuk database

Retensi Data harus diaktifkan untuk setiap tabel yang Anda inginkan agar data dihapus menyeluruh secara otomatis. Saat retensi data diaktifkan pada database dan tabel, tugas sistem latar belakang secara berkala memindai tabel untuk mengidentifikasi dan menghapus baris yang sudah usang (berumur). Retensi data dapat diaktifkan pada tabel baik selama pembuatan tabel menggunakan CREATE TABLE atau dengan menggunakan ALTER TABLE.

Contoh berikut menunjukkan cara mengaktifkan retensi data untuk tabel dengan menggunakan 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
            )
        );

Bagian WITH (DATA_DELETION = ON (FILTER_COLUMN = [dbdatetime2], RETENTION_PERIOD = 1 day)) dari perintah CREATE TABLE mengatur retensi data pada tabel. Perintah menggunakan parameter yang diperlukan berikut:

  • DATA_DELETION: Menunjukkan apakah retensi data AKTIF atau NONAKTIF.

  • FILTER_COLUMN: Nama pada kolom dalam tabel, yang akan digunakan untuk memastikan apakah baris usang atau tidak. Kolom filter hanya bisa berupa kolom dengan tipe data berikut:

    • date
    • smalldatetime
    • datetime
    • datetime2
    • datetimeoffset
  • RETENTION_PERIOD: Nilai bilangan bulat diikuti oleh deskriptor unit. Unit yang diizinkan adalah DAY, DAYS, WEEK, WEEKS, MONTH, MONTHS, YEAR dan YEARS.

Contoh berikut menunjukkan cara mengaktifkan retensi data untuk tabel dengan menggunakan ALTER TABLE.

ALTER TABLE [dbo].[data_retention_table]
SET (
    DATA_DELETION = ON (
        FILTER_COLUMN = [timestamp],
        RETENTION_PERIOD = 1 day
    )
)

Memeriksa apakah retensi data diaktifkan untuk tabel

Perintah berikut dapat digunakan untuk memeriksa tabel yang retensi datanya diaktifkan

SELECT name,
    data_retention_period,
    data_retention_period_unit
FROM sys.tables;

Nilai data_retention_period = -1 dan data_retention_period_unit sebagai INFINITE, menunjukkan bahwa retensi data tidak diatur pada tabel.

Kueri berikut dapat digunakan untuk mengidentifikasi kolom yang filter_column digunakan sebagai untuk retensi data.

SELECT name
FROM sys.columns
WHERE is_data_deletion_filter_column = 1
    AND object_id = object_id(N'dbo.data_retention_table', N'U');

Menghubungkan pengaturan retensi data database dan tabel

Pengaturan retensi data pada database dan tabel digunakan bersamaan untuk menentukan apakah autocleanup untuk baris lama berjalan pada tabel.

Opsi database Opsi tabel Perilaku
TIDAK AKTIF TIDAK AKTIF Kebijakan penyimpanan data dinonaktifkan dan pembersihan otomatis dan manual rekaman lama dinonaktifkan.
TIDAK AKTIF AKTIF Kebijakan penyimpanan data diaktifkan untuk tabel. Pembersihan otomatis rekaman usang dinonaktifkan, namun metode pembersihan manual dapat digunakan untuk membersihkan rekaman usang.
AKTIF TIDAK AKTIF Kebijakan penyimpanan data diaktifkan di tingkat database. Namun karena opsi dinonaktifkan di tingkat tabel, tidak ada pembersihan baris lama berbasis retensi.
AKTIF AKTIF Kebijakan penyimpanan data diaktifkan untuk database dan tabel. Penghapusan otomatis dari rekaman yang sudah tidak digunakan diaktifkan.

Menonaktifkan retensi data pada tabel

Retensi data dapat dinonaktifkan pada tabel dengan menggunakan ALTER TABLE. Perintah berikut dapat digunakan untuk menonaktifkan retensi data pada tabel.

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

Menonaktifkan retensi data pada tabel

Retensi data dapat dinonaktifkan pada tabel dengan menggunakan ALTER DATABASE. Perintah berikut dapat digunakan untuk menonaktifkan retensi data pada database.

ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION OFF;

Langkah berikutnya