อัปเกรดฐานข้อมูล SQL Server 2000 เป็น 2008 R2 และเปิดใช้งานคุณลักษณะใหม่


23

ฉันเพิ่งอัพเกรดฐานข้อมูล SQL Server 2000 เป็น 2008 R2


สิ่งที่ฉันทำคือ:

  1. ปิดบริการ SQL Server 2000 (ด่วน) บนเครื่องเก่า
  2. ย้าย datafiles ( mydatabase.mdfและmydatabase.ldf ) ไปยังเครื่องใหม่
  3. เรียกใช้ SQL Server Management Studio 2008
  4. เชื่อมต่อกับโปรแกรมฐานข้อมูลท้องถิ่น
  5. แนบดาต้าไฟล์เข้ากับฐานข้อมูล
  6. เปลี่ยนระดับความเข้ากันได้ของฐานข้อมูลเป็น SQL 2008 (100)

คำถาม: ฉันต้องทำอะไรอีกบ้างเพื่อให้การย้ายข้อมูลเสร็จสมบูรณ์

ฉันต้องการ:

  1. ใช้คุณสมบัติใหม่เช่นการตรวจสอบและการกู้คืนเต็มรูปแบบ
  2. ทำฐานข้อมูลนี้ให้ตรงตามที่สร้างใน SQL 2008 R2
  3. ทำให้ฐานข้อมูลนี้สามารถใช้งานร่วมกันได้อย่างถูกต้องและสมบูรณ์แบบสำหรับเครื่องมือฐานข้อมูล SQL 2008 R2 ใหม่

กล่าวอีกนัยหนึ่ง:ฉันแค่ต้องการทราบวิธีการแปลงฐานข้อมูล SQL 2000 เก่าอย่างถูกต้องและสมบูรณ์ให้เป็นฐานข้อมูล 2008 R2 ใหม่ให้ใจเย็น ๆ ว่าทุกอย่างถูกต้องและมีความสุขกับคุณสมบัติใหม่ทั้งหมด


ฉันถามคำถามนี้เพราะฉันพบเว็บไซต์จำนวนมากบนอินเทอร์เน็ตที่บอกว่าสิ่งต่าง ๆ มากมายที่ทำให้ฉันสับสน: บางคนบอกว่าต้องสร้างดัชนีใหม่อีกคนบอกว่าจะทำสิ่งอื่น ... และ ตอนนี้ฉันไม่รู้อะไรเลยฉันต้องการได้ยินความเห็นของผู้ที่มีประสบการณ์และคำแนะนำที่ชัดเจนทีละขั้นตอน ฉันทำงานให้กับ บริษัท ขนาดเล็กมากฉันเป็นของตัวเองและฉันไม่ต้องการที่จะทำอะไรผิดพลาด


ท่านฉันประทับใจในคำตอบของคุณมากฉันไม่ได้คาดหวังอะไรมากมาย


ดังนั้นความคิดเห็นบางส่วน:

  1. ขณะนี้ฐานข้อมูลอยู่ในระหว่างการผลิต อย่างที่ฉันบอกว่ามันได้รับการอัพเกรดโดยใช้วิธีการ deattach-attach ตามที่ฉันบอกไว้ในการโพสต์แรกและตามที่อธิบายไว้ใน MSDN: http://msdn.microsoft.com/en-us/library/ms189625.aspx มันต้องทำอย่างรวดเร็ว ดังนั้นฉันถูกบังคับให้ทำอย่างนั้น ลองลืมว่ามันไม่เหมาะสมได้อย่างไรและมุ่งเน้นไปที่สถานการณ์ปัจจุบัน

  2. ผู้ใช้ / การกลั่นกรองไม่ใช่ปัญหาที่นี่ - มีเพียงไม่กี่สิทธิ์เท่านั้นที่ง่าย

  3. แอปพลิเคชันที่ใช้ฐานข้อมูลสามารถใช้งานร่วมกับ SQL 2000 ได้จนถึงปี 2012 ดังนั้นจึงไม่เป็นปัญหาเช่นกัน

  4. ไฟล์ฐานข้อมูล (MDF) ไม่ใหญ่เพียงประมาณ 1GB


