บทความที่เขียนโดย Paul เกี่ยวกับการสำรองข้อมูลภายในนั้นยอดเยี่ยมและคุณต้องอ่าน เพิ่มสิ่งที่ผู้อื่นพูดและเน้นเฉพาะส่วนของคำถามของคุณ
นอกจากนี้ฉันได้ยินมาว่าการสำรองข้อมูลเป็นเธรดเดี่ยวซึ่งหมายความว่าใช้คอร์เดียวเท่านั้นโดยสมมติว่าคุณสำรองข้อมูลเป็นไฟล์เดียว นอกจากนี้สมมติว่าคุณมีเครื่องมัลติคอร์เช่น 16 คอร์หรืออย่างน้อยก็สำคัญมากกว่าหนึ่ง
การดำเนินการสำรองข้อมูลcan use parallelism
แต่โปรดจำไว้ว่านี่ไม่ใช่การขนานที่ขับเคลื่อนโดย Optimizer ใน SQL Server โดยมีการขับเคลื่อนด้วยจำนวนดิสก์ที่เกี่ยวข้องจากการที่การสำรองข้อมูลต้องอ่านไฟล์ข้อมูลและที่การสำรองข้อมูลเขียนไฟล์ข้อมูลและจำนวนไฟล์สำรองที่สร้างขึ้น
คุณไม่สามารถใช้MAXDOP
คำใบ้ในขณะที่ทำการสำรองข้อมูล SQL Server
คุณไม่สามารถสร้างแผนการดำเนินการใน SSMS สำหรับการดำเนินการสำรอง TSQL แบบง่าย ๆ
ความขนานที่ขับเคลื่อนโดยเครื่องมือเพิ่มประสิทธิภาพการสืบค้นใน SQL Server นั้นโดยทั่วไปแล้วสำหรับผู้ประกอบการที่เกี่ยวข้อง (จริง ๆ แล้วมันมีความซับซ้อนมากขึ้น แต่เพื่อความเรียบง่ายที่คุณสามารถทำได้) เนื่องจากการดำเนินการสำรองข้อมูลไม่เกี่ยวข้องกับตัวดำเนินการใด ๆ
ฉันเขียนบทความเกี่ยวกับ Technet Wiki เกี่ยวกับBackup และ parallelismที่ฉันใช้ตัวอย่างง่าย ๆ เพื่ออธิบาย parallelism ระหว่างการสำรองข้อมูล SQL Server ต่อไปนี้เป็นข้อสรุป
หากไฟล์ฐานข้อมูลอยู่ในการดำเนินการสำรองข้อมูลหลายดิสก์จะเริ่มต้นที่เธรดต่ออุปกรณ์ไดรฟ์เพื่ออ่านข้อมูล ในทำนองเดียวกันถ้าทำการกู้คืนข้อมูลในหลาย ๆ ไดรฟ์ / จุดเชื่อมต่อการสำรองข้อมูลจะเริ่มต้นหนึ่งเธรดต่อไดรฟ์ / จุดเชื่อมต่อ
แม้ว่าคุณจะทิ้งสำเนาสำรองหลายชุดในไดรฟ์เดียวกันเราก็จะมีหนึ่งเธรดต่อไฟล์สำรองที่ถูกทิ้ง
ความขนานที่เกี่ยวข้องกับการสำรองข้อมูลนั้นสัมพันธ์กับแถบสี แต่ละแถบจะได้รับเธรดของผู้ปฏิบัติงานและเป็นส่วนเดียวของการสำรองข้อมูล / คืนค่าที่ควรพิจารณาว่าเป็นการดำเนินการแบบขนาน
ระดับสูงสุดของความขนานไม่ส่งผลกระทบต่อการดำเนินการสำรองข้อมูล
ฉันได้รับความเห็นจากผู้เชี่ยวชาญเกี่ยวกับเรื่องนี้จาก Paul และ Bob Dorr
ดังนั้นจะเกิดอะไรขึ้นเมื่องานสำรองทำงาน และยังมีความแตกต่างอย่างมีนัยสำคัญสำหรับรุ่นที่แตกต่างกันอย่างไร เช่น 2008,2012 และ 2014 (ไม่ใช่ใบอนุญาต)
ฉันอยากจะแนะนำให้คุณอ่านบทความ blog.msdnโดย Bob Dorr บางจุดสำคัญที่เขาเน้นคือ
เมื่อการสำรองข้อมูลเริ่มต้นจะสร้างชุดของบัฟเฟอร์ที่จัดสรรจากหน่วยความจำภายนอกพูลบัฟเฟอร์ เป้าหมายทั่วไป 4MB สำหรับแต่ละบัฟเฟอร์ส่งผลให้มีบัฟเฟอร์ประมาณ 4 ถึง 8 รายละเอียดเกี่ยวกับการคำนวณอยู่ใน: http://support.microsoft.com/kb/904804/en-us
บัฟเฟอร์จะถูกเปลี่ยนระหว่างคิวว่างและคิวข้อมูล ตัวอ่านดึงบัฟเฟอร์ว่างเติมด้วยข้อมูลและวางลงในคิวข้อมูล ตัวเขียนดึงข้อมูลบัฟเฟอร์ที่กรอกข้อมูลจากคิวข้อมูลประมวลผลบัฟเฟอร์และกลับสู่รายการอิสระ
คุณจะได้รับเครื่องเขียนต่ออุปกรณ์สำรองข้อมูลแต่ละครั้งจะดึงข้อมูลจากคิวข้อมูล ดังนั้นคำสั่งแบ็กอัพที่มีข้อกำหนดคุณสมบัติของดิสก์สี่ (4) จะมีตัวเขียนสี่ตัวและตัวอ่าน ผู้อ่านใช้ async I / O เพื่อให้สามารถติดตามผู้เขียนได้
คุณสามารถเปิดใช้trace flags 3213 and 3605
งานทั้งสองแบบไม่มีเอกสารดังนั้นโปรดใช้มันในสภาพแวดล้อมการทดสอบและดูข้อความที่น่าสนใจที่ถูกทิ้งใน SQL Server errorlog สิ่งที่ชอบด้านล่างจะปรากฏขึ้น
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
ฉันไม่ทราบเกี่ยวกับการเปลี่ยนแปลงที่สำคัญของรหัสสำรองสำหรับรุ่นต่างๆสิ่งต่าง ๆ ไม่ได้รับการบันทึกไว้ ฉันรู้เฉพาะเกี่ยวกับการปรับปรุงที่แนะนำในการSQL Server 2012 SP1 Cumulative Update 2,
เปิดใช้งานการสำรองและเรียกคืนจากบริการเก็บข้อมูล Windows Azure Blob จาก SQL Server โดยใช้ TSQL หรือ SMO อ่านที่นี่