Bagikan melalui


Tentang Pencadangan SQL Server di Azure VM

Azure Backup menawarkan solusi khusus berbasis stream untuk mencadangkan SQL Server yang berjalan di Azure VM. Solusi ini selaras dengan manfaat Azure Backup dari pencadangan nol infrastruktur, retensi jangka panjang, dan manajemen pusat. Ini juga menyediakan keuntungan berikut khusus untuk SQL Server:

  • Pencadangan sadar beban kerja yang mendukung semua jenis cadangan - lengkap, diferensial, dan log
  • 15 menit RPO (tujuan titik pemulihan) dengan pencadangan log yang sering
  • Pemulihan titik waktu hingga satu detik
  • Pencadangan dan pemulihan tingkat database individual

Untuk melihat skenario pencadangan dan pemulihan yang kami dukung saat ini, lihat matriks dukungan.

Proses pencadangan

Solusi ini memanfaatkan API asli SQL untuk mengambil cadangan database SQL Anda.

  • Setelah Anda menentukan SQL Server komputer virtual yang ingin Anda lindungi dan kueri untuk database di dalamnya, layanan Azure Backup akan memasang ekstensi cadangan beban kerja pada komputer virtual dengan nama ekstensi AzureBackupWindowsWorkload.

  • Ekstensi ini terdiri dari koordinator dan plugin SQL. Saat koordinator bertanggung jawab untuk memicu alur kerja untuk berbagai operasi seperti mengonfigurasi pencadangan, pencadangan dan pemulihan, plugin bertanggung jawab atas aliran data aktual.

  • Agar dapat menemukan database di komputer virtual ini, Azure Backup membuat akun NT SERVICE\AzureWLBackupPluginSvc. Akun ini digunakan untuk pencadangan dan pemulihan, dan memerlukan izin SQL sysadmin. Akun NT SERVICE\AzureWLBackupPluginSvc adalah Akun Layanan Virtual, dan tidak memerlukan manajemen kata sandi apa pun. Azure Backup menggunakan akun NT AUTHORITY\SYSTEM untuk penemuan / pertanyaan database, jadi akun ini perlu menjadi masuk publik di SQL. Jika Anda tidak membuat SQL Server VM dari Azure Marketplace, Anda mungkin menerima kesalahan UserErrorSQLNoSysadminMembership. Jika ini terjadi ikuti instruksi ini.

  • Setelah Anda memicu konfigurasi perlindungan pada database yang dipilih, layanan cadangan mengatur koordinator dengan jadwal pencadangan dan detail kebijakan lainnya, yang di-cache ekstensi secara lokal pada komputer virtual.

  • Pada waktu yang dijadwalkan, koordinator berkomunikasi dengan plugin dan mulai mengalirkan data cadangan dari SQL server menggunakan VDI.

  • Plugin mengirimkan data langsung ke kubah Layanan Pemulihan, sehingga menghilangkan kebutuhan akan lokasi penahapan. Data dienkripsi dan disimpan oleh layanan Azure Backup di akun penyimpanan.

  • Ketika transfer data selesai, koordinator mengkonfirmasi penerapan dengan layanan cadangan.

    Arsitektur SQL Backup

Sebelum memulai

Sebelum memulai, verifikasi persyaratan berikut:

  1. Pastikan Anda memiliki instans SQL Server yang berjalan di Azure. Anda dapat dengan cepat membuat instans SQL Server di pasar.
  2. Tinjau pertimbangan fitur dan dukungan skenario.
  3. Ulas pertanyaan umum tentang skenario ini.

Mengatur izin komputer virtual

Ketika Anda menjalankan penemuan di SQL Server, Azure Backup melakukan hal berikut:

  • Menambahkan ekstensi AzureBackupWindowsWorkload.
  • Membuat akun NT SERVICE\AzureWLBackupPluginSvc untuk menemukan database di mesin virtual. Akun ini digunakan untuk membuat cadangan dan pemulihan serta memerlukan izin sysadmin SQL.
  • Menemukan database yang berjalan di VM, Azure Backup menggunakan akun NT AUTHORITY\SYSTEM. Akun ini harus menjadi info masuk publik di SQL.

Jika Anda tidak membuat SQL Server komputer virtual di Azure Marketplace atau jika Anda menggunakan SQL 2008 atau 2008 R2, Anda mungkin menerima kesalahan UserErrorSQLNoSysadminMembership.