คำถามเพิ่มเติมไม่กี่:

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

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

  3. ฉันกำลังเตรียมพร้อมที่จะย้ายฐานข้อมูลนี้ไปยัง SQL 2012 - ก่อนอื่นมาจาก SQL 2000 ถึง 2008 R2 ตอนนี้มันจะมาจาก 2008 R2 ถึง 2012 (มันเป็นไปไม่ได้ที่จะทำสิ่งนี้โดยตรงเพราะขาดการสนับสนุนฐานข้อมูล SQL 2000 ใน SQL 2012) ดังนั้นฉันเข้าใจว่าฉันควรทำตามคำแนะนำของคุณ: สำรองข้อมูลในปี 2008 R2 และคืนค่าในปี 2012 จากนั้นทำตามคำแนะนำที่เหลือของคุณใช่ไหม

  4. โปรดอธิบายวิธีการสำรอง / คืนค่าให้ฉัน: มันเหมือนกับดัมพ์ของฐานข้อมูลไปยังเคียวรี SQL และจากนั้นกู้คืนโดยการรันเคียวรีแบบกลุ่ม? วิธีนี้จะใช้วิธี "จัดเรียงข้อมูล" ฐานข้อมูลของฉันหรือไม่ หากไม่มีวิธีการจัดเรียงข้อมูล / ปรับแต่งมันด้วยตนเอง?

  5. เนื่องจากเราใช้ SQL 2000 Express เป็นเวลาหลายปี (ไม่มีส่วนต่อประสานการจัดการ) เราทำการสำรองข้อมูลโดยการหยุดเอ็นจิ้นและ RAR ในไดเรกทอรีข้อมูล ตอนนี้เราอยู่บน SQL 2008 แล้วนี่ยังดีกว่าการใช้ฟังก์ชั่นสำรองข้อมูลใน Management Studio หรือไม่?

  6. โหมดการกู้คืนเต็มรูปแบบที่มีการสำรองข้อมูลบันทึกธุรกรรมบ่อยครั้ง - ไฟล์บันทึกธุรกรรมอยู่ที่ไหน - เป็นไฟล์ LDF หรือไม่ ฉันจะสำรองข้อมูลได้อย่างถูกต้องได้อย่างไร?


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

ขอบคุณมากสำหรับเวลาและความรู้ของฉันฉันซาบซึ้งจริงๆ


2
ครั้งต่อไปฉันขอแนะนำให้สำรอง / กู้คืนแทนที่จะปิด SQL Server ย้ายไฟล์และแนบไฟล์ หลายสิ่งหลายอย่างที่อาจผิดพลาดได้ ในด้านบวกขอแสดงความยินดีกับการทิ้งซอฟต์แวร์ฐานข้อมูลอายุ 14 ปีในที่สุด!
Aaron Bertrand

คำตอบ:


37

ขั้นตอนที่สำคัญที่สุดที่จะทำคือการใช้Upgrade Advisorบนฐานข้อมูล SQL Server 2000 และอยู่ทุกประเด็นที่มีการรายงานโดยมัน

แนวทางปฏิบัติที่ดีที่สุดให้ใช้เครื่องมือ Upgrade Advisor บนฐานข้อมูลดั้งเดิมของ SQL Server 2000 ของคุณและนำเข้าไฟล์ติดตามไปยังเครื่องมือ Upgrade Advisor สำหรับการวิเคราะห์ ไฟล์ติดตามช่วยให้ Upgrade Advisor ตรวจพบปัญหาที่อาจไม่ปรากฏในการสแกนฐานข้อมูลอย่างง่ายเช่น TSQL ที่ฝังอยู่ในแอปพลิเคชัน คุณสามารถดักจับร่องรอยของ TSQL โดยใช้ SQL Profiler บนเซิร์ฟเวอร์ SQL Server 2000 ของคุณในช่วงเวลาปกติและวิเคราะห์การติดตามเหล่านี้โดยใช้ Upgrade Advisor

ดังนั้นขั้นตอนที่เหลือจะเป็น:

ในวันที่ย้ายถิ่น:

  1. สคริปต์การเข้าสู่ระบบของเราใน Server 2000 โดยใช้sp_help_revlogin
  2. สคริปต์งานและเซิร์ฟเวอร์ที่เชื่อมโยงจากเซิร์ฟเวอร์ sql 2000
  3. หยุด webservers ที่เชื่อมต่อกับเซิร์ฟเวอร์ 2000 ตรวจสอบให้แน่ใจว่าไม่มีแอปพลิเคชันเชื่อมต่อกับเซิร์ฟเวอร์ 2000
  4. สำรองฐานข้อมูลของคุณและเรียกคืนบนเซิร์ฟเวอร์ปลายทาง sql 2008 R2 (หมายเหตุ: อย่าถอด / แนบเนื่องจากสิ่งต่าง ๆ อาจผิดพลาดและคุณจะจบลงด้วยฐานข้อมูลเดี่ยวและไม่มีการสำรองข้อมูล!)
  5. เมื่อการสำรองข้อมูลของคุณถูกกู้คืนบนเซิร์ฟเวอร์ 2008 R2 ให้เรียกใช้เอาต์พุตจาก sp_help_revlogin บนเซิร์ฟเวอร์ 2008 R2 เพื่อสร้างการเข้าสู่ระบบอีกครั้ง
  6. ซิงค์ผู้ใช้ที่ไม่ได้ใช้งาน (ถ้ามี) และสร้างงานเอเจนต์ sql และเซิร์ฟเวอร์ที่เชื่อมโยงใหม่บนเซิร์ฟเวอร์ใหม่
  7. เปลี่ยนระดับความเข้ากันได้กับฐานข้อมูลที่กู้คืนเป็น 100
  8. Dbcc checkdb ที่เปิดใช้ตัวเลือก all_errormsgs และ data_purity: DBCC CHECKDB ('<db_name_goes_here>' ) WITH ALL_ERRORMSGS,NO_INFOMSGS, DATA_PURITY
  9. รัน DBCC UPDATEUSAGE บนฐานข้อมูลที่เรียกคืน DBCC UPDATEUSAGE('database_name') WITH COUNT_ROWS
  10. อัปเดตสถิติของตารางทั้งหมดด้วยการสแกนแบบสมบูรณ์: Update Statistics table_name with FULLSCAN
  11. ทางเลือก: ตรวจสอบระดับการแตกแฟรกเมนต์และขึ้นอยู่กับระดับการแตกแฟรกเมนต์ให้รันดัชนี / สร้างใหม่ของดัชนีทั้งหมด คุณสามารถใช้สคริปต์ Ola ของ
  12. คอมไพล์ SP ทั้งหมดที่ใช้อีกครั้ง sp_recompile 'procedureName'
  13. รีเฟรชมุมมองของคุณ SP_REFRESHVIEW view_name
  14. ตรวจสอบให้แน่ใจว่าได้เปลี่ยนตัวเลือกฐานข้อมูล: ตรวจสอบหน้าเป็น CHECKSUM
  15. เปลี่ยนรูปแบบการกู้คืน (หากแตกต่างจาก sql 2000) เป็น FULL หากคุณเปลี่ยนเป็นรูปแบบการกู้คืนแบบเต็มรูปแบบคุณต้องสำรองข้อมูลบันทึกธุรกรรมเป็นประจำ สิ่งนี้จะช่วยคุณในการกู้คืนจุดเวลารวมทั้งไม่ขยาย T-Log ของคุณ
  16. ใน SQL Server 2005 ขึ้นไปMail Databaseได้ถูกนำมาใช้ ดังนั้นคุณต้องย้ายจาก SQLMail ไปยัง Database Mail

    USE [master]
    GO
    sp_configure 'show advanced options',1
    GO
    RECONFIGURE WITH OVERRIDE
    GO
    sp_configure 'Database Mail XPs',1
    GO
    RECONFIGURE 
    GO

นอกจากนี้ถ้าคุณมีการจำลองแบบคุณต้องรีเซ็ตมัน หาก DR เช่น logshipping หรือ Mirroring ใด ๆ (ใหม่ในปี 2005 และสูงกว่า แต่คิดค่าเสื่อมราคาในปี 2012) คุณต้องรีเซ็ตมันเช่นกัน

แพคเกจ DTS เก่าจะต้องมีการอพยพไป SSIS ใช้C:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTSMigrationWizard.exe(บรรทัดคำสั่ง) หรือใช้แพคเกจช่วยสร้างการโยกย้าย

นอกจากนี้คุณยังสามารถใช้พบสคริปต์ของฉันที่/dba//a/36701/8783 แม้ว่ามันจะใช้วิธีการแยก / แนบฉันขอแนะนำให้คุณใช้วิธีการสำรองข้อมูล / เรียกคืน เปลี่ยนสคริปต์ตามนั้น


