it-swarm.asia

Database SQL server terjebak dalam memulihkan keadaan

Saya memiliki server Sharepoint. Kami memiliki masalah dengan alat cadangan kami dan sekarang beberapa database saya macet dalam memulihkan kondisi!

Image showing restoring databases

Apakah mungkin untuk menghentikan proses pemulihan? dan juga, Bagaimana saya bisa memastikan integritas basis data tidak terganggu?

87
Pooya Yazdani

Ini kemungkinan disebabkan oleh skrip pemulihan yang menambahkan WITH NORECOVERY parameter, untuk membuat database siap untuk log transaksi berlaku setelah pemulihan.

Basis data sekarang menunggu file log transaksi terbaru.

Anda dapat:

  1. Terapkan log transaksi terbar , menggunakan RESTORE LOG database_name FROM backup_device WITH RECOVERY; ... atau
  2. Kembalikan database lagi, tapi kali ini menggunakan ... WITH RECOVERY; ... atau
  3. Paksa basis data dari mode pemulihan dengan menjalankan: RESTORE DATABASE YourDb WITH RECOVERY;

Sebelum Anda melakukan ini, pastikan Anda memahami implikasi dari opsi ini. Anda dapat menyebabkan kehilangan data jika Anda tidak berhati-hati.

Lihat ini untuk detail:

135
Thomas Kejser

Script T-SQL Sederhana untuk Memecahkan masalah ini:

tulis skrip ini di jendela Permintaan Baru dan jalankan:

RESTORE DATABASE [DataBase Name] WITH RECOVERY;
52
Sina

Seperti yang kita ketahui, opsi pemulihan basis data default adalah dengan Pemulihan yang memastikan basis data tersedia dan Online untuk digunakan setelah penyelesaian pemulihan basis data.

Contoh:

RESTORE DATABASE YourDB FROM DISK= 'C:\\Data\\YourDBBackup.bak'
WITH RECOVERY
GO

Mari kita lihat poin penting tentang Pulihkan tanpa Pemulihan

  • Basis data tidak dapat digunakan
  • Tetap dalam mode pemulihan
  • Urutan pemulihan selanjutnya bisa dilakukan
  • Tidak mengembalikan transaksi yang tidak dikomit

Pulihkan Dengan NoRecovery

Opsi ini terutama digunakan ketika beberapa cadangan akan dipulihkan. Itu berarti, ketika Anda menjalankan perintah restore dengan opsi norecovery yang berarti, database tidak dirilis kepada pengguna sampai cadangan terakhir secara berurutan dipulihkan. Dengan cadangan terakhir, opsi Pemulihan digunakan dan basis data online.

Contoh:

RESTORE DATABASE YourDB FROM DISK - 'C:\\Data\\Backup_part1.bak' 
WITH NORECOVERY
GO

Lalu:

RESTORE LOG YourDB FROM DISK = 'C:\\Data\\BackupLog-part2.trn'
WITH RECOVERY
GO
0
Priyanka

Saya baru saja mengalami situasi ini, dan penyembuhannya cukup mengejutkan:

ALTER DATABASE DBName SET ONLINE;

Rupanya pemulihan NetBackup yang pecah meninggalkannya dalam keadaan aneh. Tidak ada solusi lain yang berhasil (walaupun saya belum mencoba me-restart layanan SQL Server)

Saya akan berhati-hati dengan database, meskipun, secara teoritis begitu pemulihan dimulai, kemudian gagal, Anda bisa merusak data. Saya hanya akan mengembalikan database lagi, jadi tidak masalah bagi saya.

0
ErikE