Untuk memberikan izin dalam kasus SQL 2008 dan 2008 R2 berjalan pada Windows 2008 R2, lihat di sini.

Untuk semua versi lainnya, perbaiki izin dengan langkah-langkah berikut:

  1. Gunakan akun dengan izin SQL Server sysadmin untuk masuk ke SQL Server Management Studio (SSMS). Kecuali Anda memerlukan izin khusus, NTLM seharusnya bekerja.

  2. Di SQL Server, buka folder Keamanan/Masuk.

    Buka folder Keamanan/Masuk untuk melihat akun

  3. Klik kanan folder masuk dan pilih Masuk Baru. Di Login - Baru, pilih Cari.

    Pada kotak dialog Masuk - Baru, pilih Cari

  4. Akun layanan virtual Windows NT SERVICE\AzureWLBackupPluginSvc dibuat selama fase pendaftaran komputer virtual dan penemuan SQL. Masukkan nama akun seperti yang diperlihatkan di Masukkan nama objek untuk dipilih. Pilih Periksa Nama untuk mengatasi nama tersebut. Pilih OK.

    Pilih Periksa Nama untuk mengatasi nama layanan yang tidak diketahui

  5. Dalam Peran Server, pastikan peran sysadmin dipilih. Pilih OK. Izin yang diperlukan sekarang seharusnya ada.

    Pastikan peran server sysadmin dipilih

  6. Sekarang kaitkan database dengan kubah Layanan Pemulihan. Di portal Microsoft Azure, pada daftar Server Terproteksi, klik kanan server yang berada dalam status kesalahan >Menemukan Kembali DB.

    Verifikasi bahwa server memiliki izin yang sesuai

  7. Periksa kemajuan di area Notifikasi. Saat database yang dipilih ditemukan, pesan keberhasilan muncul.

    Pesan keberhasilan penyebaran

Catatan

Jika SQL Server Anda memiliki beberapa instans SQL Server yang terinstal, maka Anda harus menambahkan izin sysadmin untuk akun NT Service\AzureWLBackupPluginSvc ke semua instans SQL.

Memberikan izin SQL sysadmin untuk SQL 2008 dan SQL 2008 R2

Tambahkan NT AUTHORITY\SYSTEM dan NT Service\AzureWLBackupPluginSvc masuk ke Instans SQL Server:

  1. Buka Instans SQL Server di penjelajah Objek.

  2. Arahkan ke Keamanan -> Masuk

  3. Klik kanan info masuk dan pilih Masuk Baru

    Proses Masuk baru menggunakan SSMS

  4. Buka tab Umum dan masukkan NT AUTHORITY\SYSTEM sebagai ID masuk.

    ID masuk untuk SSMS

  5. Buka Peran Server dan pilih peran publik dan sysadmin.

    Memilih peran di SSMS

  6. Masuk ke Status. Beri Izin untuk menyambungkan ke mesin database dan Masuk sebagai Diaktifkan.

    Memberikan izin dalam SSMS

  7. Pilih OK.

  8. Ulangi urutan langkah yang sama (1-7 di atas) untuk menambahkan Masuk NT Service\AzureWLBackupPluginSvc ke instans SQL Server. Jika masuk sudah ada, pastikan ia memiliki peran server sysadmin dan di bawah Status sebagai Berikan Izin untuk terhubung ke mesin database dan Masuk sebagai Diaktifkan.

  9. Setelah memberikan izin, Menemukan kembali DB di portal: Vault - Kelola ->> Infrastruktur Cadangan -> Beban kerja di Azure VM:

    Menemukan kembali DB di portal Microsoft Azure

Atau, Anda dapat mengotomatiskan pemberian izin dengan menjalankan perintah PowerShell berikut dalam mode admin. Nama instans diatur ke MSSQLSERVER secara default. Ubah argumen nama instans dalam skrip jika diperlukan.

