ฐานข้อมูลพร้อมไฟล์. mdf หลายไฟล์


10

ฉันค้นหาออนไลน์ แต่ไม่พบสิ่งที่ฉันกำลังมองหา

ปัญหา / แบบสอบถามคือความรู้ของฉันฐานข้อมูลใน SQL Server ควรมีไฟล์. pdf หนึ่งไฟล์และอาจเป็นไฟล์. ndf และไฟล์. log หนึ่งไฟล์

ฉันได้เห็นฐานข้อมูลมากมายที่มีไฟล์ mdf หนึ่งไฟล์และไฟล์ ndf หลายไฟล์ แต่เมื่อเร็ว ๆ นี้ฉันเจอฐานข้อมูลบนเซิร์ฟเวอร์ที่ทุกฐานข้อมูลมีไฟล์ mdf หลายไฟล์

ฉันใช้การสำรองข้อมูลของฐานข้อมูลบางส่วนย้ายไปยังเซิร์ฟเวอร์อื่นและเรียกคืนไฟล์หลักเป็น. mdf และไฟล์อื่นทั้งหมดเป็น. ndf อย่างชัดเจนยกเว้นไฟล์บันทึกที่ถูกกู้คืนเป็น. log

ตอนนี้คำถามของฉันคือ:

  1. มีภูมิปัญญาในการมีไฟล์. pdf หลายไฟล์สำหรับฐานข้อมูลหรือไม่?
  2. มีข้อเสียของการมีไฟล์. pdf หลายไฟล์หรือไม่?

มันเป็น SQL Server 2008 R2 64bit Enterprise Edition

คำแนะนำหรือตัวชี้ไปในทิศทางที่ถูกต้องจะชื่นชมมาก ขอบคุณ.

คำตอบ:


14

แต่เมื่อเร็ว ๆ นี้ฉันเจอฐานข้อมูลบนเซิร์ฟเวอร์ที่ทุกฐานข้อมูลมีไฟล์ mdf หลายไฟล์

นั่นเป็นเพราะการตั้งชื่อไม่ถูกต้อง Microsoft กล่าวว่าทุกฐานข้อมูลมีไฟล์ข้อมูลหลักหนึ่งไฟล์ แต่ไม่ได้หมายความว่าสามารถมี "ไฟล์ข้อมูล mdf" ได้เพียงไฟล์เดียวเท่านั้นฐานข้อมูลสามารถมีไฟล์ข้อมูลจำนวนมากที่มี.mdfนามสกุล แต่ไฟล์เดียวจะเป็นไฟล์ข้อมูลหลัก เป็นการดีกว่าที่จะให้mdfส่วนขยายไปยังไฟล์ข้อมูลหลักและไฟล์ข้อมูลndfรองมีการแบ่งเขตที่เหมาะสม แต่นี่ไม่ใช่กฎที่ยากและรวดเร็วคุณสามารถให้นามสกุล. abc กับไฟล์ข้อมูลหลักดังนั้นสิ่งที่คุณเห็นเป็นเรื่องปกติ ตามความเป็นจริงคุณสามารถให้ส่วนขยายที่คุณต้องการ

มีภูมิปัญญาในการมีไฟล์. pdf หลายไฟล์สำหรับฐานข้อมูลหรือไม่?

ถ้าคุณหมายถึง:

มีภูมิปัญญาในการมีไฟล์หลักหลายไฟล์สำหรับฐานข้อมูลหรือไม่?

คำตอบคือไม่ฐานข้อมูลสามารถมีไฟล์ข้อมูลหลักได้เพียงไฟล์เดียว

แต่ถ้าคุณหมายถึง:

มีภูมิปัญญาในการมีไฟล์ข้อมูลหลายไฟล์ (.mdf, .ndf หรือชื่อแตกต่างกัน) สำหรับฐานข้อมูลหรือไม่?

ขึ้นอยู่กับว่าคุณสามารถและไม่สามารถใช้ประโยชน์จากไฟล์ข้อมูลหลายไฟล์ หากมีการแพร่กระจายข้ามไดรฟ์ทางกายภาพที่แตกต่างกัน (ฉันกำลังพูดถึงแกนหมุน) คุณจะเห็นประโยชน์บางอย่างกับแอปพลิเคชั่นการเขียนที่เข้มข้น หากพวกเขาอยู่บนโลจิคัลพาร์ติชันเดียวกันมันจะไม่มีประโยชน์ใด ๆ เพราะพวกมันจะใช้ทรัพยากรร่วมกัน การใช้ไฟล์และกลุ่มไฟล์ช่วยปรับปรุงประสิทธิภาพของฐานข้อมูลเพราะจะช่วยให้สามารถสร้างฐานข้อมูลข้ามดิสก์หลายตัวตัวควบคุมดิสก์หลายตัวหรือระบบ RAID (อาร์เรย์ที่ซ้ำซ้อนของดิสก์อิสระ) ตัวอย่างเช่นหากคอมพิวเตอร์ของคุณมีสี่ดิสก์คุณสามารถสร้างฐานข้อมูลที่ประกอบด้วยไฟล์ข้อมูลสามไฟล์และไฟล์บันทึกหนึ่งไฟล์โดยมีหนึ่งไฟล์ในแต่ละดิสก์ เมื่อเข้าถึงข้อมูลแล้วหัวอ่าน / เขียนสี่หัวสามารถเข้าถึงข้อมูลพร้อมกันได้ในเวลาเดียวกัน

