Memecahkan masalah pencadangan database SQL Server dengan menggunakan Azure Backup
Artikel ini menyediakan informasi pemecahan masalah untuk database SQL Server yang berjalan di komputer virtual Azure.
Untuk informasi selengkapnya tentang proses dan batasan cadangan, lihat Tentang pencadangan SQL Server di Azure VM.
Izin SQL Server
Untuk mengonfigurasi perlindungan untuk database SQL Server pada komputer virtual, Anda harus memasang ekstensi AzureBackupWindowsWorkload pada komputer virtual tersebut. Jika Anda mendapatkan kesalahan UserErrorSQLNoSysadminMembership, itu berarti instans SQL Server Anda tidak memiliki izin cadangan yang diperlukan. Untuk memperbaiki kesalahan ini, ikuti langkah-langkah dalam Mengatur izin VM.
Pecahkan masalah, temukan dan konfigurasi masalah
Ketika pembuatan dan konfigurasi vault Layanan Pemulihan selesai, menemukan database dan mengonfigurasi cadangan adalah proses dua langkah.
Selama konfigurasi cadangan, jika SQL VM dan instansnya tidak terlihat di DB Penemuan di VM dan Mengonfigurasi Cadangan (lihat gambar di atas) pastikan bahwa:
Langkah 1: Penemuan DB di VM
- Jika VM tidak tercantum dalam daftar VM yang ditemukan dan juga tidak terdaftar untuk cadangan SQL di kubah lain, maka ikuti langkah-langkah Pencadangan Penemuan SQL Server.
Langkah 2: Konfigurasi Cadangan
- Jika kubah tempat SQL VM terdaftar dalam kubah yang sama yang digunakan untuk melindungi database, maka ikuti langkah-langkah Konfigurasi Cadangan.
Jika SQL VM perlu didaftarkan di kubah baru, maka harus tidak terdaftar dari kubah lama. Tidak terdaftarnya SQL VM dari kubah mengharuskan semua sumber data yang dilindungi untuk dihentikan perlindungannya lalu Anda dapat menghapus data yang dicadangkan. Menghapus data yang dicadangkan adalah operasi yang merusak. Setelah Anda meninjau dan mengambil semua tindakan pencegahan untuk membatalkan pendaftaran SQL VM, lalu daftarkan VM yang sama ini dengan kubah baru dan coba lagi operasi pencadangan.
Memecahkan masalah Cadangan dan Pemulihan
Kadang-kadang, kegagalan acak dapat terjadi dalam operasi pencadangan dan pemulihan atau operasi tersebut mungkin macet. Ini mungkin disebabkan oleh program antivirus pada VM Anda. Sebagai praktik terbaik, kami menyarankan langkah-langkah berikut:
Kecualikan folder berikut dari pemindaian antivirus:
C:\Program Files\Azure Workload Backup
C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.RecoveryServices.WorkloadBackup.AzureBackupWindowsWorkload
Ganti
C:\
dengan huruf SystemDrive Anda.Kecualikan tiga proses berikut yang berjalan dalam VM dari pemindaian antivirus:
- IaasWLPluginSvc.exe
- IaaSWorkloadCoordinatorService.exe
- TriggerExtensionJob.exe
SQL juga menawarkan beberapa panduan tentang bekerja dengan program antivirus. Lihat artikel ini untuk detailnya.
Instans rusak dalam VM dengan beberapa instans SQL Server
Anda dapat memulihkan ke SQL VM hanya jika semua instans SQL yang berjalan dalam VM dilaporkan sehat. Jika satu atau beberapa instans "rusak", VM tidak akan muncul sebagai target pemulihan. Jadi ini bisa menjadi alasan yang mungkin mengapa VM multi-instans mungkin tidak muncul di dropdown "server" selama operasi pemulihan.
Anda dapat memvalidasi "Kesiapan Cadangan" dari semua instans SQL di VM, di bawah Konfigurasikan cadangan:
Jika Anda ingin memicu pemulihan pada instans SQL yang sehat, lakukan langkah-langkah berikut:
Masuk ke SQL VM dan masuk ke
C:\Program Files\Azure Workload Backup\bin
.Membuat file JSON bernama
ExtensionSettingsOverrides.json
(jika belum ada). Jika file ini sudah ada pada VM, lanjutkan menggunakannya.Tambahkan konten berikut dalam file JSON dan simpan file:
{ "<ExistingKey1>":"<ExistingValue1>", …………………………………………………… , "whitelistedInstancesForInquiry": "FaultyInstance_1,FaultyInstance_2" } Sample content: { "whitelistedInstancesForInquiry": "CRPPA,CRPPB " }
Picu operasi Rediscover DB pada server yang terkena dampak dari portal Microsoft Azure (tempat yang sama di mana kesiapan cadangan dapat dilihat). VM akan mulai muncul sebagai target untuk memulihkan operasi.
Hapus entri WhitelistedInstancesForInquiry dari file ExtensionSettingsOverrides.json setelah operasi pemulihan selesai.
Pesan kesalahan
Jenis cadangan yang tidak didukung
Tingkat keparahan | Deskripsi | Kemungkinan penyebab | Tindakan yang direkomendasikan |
---|---|---|---|
Peringatan | Pengaturan saat ini untuk basis data ini tidak mendukung tipe cadangan tertentu yang ada dalam kebijakan terkait. | Ubah pengaturan database sehingga semua tipe cadangan dalam kebijakan dapat didukung. Atau ubah kebijakan saat ini agar hanya menyertakan tipe cadangan yang didukung. Jika tidak, jenis cadangan yang tidak didukung akan dilewati selama pencadangan terjadwal atau pekerjaan pencadangan akan gagal untuk pencadangan sesuai permintaan. |
UserErrorSQLPODoesNotSupportBackupType
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang direkomendasikan |
---|---|---|
Database SQL ini tidak mendukung jenis cadangan yang diminta. | Terjadi ketika model pemulihan database tidak memperbolehkan tipe cadangan yang diminta. Kesalahan dapat terjadi dalam situasi berikut:
|
Jika pencadangan log gagal untuk database dalam model pemulihan sederhana, cobalah salah satu opsi ini:
|
OperationCancelledBecauseConflictingOperationRunningUserError
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang direkomendasikan |
---|---|---|
Operasi dibatalkan sebagai operasi yang berkonflik sudah berjalan pada database yang sama. | Anda mungkin mendapatkan kesalahan ini ketika pekerjaan pencadangan sesuai permintaan atau terjadwal yang terpicu berkonflik dengan operasi pencadangan yang sudah berjalan yang dipicu oleh ekstensi Azure Backup pada database yang sama. Berikut ini adalah skenario ketika kode kesalahan ini mungkin muncul:
|
Setelah operasi yang berkonflik gagal, mulai ulang operasi. |
UserErrorFileManipulationIsNotAllowedDuringBackup
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang disarankan |
---|---|---|
Operasi manipulasi file cadangan (seperti ALTER DATABASE ADD FILE) dan perubahan enkripsi pada database harus diserialisasikan. | Berikut ini adalah kasus-kasus yang mungkin menyebabkan munculnya kode kesalahan:
|
Nonaktifkan produk pencadangan lainnya untuk mengatasi masalah tersebut. |
UserErrorSQLPODoesNotExist
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang disarankan |
---|---|---|
Database SQL tidak ada. | Database dihapus atau diubah namanya. | Periksa apakah database dihapus atau diubah namanya secara tidak sengaja. Jika database dihapus secara tidak sengaja, untuk melanjutkan pencadangan, pulihkan database ke lokasi aslinya. Jika Anda menghapus database dan tidak memerlukan cadangan di masa mendatang, maka di kubah Layanan Pemulihan, pilih Hentikan pencadangan dengan Pertahankan Data Cadangan atau Hapus Data Cadangan. Untuk informasi selengkapnya, lihat Mengelola dan memantau database SQL Server yang dicadangkan. |
UserErrorSQLLSNValidationFailure
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang disarankan |
---|---|---|
Rangkaian log rusak. | Database atau VM dicadangkan melalui solusi cadangan lain, yang memotong rangkaian log. |
|
UserErrorOpeningSQLConnection
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang disarankan |
---|---|---|
Azure Backup tidak dapat tersambung ke instans SQL. | Azure Backup tidak bisa tersambung ke instans SQL Server. | Gunakan detail tambahan di menu kesalahan portal Microsoft Azure untuk mempersempit akar masalahnya. Lihat pemecahan masalah pencadangan SQL untuk memperbaiki kesalahan.
|
UserErrorParentFullBackupMissing
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang disarankan |
---|---|---|
Pencadangan penuh pertama tidak ada untuk sumber data ini. | Pencadangan penuh tidak ada untuk database. Pencadangan log dan diferensial adalah orang tua ke cadangan penuh, jadi pastikan untuk mengambil cadangan penuh sebelum memicu diferensial atau mencatat cadangan. | Memicu cadangan penuh sesuai permintaan. |
UserErrorBackupFailedAsTransactionLogIsFull
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang disarankan |
---|---|---|
Tidak dapat mengambil cadangan karena log transaksi untuk sumber data penuh. | Ruang log transaksional database sudah penuh. | Untuk memperbaiki masalah ini, lihat Dokumentasi SQL Server. |
UserErrorCannotRestoreExistingDBWithoutForceOverwrite
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang disarankan |
---|---|---|
Database dengan nama yang sama sudah ada di lokasi target | Tujuan pemulihan target sudah memiliki database dengan nama yang sama. |
|
UserErrorRestoreFailedDatabaseCannotBeOfflined
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang disarankan |
---|---|---|
Pemulihan gagal karena database tidak dapat digunakan di lingkungan offline. | Saat Anda melakukan pemulihan, database target perlu digunakan di lingkungan offline. Azure Backup tidak bisa membawa data ini offline. | Gunakan detail tambahan di menu kesalahan portal Microsoft Azure untuk mempersempit akar masalahnya. Untuk informasi selengkapnya, Dokumentasi SQL Server. |
WlExtGenericIOFaultUserError
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang Disarankan |
---|---|---|
Terjadi kesalahan input/output selama operasi. Silakan periksa kesalahan IO umum pada komputer virtual. | Izin akses atau batasan ruang pada target. | Periksa kesalahan IO umum pada komputer virtual. Pastikan bahwa drive target / berbagi jaringan pada komputer: Untuk informasi selengkapnya, lihat Memulihkan sebagai file. |
UserErrorCannotFindServerCertificateWithThumbprint
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang disarankan |
---|---|---|
Tak bisa menemukan sertifikat server dengan thumbprint pada target. | Database master pada instans tujuan tidak memiliki thumbprint enkripsi yang valid. | Impor thumbprint sertifikat yang valid yang digunakan pada instans sumber, ke instans target. |
UserErrorRestoreNotPossibleBecauseLogBackupContainsBulkLoggedChanges
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang disarankan |
---|---|---|
Pencadangan log yang digunakan untuk pemulihan berisi perubahan yang dicatat secara massal. Ini tidak dapat digunakan untuk berhenti pada titik arbitrer dalam waktu sesuai pedoman SQL. | Saat database dalam mode pemulihan yang dicatat secara massal, data antara transaksi yang dicatat secara massal dan transaksi log berikutnya tidak dapat dipulihkan. | Pilih titik waktu yang berbeda untuk pemulihan. Pelajari selengkapnya. |
FabricSvcBackupPreferenceCheckFailedUserError
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang disarankan |
---|---|---|
Preferensi cadangan untuk SQL Always On Availability Group tidak dapat dipenuhi karena beberapa node dari Availability Group tidak terdaftar. | Node yang diperlukan untuk melakukan pencadangan tidak terdaftar atau tidak dapat dijangkau. |
|
VMNotInRunningStateUserError
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang disarankan |
---|---|---|
Server SQL dimatikan atau tidak dapat diakses oleh layanan Azure Backup. | VM dimatikan. | Pastikan instans SQL Server sedang berjalan. |
GuestAgentStatusUnavailableUserError
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang disarankan |
---|---|---|
Layanan Azure Backup menggunakan agen tamu Azure VM untuk melakukan pencadangan tetapi agen tamu tidak tersedia di server target. | Agen tamu tidak diaktifkan atau tidak sehat. | Pasang agen tamu VM secara manual. |
AutoProtectionCancelledOrNotValid
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang disarankan |
---|---|---|
Proteksi otomatis Intent telah dihapus atau tidak valid lagi. | Saat Anda mengaktifkan perlindungan otomatis pada instans SQL Server, pekerjaan Cadangan Konfigurasi berjalan untuk semua database dalam instans itu. Jika Anda menonaktifkan perlindungan otomatis saat pekerjaan berjalan, maka pekerjaan Yang Sedang Berlangsung dibatalkan dengan kode kesalahan ini. | Aktifkan proteksi otomatis sekali lagi untuk membantu melindungi semua database yang tersisa. |
CloudDosAbsoluteLimitReached
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang disarankan |
---|---|---|
Operasi diblokir karena Anda telah mencapai batas jumlah operasi yang diizinkan dalam 24 jam. | Ketika Anda telah mencapai batas maksimum yang diizinkan untuk operasi dalam rentang 24 jam, kesalahan ini muncul. Misalnya: Jika Anda telah mencapai batas jumlah tugas pencadangan yang dapat dipicu per hari, dan Anda mencoba mengonfigurasi pencadangan pada item baru, Anda akan melihat kesalahan ini. |
Biasanya, mencoba kembali operasi setelah 24 jam akan menyelesaikan masalah ini. Namun, jika masalah berlanjut, Anda dapat menghubungi dukungan Microsoft untuk mendapatkan bantuan. |
CloudDosAbsoluteLimitReachedWithRetry
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang disarankan |
---|---|---|
Operasi diblokir karena kubah telah mencapai batas maksimum untuk operasi tersebut yang diizinkan dalam rentang 24 jam. | Ketika Anda telah mencapai batas maksimum yang diizinkan untuk operasi dalam rentang 24 jam, kesalahan ini muncul. Kesalahan ini biasanya muncul ketika ada operasi dalam skala besar seperti mengubah kebijakan atau perlindungan otomatis. Tidak seperti kasus CloudDosAbsoluteLimitReached, tidak banyak yang dapat Anda lakukan untuk menyelesaikan keadaan ini. Bahkan, layanan Azure Backup akan mencoba kembali operasi secara internal untuk semua item yang dimaksud. Misalnya: Jika Anda memiliki sejumlah besar sumber data yang dilindungi dengan kebijakan dan Anda mencoba memodifikasi kebijakan tersebut, maka akan memicu konfigurasi pekerjaan perlindungan untuk setiap item yang dilindungi dan kadang-kadang dapat mencapai batas maksimum yang diizinkan untuk operasi tersebut per hari. |
Layanan Azure Backup akan secara otomatis mencoba kembali operasi ini setelah 24 jam. |
WorkloadExtensionNotReachable
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang disarankan |
---|---|---|
Operasi ekstensi beban kerja AzureBackup gagal. | VM dimatikan, atau VM tidak dapat menghubungi layanan Azure Backup karena masalah konektivitas internet. |
UserErrorVMInternetConnectivityIssue
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang disarankan |
---|---|---|
VM tidak dapat menghubungi layanan Azure Backup karena masalah konektivitas internet. | Penyebab 1: VM memerlukan konektivitas keluar ke layanan Azure Backup Service, Azure Storage, atau Microsoft Entra. Penyebab 2: Kebijakan Objek Kebijakan Grup (GPO) membatasi cipher suite yang diperlukan untuk komunikasi TLS. |
Rekomendasi untuk penyebab 1: Rekomendasi untuk penyebab 2: Hapus VM dari GPO atau nonaktifkan/hapus kebijakan GPO sebagai solusinya. Atau, ubah GPO sembari memungkinkan cipher suite yang diperlukan. |
UserErrorOperationNotAllowedDatabaseMirroringEnabled
Pesan kesalahan | Kemungkinan penyebab | Tindakan yang direkomendasikan |
---|---|---|
Pencadangan database yang berpartisipasi dalam sesi pencerminan database tidak didukung oleh AzureWorkloadBackup. | Saat Anda mengaktifkan operasi pencerminan pada database SQL, kesalahan ini muncul. Saat ini, Azure Backup tidak mendukung database dengan fitur ini diaktifkan. | Anda bisa menghapus sesi pencerminan database database agar operasi berhasil diselesaikan. Atau, jika database sudah dilindungi, lakukan Hentikan operasi pencadangan pada database. |
UserErrorWindowsWLExtFailedToStartPluginService
Pesan kesalahan | Kemungkinan penyebab | Rekomendasi |
---|---|---|
Operasi gagal dengan UserErrorWindowsWLExtFailedToStartPluginService kesalahan. |
Ekstensi beban kerja Azure Backup tidak dapat memulai layanan plugin cadangan beban kerja di Azure Virtual Machine karena kesalahan konfigurasi akun layanan. | Langkah 1: Verifikasi apakah pengguna NT Service\AzureWLBackupPluginSvc memiliki izin Baca pada: - C:\windows\Microsoft.NET \assembly\GAC_32 - C:\windows\Microsoft.NET \assembly\GAC_64 - C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config. Jika izin hilang, tetapkan izin Baca pada direktori ini. Langkah 2: Verifikasi apakah NT Service\AzureWLBackupPluginSvc memiliki hak pemeriksaan melintasi Bypass dengan masuk ke Pemeriksaan Melewati Penetapan>Hak Pengguna Kebijakan>Keamanan Lokal. Setiap orang harus dipilih secara default. Jika Semua orang dan NT Service\AzureWLBackupPluginSvc hilang, tambahkan pengguna NT Service\AzureWLBackupPluginSvc , lalu coba mulai ulang layanan atau picu operasi pencadangan atau pemulihan untuk sumber data. |
Kegagalan registrasi ulang
Periksa satu atau beberapa gejala berikut sebelum Anda memicu operasi pendaftaran ulang:
Semua operasi (seperti pencadangan, pemulihan, dan konfigurasi cadangan) gagal pada VM dengan salah satu kode kesalahan berikut: WorkloadExtensionNotReachable, UserErrorWorkloadExtensionNotInstalled, WorkloadExtensionNotPresent, WorkloadExtensionDidntDequeueMsg.
Jika area Status Cadangan untuk item cadangan memperlihatkan Tidak dapat dijangkau, filter semua penyebab lain yang mungkin menghasilkan status yang sama:
- Kurangnya izin untuk melakukan operasi terkait cadangan pada VM.
- Matikan VM, sehingga cadangan tidak dapat terjadi.
- Kesalahan jaringan
Dalam kasus grup ketersediaan AlwaysOn, cadangan mulai gagal setelah Anda mengubah preferensi cadangan atau setelah adanya kegagalan.
Gejala-gejala ini dapat terjadi karena satu atau beberapa alasan berikut:
- Ekstensi telah dihapus atau dicopot pemasangannya dari portal.
- Ekstensi telah dihapus dari Panel Kontrol pada VM di bawah Copot Pemasangan atau Ubah Program.
- VM dipulihkan kembali ke masa lalu melalui pemulihan disk lokal.
- VM telah dimatikan untuk jangka waktu yang lama, sehingga konfigurasi ekstensinya kedaluwarsa.
- VM telah dihapus, dan VM lain dibuat dengan nama yang sama dan dalam grup sumber daya yang sama dengan VM yang dihapus.
- Salah satu node grup ketersediaan tidak menerima konfigurasi cadangan lengkap. Ini dapat terjadi ketika grup ketersediaan didaftarkan ke kubah atau ketika node baru ditambahkan.
Dalam skenario sebelumnya, kami menyarankan Anda memicu operasi pendaftaran ulang pada VM. Lihat di sini untuk instruksi tentang cara melakukan tugas ini di PowerShell.
Batas ukuran untuk file
Ukuran total string file tidak hanya tergantung pada jumlah file tetapi juga pada nama dan jalurnya. Untuk setiap file database, dapatkan nama file logis dan jalur fisik. Anda dapat menggunakan kueri SQL ini:
SELECT mf.name AS LogicalName, Physical_Name AS Location FROM sys.master_files mf
INNER JOIN sys.databases db ON db.database_id = mf.database_id
WHERE db.name = N'<Database Name>'
Sekarang susun dalam format berikut:
[{"path":"<Location>","logicalName":"<LogicalName>","isDir":false},{"path":"<Location>","logicalName":"<LogicalName>","isDir":false}]
Berikut contohnya:
[{"path":"F:\\Data\\TestDB12.mdf","logicalName":"TestDB12","isDir":false},{"path":"F:\\Log\\TestDB12_log.ldf","logicalName":"TestDB12_log","isDir":false}]
Jika ukuran string konten melebihi 20.000 byte, file database disimpan secara berbeda. Selama pemulihan, Anda tidak akan dapat mengatur jalur file target untuk pemulihan. File akan dipulihkan ke jalur SQL default yang disediakan oleh SQL Server.
Mengesampingkan jalur file pemulihan target default
Anda dapat mengambil alih jalur file pemulihan target selama operasi pemulihan dengan menempatkan file JSON yang berisi pemetaan file database ke jalur pemulihan target. Buat sebuah file database_name.json
dan letakkan di lokasi C:\Program Files\Azure Workload Backup\bin\plugins\SQL*
.
Konten file harus dalam format ini:
[
{
"Path": "<Restore_Path>",
"LogicalName": "<LogicalName>",
"IsDir": "false"
},
{
"Path": "<Restore_Path>",
"LogicalName": "LogicalName",
"IsDir": "false"
},
]
Berikut contohnya:
[
{
"Path": "F:\\Data\\testdb2_1546408741449456.mdf",
"LogicalName": "testdb7",
"IsDir": "false"
},
{
"Path": "F:\\Log\\testdb2_log_1546408741449456.ldf",
"LogicalName": "testdb7_log",
"IsDir": "false"
},
]
Dalam konten sebelumnya, Anda bisa mendapatkan nama logis file database dengan menggunakan kueri SQL berikut ini:
SELECT mf.name AS LogicalName FROM sys.master_files mf
INNER JOIN sys.databases db ON db.database_id = mf.database_id
WHERE db.name = N'<Database Name>'
File ini harus ditempatkan sebelum Anda memicu operasi pemulihan.
Langkah berikutnya
Untuk informasi selengkapnya tentang Azure Backup untuk komputer virtual SQL.