param(
    [Parameter(Mandatory=$false)]
    [string] $InstanceName = "MSSQLSERVER"
)
if ($InstanceName -eq "MSSQLSERVER")
{
    $fullInstance = $env:COMPUTERNAME   # In case it is the default SQL Server Instance
}
else
{
    $fullInstance = $env:COMPUTERNAME + "\" + $InstanceName   # In case of named instance
}
try
{
    sqlcmd.exe -S $fullInstance -Q "sp_addsrvrolemember 'NT Service\AzureWLBackupPluginSvc', 'sysadmin'" # Adds login with sysadmin permission if already not available
}
catch
{
    Write-Host "An error occurred:"
    Write-Host $_.Exception|format-list -force
}
try
{
    sqlcmd.exe -S $fullInstance -Q "sp_addsrvrolemember 'NT AUTHORITY\SYSTEM', 'sysadmin'" # Adds login with sysadmin permission if already not available
}
catch
{
    Write-Host "An error occurred:"
    Write-Host $_.Exception|format-list -force
}

Mengonfigurasi pencadangan simultan

Anda sekarang dapat mengonfigurasi cadangan untuk menyimpan titik pemulihan server SQL dan log di penyimpanan lokal dan vault Layanan Pemulihan secara bersamaan.

Untuk mengonfigurasi cadangan simultan, ikuti langkah-langkah berikut:

  1. Buka lokasi C:\Program Files\Azure Workload Backup\bin\plugins , lalu buat file PluginConfigSettings.json, jika tidak ada.

  2. Tambahkan entitas nilai kunci yang dipisahkan EnableLocalDiskBackupForBackupTypes koma, dengan kunci dan LocalDiskBackupFolderPath ke file JSON.

    • Di bawah EnableLocalDiskBackupForBackupTypes, cantumkan jenis cadangan yang ingin Anda simpan secara lokal.

      Misalnya, jika Anda ingin menyimpan cadangan Penuh dan Log , sebutkan ["Full", "Log"]. Untuk menyimpan hanya cadangan log, sebutkan ["Log"].

    • Di bawah LocalDiskBackupFolderPath, sebutkan jalur ke folder lokal. Pastikan Anda menggunakan garis miring ganda sambil menyebutkan jalur dalam file JSON.

      Misalnya, jika jalur yang disukai untuk cadangan lokal adalah E:\LocalBackup, sebutkan jalur di JSON sebagai E:\\LocalBackup.

      JSON akhir akan muncul sebagai:

      {
         "EnableLocalDiskBackupForBackupTypes": ["Log"],
         "LocalDiskBackupFolderPath": "E:\\LocalBackup",
      }
      

      Jika ada entri lain yang telah diisi sebelumnya dalam file JSON, tambahkan dua entri di atas di bagian bawah file JSON tepat sebelum kurung kurawal penutup.

  3. Agar perubahan segera berlaku alih-alih satu jam reguler, buka Layanan TaskManager>, klik kanan AzureWLbackupPluginSvc dan pilih Hentikan.

    Perhatian

    Tindakan ini akan membatalkan semua pekerjaan pencadangan yang sedang berlangsung.

    Konvensi penamaan file cadangan tersimpan dan struktur folder untuk itu akan menjadi {LocalDiskBackupFolderPath}\{SQLInstanceName}\{DatabaseName}.

    Misalnya, jika Anda memiliki database Contoso di bawah instans MSSQLSERVERSQL , file akan terletak di di E:\LocalBackup\MSSQLSERVER\Contoso.

    Nama file adalah VDI device set guid, yang digunakan untuk operasi pencadangan.

  4. Periksa apakah lokasi target di bawah LocalDiskBackupFolderPath memiliki izin baca dan tulis untuk NT Service\AzureWLBackupPluginSvc.

    Catatan

    Untuk folder pada disk VM lokal, klik kanan folder dan konfigurasikan izin yang diperlukan untuk NT Service\AzureWLBackupPluginSvc pada tab Keamanan .

    Jika Anda menggunakan jaringan atau berbagi SMB, konfigurasikan izin dengan menjalankan cmdlet PowerShell di bawah ini dari konsol pengguna yang sudah memiliki izin untuk mengakses berbagi:

    $cred = Get-Credential
    New-SmbGlobalMapping -RemotePath <FileSharePath> -Credential $cred -LocalPath <LocalDrive>:  -FullAccess @("<Comma Separated list of accounts>") -Persistent $true
    

    Contoh:

    $cred = Get-Credential
    New-SmbGlobalMapping -RemotePath \\i00601p1imsa01.file.core.windows.net\rsvshare -Credential $cred -LocalPath Y:  -FullAccess @("NT AUTHORITY\SYSTEM","NT Service\AzureWLBackupPluginSvc") -Persistent $true
    

Langkah berikutnya