ในฐานะที่เป็นบันทึกด้านข้าง:

  • เปิดการ เตรียมใช้งานไฟล์ทันทีบนเซิร์ฟเวอร์ใหม่
  • มีไฟล์ข้อมูล tempdb หลายไฟล์ที่มีขนาดเท่ากัน
  • เปิดใช้งานการตั้งค่าสถานะติดตาม 1118
  • กำหนดค่าหน่วยความจำสูงสุดและต่ำสุดอย่างถูกต้อง โดยเฉพาะอย่างยิ่งหน่วยความจำสูงสุดอยู่ห่างจากค่าเริ่มต้น
  • ปรับการตั้งค่า MAXDOP อย่างเหมาะสม อ้างถึง/dba//a/36578/8783สำหรับรายละเอียดเพิ่มเติม
  • ดีที่สุดคือการติดตั้งsp_Blitzจาก Brent Ozar เรียกใช้และแก้ไขปัญหาที่สำคัญและมีลำดับความสำคัญสูงที่รายงาน
  • คุณสามารถใช้SQL Power Docจาก kendalvandyke ได้ - SQL Power Doc ทำงานกับ SQL Server ทุกรุ่นจากSQL Server 2000ถึง 2012 และ Windows Server ทุกรุ่นและระบบปฏิบัติการ Windows สำหรับผู้ใช้ทั่วไปทุกรุ่นตั้งแต่ Windows 2000 และ Windows XP ถึง Windows Server 2012 และ Windows 8. ยังมีประโยชน์สำหรับการอัพเกรดการวางแผน - ดูว่ามีฟีเจอร์ใดที่ซ่อนอยู่ในอินสแตนซ์
  • เปิดใช้งานการปรับให้เหมาะสมสำหรับเวิร์กโหลดเฉพาะกิจและตัวเลือกการบีบอัดข้อมูลสำรองเริ่มต้น

ช่วยตอบคำถามของคุณ ...

ฉันต้องทำอะไรอีกบ้างเพื่อให้การย้ายข้อมูลเสร็จสมบูรณ์

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

ใช้คุณสมบัติใหม่เช่นการตรวจสอบและการกู้คืนแบบเต็ม

CHECKSUMใหม่ใน SQL Server 2005 และใหม่กว่า ฉันกล่าวถึงเป็นส่วนหนึ่งของขั้นตอนการย้ายข้อมูลที่อธิบายไว้ข้างต้น

full recovery modelไม่ใช่เรื่องใหม่ ขึ้นอยู่กับประเภทธุรกิจของคุณและกำหนดจำนวนข้อมูลที่คุณสูญเสียในกรณีที่เกิดภัยพิบัติ

โหมดการกู้คืนเต็มรูปแบบที่มีการสำรองข้อมูลบันทึกธุรกรรมบ่อยครั้งจะช่วยให้คุณสามารถกู้คืนจุดในเวลาและโดยการลดจำนวนข้อมูลที่สูญหาย

ทำฐานข้อมูลนี้ให้ตรงตามที่สร้างใน SQL Server 2008 R2

ทำให้ฐานข้อมูลนี้เข้ากันได้อย่างสมบูรณ์ถูกต้องและเหมาะสมที่สุดสำหรับเครื่องมือฐานข้อมูล SQL 2008 R2 ใหม่

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

ฉันแค่อยากรู้วิธีการแปลงฐานข้อมูล SQL Server 2000 เก่าให้เป็นฐานข้อมูล 2008 R2 ใหม่อย่างถูกต้องและสงบใจว่าทุกอย่างถูกต้องและมีความสุขกับคุณสมบัติใหม่ทั้งหมด

คุณต้องระวังสิ่งนี้เนื่องจากจะต้องมีการเปลี่ยนแปลงรหัสแอปพลิเคชันของคุณเช่นกัน หากรหัสแอปพลิเคชันของคุณเปลี่ยนไปใช้คุณสมบัติใหม่ใน SQL Server 2008 R2 คุณจะไม่พบปัญหาใด ๆ - พิสูจน์ว่าคุณได้ทำการทดสอบการถดถอยอย่างสมบูรณ์ของแอปพลิเคชันของคุณในสภาพแวดล้อม UAT หรือ DEV สิ่งนี้จะให้ความเชื่อมั่นที่ดีที่สุดเมื่อคุณทำการโยกย้ายจริงใน PROD


