แนบ / แยกออกจากการสำรองข้อมูล / เรียกคืน


14

ฉันต้องการถ่ายโอนฐานข้อมูล (ภาพรวม) ไปยังเซิร์ฟเวอร์อื่นเพื่อสร้างฐานข้อมูลซ้ำเพื่อตั้งค่าสภาพแวดล้อมการทดสอบอื่น

ฉันมีสองทางเลือก:

  1. ทำการสำรองข้อมูลเต็มรูปแบบที่เซิร์ฟเวอร์ต้นทาง / กู้คืนที่เซิร์ฟเวอร์ปลายทาง;
  2. แยกที่เซิร์ฟเวอร์ต้นทาง / แนบที่เซิร์ฟเวอร์ปลายทาง

ข้อดีและข้อเสียของทั้งสองโซลูชั่นตามความต้องการของฉันคืออะไร

ฉันใช้ SQL Server 2008 Enterprise

คำตอบ:


12

การสำรองข้อมูล / คืนค่าควรเป็นวิธีการที่คุณเลือก มันจะเร็วขึ้นในสถานการณ์ส่วนใหญ่

คุณสามารถใช้งานได้อย่างสม่ำเสมอรวมถึงการผลิตเพื่อทดสอบด้วย

ดูคำถามที่เกี่ยวข้องเช่นกันที่กล่าวถึงการสำรองข้อมูล / คืนค่ากับการถอด / แนบ:

การโยกย้ายเซิร์ฟเวอร์ SQL คืนค่าการสำรองข้อมูลเทียบกับการคัดลอกข้อมูลและไฟล์บันทึก

ตรวจสอบให้แน่ใจว่าคุณเพิ่มWITH COPY_ONLYตัวเลือกในการสำรองข้อมูลเพื่อไม่ทำลายห่วงโซ่การสำรองข้อมูลแผนการบำรุงรักษาที่มีอยู่


SQL 2008 Enterprise แนะนำการบีบอัดข้อมูลสำรอง โอกาสที่การสำรองข้อมูลที่ถูกบีบอัดจะมีขนาดเล็กกว่า 100GB อย่างมากและทำให้สามารถเขียน / คัดลอก / โหลดได้เร็วกว่าการคัดลอกผ่าน MDF / LDF
โทมัสรัชตัน

6
  1. การถอดฐานข้อมูลจะทำให้ออฟไลน์ ทำการสำรองข้อมูลหากคุณต้องการให้ฐานข้อมูลยังคงออนไลน์ขณะที่คุณคัดลอกไปยังเซิร์ฟเวอร์อื่น
  2. การย้ายและกู้คืนไฟล์สำรอง (.bak) อาจจะง่ายกว่า / ง่ายกว่าการย้ายและการแนบไฟล์ mdf / ldf หลายไฟล์ (ตามที่คุณต้องการหากคุณแยกฐานข้อมูล)
  3. บนกระดาษการถอด / ติดฐานข้อมูลอาจเร็วกว่าในทางเทคนิค แต่ในทางปฏิบัติการสำรอง / กู้คืนนั้นน่าจะเร็วและง่ายขึ้น เมื่อคุณแยกฐานข้อมูลคุณต้องออฟไลน์ฐานข้อมูลดั้งเดิมก่อน (ยกเลิกการเชื่อมต่อทุกคนและทุกสิ่ง) จากนั้นฐานข้อมูลจะไม่พร้อมใช้งานจนกว่าคุณจะติดตั้งใหม่ คุณต้องติดตามไฟล์ทั้งหมดในขณะที่สำรองไฟล์ทั้งหมดจะถูกจัดกลุ่ม

หากคุณตัดสินใจที่จะสำรอง / คืนค่าให้ใช้ตัวเลือก WITH COPY_ONLY ระหว่างการสำรองข้อมูลเพื่อให้แน่ใจว่าห่วงโซ่การสำรองข้อมูลใด ๆ ของแผนการบำรุงรักษาที่มีอยู่จะไม่เสียหาย

ไฟล์. bak บีบอัดได้ดีดังนั้นหากคุณตัดสินใจที่จะสำรองข้อมูลการบีบอัดข้อมูลสำรองก่อนที่จะย้ายอาจทำให้ประหยัดเวลาในการถ่ายโอน


4

ฉันจะไปสำหรับการสำรองข้อมูล / เรียกคืนตามที่ออกจากฐานข้อมูลเดิมในสถานะการทำงาน

โดยเฉพาะอย่างยิ่งหากคุณทำการแปลง 'การผลิตเพื่อทดสอบ' เป็นสิ่งสำคัญที่ฐานข้อมูลการผลิตจะออนไลน์อยู่

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

นอกจากนี้สำหรับฉัน (แม้ว่ามันจะให้ความรู้สึกมากกว่าสิ่งอื่นใด) การสำรองข้อมูล / เรียกคืนคือ "งานประจำวัน" ในขณะที่การถอด / แนบเป็นสิ่งที่คุณทำในสถานการณ์พิเศษ อย่าถามฉันว่าฉันได้รับความคิดนี้ที่ไหน ;-)


1

ฉันมักจะมีปัญหากับส่วน "คืนค่า" ของการสำรองข้อมูล / คืนค่า ฉันไม่สามารถอ้างถึงสิ่งที่เฉพาะเจาะจงได้ในที่สุดเมื่อฉันยอมแพ้มันและได้ถูกปลด / คัดลอก / ติดตั้งแต่นั้นมา

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


5
DBMS จะไม่ลบฐานข้อมูลออก คุณเป็นร้านค้าประเภทใดหากถอดแยกไฟล์และกู้คืนมีปัญหา
gbn

@Will: sp_detach_db ไม่ใช่ DROP: 2 คำสั่งแยกและไม่เกี่ยวข้องที่ต้องแยกต่างหาก ฐานข้อมูลที่แยกออกไม่สามารถ DROPped หรือไฟล์ที่ถูกลบผ่าน SQL ไม่สามารถแยกฐานข้อมูลที่ถูกดร็อปได้ การแยกออกไม่มีตัวเลือก "ลบไฟล์" ผ่านรหัสหรือทาง SSMS ดังนั้นฉันสามารถแสดงความคิดเห็นแรกของฉันเพราะคุณต้องเลือกตัวเลือกเพื่อลบไฟล์ใน DROP ไม่แยก
gbn

1

ฉันขอแนะนำให้copy_onlyสำรองข้อมูลโดยใช้วิธีนี้จากเปลือก DOS (เพื่อที่คุณจะไม่หยุดการบันทึกธุรกรรม) :

เรียกใช้จากC:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backupไดเรกทอรี:

backup.bat SQLDBNAME

ตำแหน่งที่backup.batมี(เพิ่มตัวแบ่งบรรทัดเพื่อให้สามารถอ่านได้) :

sqlcmd.exe -U username -P xxxxxxx -S SQL-SERVERNAME 
    -Q "BACKUP DATABASE %1 TO DISK = '%1_COPYONLY.BAK' WITH COPY_ONLY,INIT;"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.