Jika Anda mendapatkan kesalahan yang berbunyi Pernyataan LOG CADANGAN tidak diizinkan saat model pemulihan SEDERHANA saat mencoba mencadangkan database di SQL Server atau Azure SQL Edge, itu karena Anda mencoba mencadangkan log transaksi di database yang menggunakan model pemulihan sederhana.
Untuk memperbaikinya, ubah model pemulihan menjadi logging penuh atau massal.
Kesalahan
Berikut ini contoh kode T-SQL yang menghasilkan kesalahan:
BACKUP LOG Music
TO DISK = '/var/opt/mssql/backups/Music.trn';
Hasil:
Msg 4208, Level 16, State 1, Line 1 The statement BACKUP LOG is not allowed while the recovery model is SIMPLE. Use BACKUP DATABASE or change the recovery model using ALTER DATABASE.
Penyebabnya
Seperti disebutkan, kesalahan ini disebabkan ketika Anda mencoba untuk membuat cadangan log transaksi pada database yang menggunakan model pemulihan sederhana.
Model pemulihan sederhana tidak mendukung pencadangan log.
Solusinya
Untuk mengatasi masalah ini, setel model pemulihan basis data ke FULL
atau BULK_LOGGED
:
USE master;
ALTER DATABASE Music
SET RECOVERY FULL;
Contoh tersebut mengatur database ke mode pemulihan penuh.
Namun, Anda juga perlu melakukan setidaknya satu pencadangan basis data lengkap sebelum Anda mulai mencadangkan log transaksi Anda. Jika Anda tidak melakukan ini, Anda akan mendapatkan kesalahan 4214, yang menyatakan bahwa LOG CADANGAN tidak dapat dilakukan karena tidak ada cadangan database saat ini .
Berikut ini contoh melakukan pencadangan basis data lengkap:
BACKUP DATABASE Music
TO DISK = '/var/opt/mssql/backups/Music.bak'
WITH FORMAT;
Sekarang log transaksi dapat dicadangkan sesuai kebutuhan:
BACKUP LOG Music
TO DISK = '/var/opt/mssql/backups/Music.trn';
Hasil:
Processed 3 pages for database 'Music', file 'Music_log' on file 1.
Menggunakan Azure SQL Edge?
Jika Anda menggunakan Azure SQL Edge, Anda mungkin menemukan masalah ini sering terjadi. Itu mungkin karena database yang dibuat dengan SQL Edge menggunakan model pemulihan sederhana secara default. Dan itu karena model
database menggunakan model pemulihan sederhana.
Anda selalu dapat mengubah model pemulihan pada model
database ke FULL
, yang akan menghasilkan database berikutnya menggunakan mode pemulihan penuh secara default.