Mengubah waktu pemulihan target database (SQL Server)

Berlaku untuk:SQL Server

Artikel ini menjelaskan cara mengatur atau mengubah waktu pemulihan target database di SQL Server dengan menggunakan SQL Server Management Studio atau Transact-SQL. Secara default, waktu pemulihan target adalah 60 detik, dan database menggunakan titik pemeriksaan tidak langsung. Waktu pemulihan target menetapkan batas atas pada waktu pemulihan untuk database ini.

Pengaturan ini segera berlaku, dan tidak memerlukan mulai ulang SQL Server.

Catatan

Batas atas yang ditentukan untuk database tertentu oleh pengaturan waktu pemulihan targetnya dapat terlampaui jika transaksi yang berjalan lama menyebabkan waktu UNDO yang berlebihan.

Pembatasan dan batasan

Beban kerja transaksional online pada database yang dikonfigurasi untuk titik pemeriksaan tidak langsung dapat mengalami penurunan performa. Titik pemeriksaan tidak langsung memastikan bahwa jumlah halaman kotor berada di bawah ambang batas tertentu sehingga pemulihan database selesai dalam waktu pemulihan target. Opsi konfigurasi interval pemulihan menggunakan jumlah transaksi untuk menentukan waktu pemulihan dibandingkan dengan titik pemeriksaan tidak langsung yang menggunakan jumlah halaman kotor.

Ketika titik pemeriksaan tidak langsung diaktifkan pada database yang menerima sejumlah besar operasi DML, penulis latar belakang dapat mulai secara agresif membersihkan buffer kotor ke disk untuk memastikan bahwa waktu yang diperlukan untuk melakukan pemulihan berada dalam waktu pemulihan target yang ditetapkan pada database. Hal ini dapat menyebabkan aktivitas I/O tambahan pada sistem tertentu, yang dapat berkontribusi pada penyempitan performa jika subsistem disk beroperasi di atas atau mendekati ambang I/O.

Izin

Memerlukan izin UBAH pada database.

Menggunakan SQL Server Management Studio

  1. Di Object Explorer, sambungkan ke instans mesin database SQL Server, dan perluas instans tersebut.

  2. Perluas kontainer Database , lalu klik kanan database yang ingin Anda ubah, dan pilih perintah Properti .

  3. Dalam kotak dialog Properti Database , pilih halaman Opsi .

  4. Di panel Pemulihan , di bidang Waktu Pemulihan Target (Detik) , tentukan jumlah detik yang Anda inginkan sebagai batas atas waktu pemulihan untuk database ini.

Menggunakan Transact-SQL

  1. Sambungkan ke instans SQL Server tempat database berada.

  2. Gunakan pernyataan ALTER DATABASE berikut ini sebagai berikut:

    TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }

    target_recovery_time
    Dimulai dengan SQL Server 2016 (13.x), nilai defaultnya adalah 1 menit. Saat lebih besar dari 0 (default untuk versi yang lebih lama), menentukan batas atas pada waktu pemulihan untuk database yang ditentukan jika terjadi crash.

    DETIK
    Menunjukkan bahwa target_recovery_time dinyatakan sebagai jumlah detik.

    MENIT
    Menunjukkan bahwa target_recovery_time dinyatakan sebagai jumlah menit.

    Contoh berikut menetapkan waktu AdventureWorks2022 pemulihan target database menjadi 60 detik.

    ALTER DATABASE AdventureWorks2022 SET TARGET_RECOVERY_TIME = 60 SECONDS;
    

Lihat juga