Ketika saya membuat cadangan atau memulihkan database menggunakan MS SQL Server Management Studio, saya mendapatkan indikasi visual tentang seberapa jauh proses telah berkembang, dan dengan demikian berapa lama lagi saya masih harus menunggu sampai selesai. Jika saya memulai pencadangan atau pemulihan dengan skrip, apakah ada cara untuk memantau kemajuan, atau apakah saya hanya duduk dan menunggu hingga selesai (berharap tidak ada yang salah?)
Diedit: Kebutuhan saya secara khusus adalah untuk dapat memantau kemajuan pencadangan atau pemulihan sepenuhnya terpisah dari sesi tempat pencadangan atau pemulihan dimulai.
sumber
Saya menemukan contoh skrip di sini yang tampaknya berfungsi dengan baik:
sumber
Jika Anda mengetahui sessionID, Anda dapat menggunakan berikut ini:
Atau jika Anda ingin mempersempitnya:
sumber
Berikut skrip sederhana yang umumnya melakukan trik untuk saya:
sumber
Sering kali terjadi bahwa aktivitas pencadangan (atau pemulihan) Anda telah dimulai oleh Administrator Basis Data lain atau oleh pekerjaan, dan Anda tidak dapat menggunakan GUI apa pun untuk memeriksa kemajuan Pencadangan / Pemulihan tersebut.
Dengan menggabungkan beberapa perintah, saya telah menghasilkan skrip di bawah ini yang dapat memberi kita ringkasan dari cadangan dan pemulihan saat ini yang terjadi di server.
sumber
sumber
Gunakan STATS dalam perintah BACKUP jika itu hanya sebuah skrip.
Di dalam kode itu sedikit lebih rumit. Dalam ODBC misalnya, Anda menetapkan SQL_ATTR_ASYNC_ENABLE dan kemudian mencari kode kembali SQL_STILL_EXECUTING, dan melakukan beberapa panggilan berulang SQLExecDirect hingga Anda mendapatkan SQL_SUCCESS (atau eqiv).
sumber
Coba dengan:
sumber
Gunakan opsi STATS: http://msdn.microsoft.com/en-us/library/ms186865.aspx
sumber
Menurut saya, cara terbaik untuk mengetahui bagaimana pemulihan atau kemajuan pencadangan Anda adalah dengan kueri berikut:
Kueri di atas, identifikasi sesi itu sendiri dan lakukan persentase kemajuan setiap kali Anda menekan F5 atau tombol Jalankan di SSMS!
Permintaan dilakukan oleh orang yang menulis posting ini
sumber
Tambahkan
STATS=10
atauSTATS=1
dalam perintah cadangan.sumber
PILIH session_id sebagai SPID, perintah, start_time, persen_complete, dateadd (detik, estimasi_completion_time / 1000, getdate ()) sebagai estimasi_completion_time, a.text AS Kueri DARI sys.dm_exec_requests r CROSS APPLY sys.dm_exec_sql_text (r.sql_handec_sql_text (r.sql_ERE perintah di ('BACKUP DATABASE', 'BACKUP LOG', 'RESTORE DATABASE', 'RESTORE LOG')
sumber
Untuk siapa pun yang menjalankan SQL Server di RDS (AWS), ada prosedur bawaan yang dapat dipanggil dalam
msdb
database yang memberikan informasi lengkap untuk semua tugas pencadangan dan pemulihan:Ini akan memberikan ikhtisar lengkap dari setiap tugas, konfigurasinya, detail tentang eksekusi (seperti persentase selesai dan durasi total), dan
task_info
kolom yang sangat membantu ketika mencoba mencari tahu apa yang salah dengan pencadangan atau pemulihan.sumber
Untuk memantau kemajuan pencadangan atau pemulihan yang sepenuhnya terpisah dari sesi tempat pencadangan atau pemulihan dimulai. Tidak diperlukan alat pihak ketiga. Diuji di Microsoft SQL Server 2012.
sumber
Saya menggunakan sp_whoisactive, sangat informatif standar industri dasarnya. itu juga mengembalikan persen selesai.
sumber
Saya mengalami masalah serupa saat bekerja pada operasi pemulihan database di MS SQL Server 2012.
Namun, untuk skenario saya sendiri, saya hanya perlu melihat kemajuan operasi DATABASE RESTORE di jendela skrip
Yang harus saya lakukan hanyalah menambahkan opsi STATS ke skrip:
Dan kemudian saya beralih ke tab Pesan dari jendela Script untuk melihat kemajuan operasi DATABASE RESTORE :
Jika Anda ingin mendapatkan informasi lebih lanjut setelah operasi DATABASE RESTORE, Anda dapat menggunakan perintah ini yang disarankan oleh eythort :
Itu saja.
saya harap ini membantu
sumber
cukup jalankan bkp_status pada master db Anda akan mendapatkan status cadangan
sumber