หมายเหตุ:ข้างต้นเป็นขั้นตอนที่ฉันจำได้และฉันค่อนข้างมั่นใจว่าไม่มีอะไรเหลือ หากฉันเห็นว่าฉันพลาดบางสิ่งไปฉันจะเพิ่มมันหรือผู้เชี่ยวชาญอื่น ๆ ในเว็บไซต์นี้ - อย่าลังเลที่จะเพิ่ม!

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

----------

คำถามเพิ่มเติมไม่กี่:

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

หากทุกอย่างทำงานได้ดีและคุณก็สามารถที่จะแนบฐานข้อมูลแล้วไม่มีคุณเคยชินจะมีปัญหาใด ๆ แยก / แนบการสำรองข้อมูล / การคืนค่าเป็นเพียงวิธีการที่คุณย้ายฐานข้อมูลไปยังที่อื่น เพียงแค่ FYI .. การสำรองข้อมูล / กู้คืนมีความปลอดภัยและน่าเชื่อถือมากกว่าราวกับว่ามีอะไรผิดพลาด (ในกรณีที่เลวร้ายที่สุด) ดังนั้นอย่างน้อยคุณก็มีการสำรองข้อมูลเพื่อกู้คืนและกู้คืนฐานข้อมูลของคุณ

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

อย่างที่ฉันบอกไว้ว่า checksum เป็นของใหม่ในรุ่น 2005 ขึ้นไป เป็นกลไกที่ SQL Server จะตรวจจับความเสียหายของหน้าโดยเฉพาะอย่างยิ่งเนื่องจาก I / O อ้างถึงคำตอบของฉันที่นี่สำหรับรายละเอียดเพิ่มเติม

หากต้องการเปิดใช้งาน CHECKSUM รวมถึงเปลี่ยนรูปแบบการกู้คืนเป็น FULL คุณสามารถทำได้โดยใช้รหัส T-SQL ด้านล่าง:

USE master;
GO
ALTER DATABASE [your_database_name] -- change this !!
SET RECOVERY FULL, PAGE_VERIFY CHECKSUM;
GO

หมายเหตุ: เมื่อคุณตั้งค่าตัวเลือกฐานข้อมูลจะยังคงอยู่เมื่อคุณทำการย้ายข้อมูลจาก 2008R2 ถึง 2012

ฉันกำลังเตรียมโยกย้ายฐานข้อมูลนี้ไปยัง SQL Server 2012 - ก่อนอื่นก็คือจากปี 2000 ถึง 2008 R2 ตอนนี้มันจะมาจาก 2008 R2 ถึง 2012 (เป็นไปไม่ได้ที่จะทำสิ่งนี้โดยตรงเพราะขาดการสนับสนุนฐานข้อมูล 2000 ใน SQL เซิร์ฟเวอร์ 2012) ดังนั้นฉันเข้าใจว่าฉันควรทำตามคำแนะนำของคุณ: สำรองข้อมูลในปี 2008 R2 และคืนค่าในปี 2012 จากนั้นทำตามคำแนะนำที่เหลือของคุณใช่ไหม

ได้โปรด อย่างที่ฉันได้กล่าวไว้การคืนค่าการสำรองข้อมูลเป็นวิธีการที่แนะนำเว้นแต่คุณมีเหตุผลที่ดี

โปรดอธิบายวิธีการสำรอง / คืนค่าให้ฉัน: มันเหมือนกับดัมพ์ของฐานข้อมูลไปยังเคียวรี SQL และจากนั้นกู้คืนโดยการรันเคียวรีแบบกลุ่ม? วิธีนี้จะใช้วิธี "จัดเรียงข้อมูล" ฐานข้อมูลของฉันหรือไม่ หากไม่มีวิธีการจัดเรียงข้อมูล / ปรับแต่งมันด้วยตนเอง?

การสำรองข้อมูล / คืนค่า ... คล้ายกับการถ่ายโอนและโหลดที่ใช้ใน Sybase, Oracle หรือ MySQL มันเป็นเพียง SQL Server เรียกมันว่า .. backup / restore

ต้องอ่าน: ทำความเข้าใจกับการสำรองข้อมูลเซิร์ฟเวอร์ SQLโดย Paul Randall

