Artikel yang ditulis oleh Paul mengenai internal backup sangat bagus dan Anda harus membacanya. Menambah apa yang orang lain katakan dan tekankan pada bagian spesifik dari pertanyaan Anda
Saya juga mendengar bahwa pencadangan adalah satu utas yang berarti hanya menggunakan satu inti, dengan asumsi Anda membuat cadangan ke satu file. Juga dengan asumsi Anda memiliki mesin multicore, misalnya 16 core, atau setidaknya jumlah yang lebih besar dari satu.
Operasi pencadangan can use parallelism
tetapi ingat ini Bukan paralelisme yang didorong oleh Pengoptimal dalam SQL Server, didorong oleh jumlah disk yang terlibat dari mana cadangan harus membaca file data dan di mana cadangan menulis file data dan jumlah file cadangan yang dibuat.
Anda tidak dapat menggunakan MAXDOP
petunjuk saat mengambil cadangan SQL Server
Anda tidak dapat membuat rencana eksekusi di SSMS untuk operasi pencadangan TSQL sederhana.
Paralelisme yang didorong oleh pengoptimal permintaan dalam SQL Server pada dasarnya adalah untuk operator yang terlibat (sebenarnya ini lebih kompleks tetapi demi kesederhanaan Anda dapat mengambil ini) karena operasi cadangan tidak melibatkan operator apa pun karena itu tidak dapat menggunakan paralelisme yang didorong oleh pengoptimal.
Saya menulis sebuah artikel di Technet Wiki tentang Pencadangan dan paralelisme di mana saya menggunakan contoh sederhana untuk menjelaskan paralelisme selama pencadangan SQL Server. Berikut ini adalah kesimpulannya
Jika file basis data ada di beberapa disk, operasi pencadangan akan dimulai pada utas per drive perangkat untuk membaca data. Dengan cara yang sama jika pemulihan dilakukan pada beberapa drive / titik pemasangan operasi cadangan akan memulai satu utas per titik drive / pemasangan
Bahkan jika Anda membuang banyak salinan cadangan pada drive yang sama, kami akan mencabut satu utas per file cadangan.
Paralelisme yang terkait dengan cadangan terkait dengan garis-garis. Setiap strip mendapatkan utas pekerjanya sendiri dan itu benar-benar satu-satunya bagian cadangan / pemulihan yang harus dipertimbangkan sebagai operasi paralel.
Tingkat paralelisme maks tidak memengaruhi operasi cadangan.
Saya mendapat pendapat ahli tentang hal ini dari Paul dan Bob Dorr.
Jadi apa yang terjadi ketika pekerjaan cadangan sedang berjalan? Dan apakah ada perbedaan signifikan untuk versi yang berbeda? misalnya 2008, 2012 dan 2014 (bukan lisensi).
Saya sarankan Anda untuk membaca artikel blog.msdn ini oleh Bob Dorr. Beberapa poin penting yang ia tekankan adalah
Saat pencadangan dimulai, ia menciptakan serangkaian buffer, dialokasikan dari memori di luar kumpulan buffer. Target biasanya 4MB untuk setiap buffer menghasilkan sekitar 4 hingga 8 buffer. Rincian tentang perhitungan ada di: http://support.microsoft.com/kb/904804/en-us
Buffer ditransisikan antara antrian bebas dan data. Pembaca menarik buffer gratis, mengisinya dengan data dan menempatkannya pada antrian data. Penulis menarik buffer data yang terisi dari antrian data, memproses buffer dan mengembalikannya ke daftar gratis.
Anda mendapatkan penulis per perangkat cadangan, masing-masing mengambil dari antrian data. Jadi perintah cadangan dengan empat (4) spesifikasi disk akan memiliki empat penulis dan satu pembaca. Pembaca menggunakan async I / O sehingga dapat mengimbangi penulis.
Anda dapat mengaktifkan trace flags 3213 and 3605
, keduanya tidak berdokumen jadi silakan gunakan di lingkungan pengujian, dan lihat pesan menarik apa yang dibuang di SQL Server errorlog. Sesuatu seperti di bawah ini akan muncul
Memory limit: 249MB
BufferCount: 7
Sets Of Buffers: 1
MaxTransferSize: 1024 KB
Min MaxTransferSize: 64 KB
Total buffer space: 7 MB
Tabular data device count: 1
Fulltext data device count: 0
Filestream device count: 0
TXF device count: 0
Filesystem i/o alignment: 512
Media Buffer count: 7
Media Buffer size: 1024KB
Saya tidak mengetahui adanya perubahan signifikan dalam kode cadangan untuk berbagai versi, hal-hal seperti itu tidak didokumentasikan. Saya hanya tahu tentang peningkatan yang diperkenalkan pada SQL Server 2012 SP1 Cumulative Update 2,
cadangan dan pemulihan yang diaktifkan dari layanan penyimpanan Windows Azure Blob dari SQL Server menggunakan TSQL atau SMO. Baca di sini