ตามบทความ MSDN BOL นี้

กลุ่มไฟล์ใช้กลยุทธ์การเติมตามสัดส่วนในไฟล์ทั้งหมดภายในแต่ละกลุ่มไฟล์ เมื่อข้อมูลถูกเขียนไปยังกลุ่มไฟล์เครื่องมือฐานข้อมูลเซิร์ฟเวอร์ SQL จะเขียนจำนวนตามสัดส่วนของพื้นที่ว่างในไฟล์ไปยังแต่ละไฟล์ภายในกลุ่มไฟล์แทนที่จะเขียนข้อมูลทั้งหมดลงในไฟล์แรกจนเต็ม จากนั้นจะเขียนไปยังไฟล์ถัดไป ตัวอย่างเช่นหากไฟล์ f1 มีอิสระ 100 MB และไฟล์ f2 มีอิสระ 200 MB ขอบเขตหนึ่งจะถูกจัดสรรจากไฟล์ f1 สองขอบเขตจากไฟล์ f2 และอื่น ๆ ด้วยวิธีนี้ทั้งสองไฟล์จะเต็มในเวลาเดียวกันและสามารถทำการสตริปได้ง่าย

ข้อได้เปรียบอื่น ๆ ที่ฉันรู้คือการพิจารณาฐานข้อมูล 1 TB หากคุณจะมีไฟล์ข้อมูลเดียวและคุณต้องการกู้คืนฐานข้อมูลนี้บนเซิร์ฟเวอร์อื่นบางแห่งซึ่งไม่น่าเป็นไปได้สูงที่คุณจะมีพื้นที่ว่าง 1 TB ตอนนี้ถ้าฐานข้อมูลเดียวกันถูกกระจายในไฟล์ที่แตกต่างกันแต่ละไฟล์มีขนาด 250 G มันจะง่ายขึ้นในการกู้คืน นี่อาจไม่ใช่สถานการณ์ของคุณ แต่มันช่วยให้ง่ายมากในการค้นหาเซิร์ฟเวอร์ที่มีสี่ไดรฟ์ 250 G จากไดรฟ์ 1 TB

ฉันจะบอกว่าแทนที่จะเป็นไฟล์ข้อมูลจำนวนมากมันจะดีกว่าที่จะมีกลุ่มไฟล์ที่แตกต่างกัน แต่อีกครั้งมีสภาพแวดล้อมไม่มาก ฐานข้อมูลที่สร้างขึ้นจากหลายกลุ่มไฟล์สามารถเรียกคืนในขั้นตอนโดยกระบวนการที่เรียกว่าการกู้คืนทีละน้อย การกู้คืนทีละน้อยทำงานได้กับทุกรุ่นการกู้คืน แต่มีความยืดหยุ่นมากกว่าสำหรับรุ่นเต็มและแบบบันทึกจำนวนมากกว่าโหมดง่าย ๆ ไฟล์หรือกลุ่มไฟล์ในฐานข้อมูลสามารถสำรองและกู้คืนทีละรายการ สิ่งนี้ช่วยให้คุณกู้คืนเฉพาะไฟล์ที่เสียหายโดยไม่ต้องกู้คืนส่วนที่เหลือของฐานข้อมูล ไฟล์ในการสำรองข้อมูลกลุ่มไฟล์สามารถเรียกคืนเป็นรายบุคคลหรือเป็นกลุ่ม


ถ้า DB มีไฟล์ข้อมูลไฟล์มากกว่าหนึ่งไฟล์เช่น ndf และไฟล์หลักนั้นยังคงเป็นค่าเริ่มต้น ด้วยสิ่งนี้หากหนึ่งในไฟล์ DB ที่ใช้ในการสร้างตาราง / ดัชนีบนมันจะสร้างประสิทธิภาพเหนือหัว? ฉันหมายถึงกลุ่มไฟล์เริ่มต้นยังคงเป็นไฟล์หลัก แต่ตารางและดัชนีที่สร้างขึ้นอยู่ในไฟล์ข้อมูล
Hi10
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.