Simple Syntax (สำหรับไวยากรณ์แบบเต็มอ้างBOL ):

backup database database_name
to disk = 'D:\backup\database_name_full.bak'
with init, stats =10

จากนั้นการคืนค่าสามารถทำได้บนเซิร์ฟเวอร์ปลายทางดังนี้:

- สมมติว่าเค้าโครงดิสก์ของปลายทางไม่ตรงกับของเซิร์ฟเวอร์ต้นทาง

restore database database_name
from disk = 'D:\backup\database_name_full.bak'
move 'logical_data_fileName' to 'physical_path\database_name.mdf'
move 'logical_log_fileName' to 'physical_path\database_name_log.ldf'
with recovery, stats = 10

- สมมติว่าเค้าโครงดิสก์ของปลายทางตรงกับเซิร์ฟเวอร์ต้นทาง

restore database database_name
from disk = 'D:\backup\database_name_full.bak'
with recovery, stats = 10

วิธีนี้จะใช้วิธี "จัดเรียงข้อมูล" ฐานข้อมูลของฉันหรือไม่ หากไม่มีวิธีการจัดเรียงข้อมูล / ปรับแต่งมันด้วยตนเอง?

สำรอง / กู้คืนจะไม่จัดเรียงข้อมูลฐานข้อมูลของคุณ คุณต้องใช้ Alter Index จัดระเบียบใหม่หรือสร้างใหม่ขึ้นอยู่กับระดับการกระจายตัวของคุณ

เนื่องจากคุณยังใหม่กับ SQL Server ฉันขอแนะนำให้คุณใช้ Ola Hallengren:

เนื่องจากเราใช้ SQL Server 2000 Express เป็นเวลาหลายปี (ไม่มีส่วนต่อประสานการจัดการ) เราจึงทำการสำรองข้อมูลโดยการหยุดเอ็นจิ้นและ RAR ในไดเรกทอรี DATA ตอนนี้เราอยู่บน SQL Server 2008 แล้วนี่ยังดีกว่าการใช้ฟังก์ชั่นสำรองข้อมูลใน Management Studio หรือไม่?

การหยุดเครื่องยนต์เป็นสิ่งที่แย่กว่านั้นคือคุณสามารถสำรองข้อมูลได้ !!

อ่านลิงค์ของ Paul เกี่ยวกับข้อมูลสำรองที่ฉันพูดถึงและใช้สคริปต์ของ Ola Microsoft มีบทความ KB พร้อมสคริปต์เพื่อทำการสำรองข้อมูลอัตโนมัติ - วิธีกำหนดเวลาและสำรองข้อมูลอัตโนมัติของฐานข้อมูล SQL Server ใน SQL Server Express

โหมดการกู้คืนเต็มรูปแบบที่มีการสำรองข้อมูลบันทึกธุรกรรมบ่อยครั้ง - ไฟล์บันทึกธุรกรรมอยู่ที่ไหน - เป็นไฟล์ LDF หรือไม่ ฉันจะสำรองข้อมูลได้อย่างถูกต้องได้อย่างไร?

ทุกฐานข้อมูล SQL Server มีบันทึกที่บันทึกธุรกรรมทั้งหมดและการปรับเปลี่ยนฐานข้อมูลที่ทำโดยแต่ละธุรกรรม บันทึกการทำธุรกรรมเป็นองค์ประกอบที่สำคัญของฐานข้อมูลใด ๆ

ส่วนขยายแบบแผนการตั้งชื่อตามปกติสำหรับบันทึกธุรกรรมคือ '.LDF' แต่สามารถเป็นใดก็ได้

ฉันจะไม่เขียนเพิ่มเติมเกี่ยวกับเรื่องนี้เพราะนี่จะทำให้คำตอบมีมากมาย อ้างอิงการ จัดการบันทึกธุรกรรมและคำตอบของฉันที่นี่มีลิงค์ที่ยอดเยี่ยมเช่นกัน


แก้ไข: 8/24/2016 .. สิ่งนี้จะช่วยผู้อ่านในอนาคต:

หากคุณกำลังโยกย้ายอินสแตนซ์ทั้งหมดของคุณจากรุ่นหนึ่งไปเป็นอีกรุ่นหนึ่งฉันขอแนะนำให้ใช้โซลูชันที่ใช้ PowerShellStart-SqlMigration

ป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.