การย้ายข้อมูลจาก SQL Server 2005 ถึง 2016


9

ฉันยังใหม่กับการจัดการ SQL Server แต่ฉันพอใจกับภาษา SQL และสร้างแพ็คเกจ SSIS

ฉันต้องการย้ายข้อมูลจาก SQL Server 2005 ถึง 2016

คำถามของฉันคือฉันต้องกังวลเกี่ยวกับฐานข้อมูลระบบและวัตถุอื่น ๆ เช่นดัชนีขั้นตอนการจัดเก็บมุมมองความปลอดภัยและการอนุญาต เข้าสู่ระบบหรือฉันสามารถย้ายข้อมูล

ซึ่งจะเป็นขั้นตอนที่แนะนำในกรณีนี้


คุณพยายามอัพเกรดอินสแตนซ์การผลิตหรือไม่? เช่นคุณต้องการเข้าสู่ระบบเดียวกันดัชนี procs ที่เก็บไว้ ฯลฯ ? ตามที่เป็นอยู่คำถามของคุณค่อนข้างกว้างมาก โปรดทัวร์และอ่านศูนย์ช่วยเหลือเกี่ยวกับวิธีถามคำถามที่ดี ขอบคุณ!
Max Vernon

คำตอบ:


7

แม็กซ์ให้คำตอบที่ดีซึ่งฉันจะโหวตเมื่อฉันพิมพ์มุมมองสำรองนี้เสร็จแล้ว

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

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

คุณยังถามเกี่ยวกับดัชนีขั้นตอนการจัดเก็บมุมมอง รายการเหล่านั้นในระดับฐานข้อมูลควรอยู่ภายในฐานข้อมูลผู้ใช้ ดังนั้นเมื่อคุณกู้คืนฐานข้อมูล X ไปยังเซิร์ฟเวอร์ใหม่วัตถุฐานข้อมูลทั้งหมด (ตารางผู้ใช้มุมมองโพรบฟังก์ชัน ฯลฯ ) ก็จะอยู่ที่นั่นเช่นกัน

สิ่งที่มีอยู่ในฐานข้อมูลระบบคืองานการเข้าสู่ระบบการแจ้งเตือนเซิร์ฟเวอร์ที่เชื่อมโยงคีย์การเข้ารหัส ฯลฯ รายการระดับอินสแตนซ์

ฉันชอบที่จะตรวจสอบเหล่านั้นและโยกย้ายไปที่สิ่งที่ฉันต้องการโดยใช้สคริปต์ต่างๆ - เมื่อเร็ว ๆ นี้นั่นคือDBATools.Ioสคริปต์ PowerShell ฉันชอบใช้สคริปต์เพื่อคัดลอกการเข้าสู่ระบบ sqlโดยเฉพาะเพราะมันจัดการผู้ใช้ที่ได้รับการรับรองความถูกต้องของ SQL ที่เก็บรหัสผ่านและตัวระบุความปลอดภัยไว้เหมือนกันดังนั้นผู้ใช้ฐานข้อมูลจากการเข้าสู่ระบบเหล่านั้นจะทำงาน พวกเขายังมีคำสั่งการย้าย SQL Serverทั้งหมดซึ่งรันคำสั่งย่อยเพื่อคัดลอกรายการที่ฉันมักจะคัดลอก

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


ขอบคุณสำหรับคำตอบ. ฉันไม่ต้องการอัปเกรดจากปี 2005 เป็นปี 2016 ฉันต้องการย้ายฐานข้อมูลจากอินสแตนซ์ที่ไม่ได้ใช้บนเซิร์ฟเวอร์ sql 2005 เป็นอินสแตนซ์ที่มีอยู่ในปี 2559 การโยกย้ายนี้ยังไม่ได้รับการอนุมัติ แต่ฉันต้องการเตรียมพร้อมเมื่อ มันทำ โดยทั่วไปฉันได้รับโครงการนี้เพราะฉันเป็นคนเดียวที่มีประสบการณ์ SQL ใด ๆ เท่าที่สอบถามและสร้างแพ็คเกจ SSIS ฉันยังกังวลกับปัญหาความเข้ากันได้ ขอบคุณอีกครั้ง
Robert

แน่นอน - แต่เมื่อย้ายจากปี 2005 ถึง 2016 - คุณกำลังอัปเกรด คุณกำลังอัปเกรดและย้ายข้อมูล เนื่องจากคุณกำลังนำฐานข้อมูลจาก SQL เวอร์ชันหนึ่งไปยังอีกเวอร์ชันหนึ่งซึ่งหมายถึงการอัพเกรดอย่างแน่นอน คุณควรรันที่ปรึกษาการอัพเกรดบนฐานข้อมูลของคุณ
Mike Walsh

จะเกิดอะไรขึ้นถ้า SQL Server 2005 โฮสต์โดย Windows Server 2003 R2 x86 และ SQL Server 2016 นั้นใช้ระบบปฏิบัติการรุ่นใหม่
Robert

@MikeWalsh ฉันเห็นด้วยเกือบทุกสิ่งที่คุณอธิบายไว้ในการตอบสนองของคุณ ฉันก็ทำตามเกือบทั้งหมดของมันเมื่อทำ SQL อัพเกรด / โยกย้าย
น้ำ

4

คุณต้องการพิจารณาย้ายฐานข้อมูลระบบ (master, msdb และบางทีแบบจำลอง) หากคุณต้องการเข้าถึง metadata ที่เก็บไว้ในฐานข้อมูลเหล่านั้น

ปริญญาโทเก็บรายการต่าง ๆ เช่นการเข้าสู่ระบบใบรับรองความปลอดภัย ฯลฯ

msdb มีรายละเอียดเกี่ยวกับการสำรองข้อมูลและเก็บการกำหนดค่างานตัวแทนของเซิร์ฟเวอร์ SQL ในรายละเอียดอื่น ๆ

คุณหรือทีมของคุณอาจกำหนดโมเดลเองเพื่ออนุญาตให้ฐานข้อมูลเปล่าที่สร้างขึ้นใหม่มีชุดของวัตถุที่กำหนดไว้ล่วงหน้าที่คุณใช้ในทุกฐานข้อมูล

การย้ายฐานข้อมูลระบบสามารถทำได้ค่อนข้างง่าย คำแนะนำโดยละเอียดมีอยู่จาก MSDN ที่สำรองและเรียกคืนระบบฐานข้อมูล (SQL Server)

คุณสามารถดำเนินBACKUP DATABASEการกับฐานข้อมูลผู้ใช้บนอินสแตนซ์ 2005 และจากนั้นRESTORE DATABASEในอินสแตนซ์ 2016 เพื่อนำฐานข้อมูลทั้งหมดรวมถึงข้อมูลดัชนีและวัตถุอื่น ๆ ทั้งหมดขึ้นอยู่กับความต้องการของคุณ

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

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


2

เป็นปี 2555 หรือ 2559 ใช่ไหม มันสร้างความแตกต่างในการที่ IIRC 2012 เป็นเส้นทางการย้ายถิ่นที่ผ่านการทดสอบในขณะที่ 2016 ไม่ใช่ ดังนั้นปัญหาที่ทราบจะได้รับการบันทึกไว้และ / หรือจะถูกจับโดย Upgrade Advisor สำหรับปี 2012 เส้นทางที่ไม่ผ่านการทดสอบอาจยังคงทำงานได้โดยไม่มีปัญหาใด ๆ ที่กล่าวว่าขอแนะนำให้คุณไปที่ 2016 ฉันสงสัยว่าความพยายามจะเกือบจะเหมือนกัน

ดูคุณกำลังอัปเกรดจาก SQL Server 2005 หรือไม่ ในเอกสารสำหรับตัวเลือกการอัปเกรด 2005 และลิงก์ไปยังกระบวนการอัปเกรดที่มีรายละเอียดมาก กระบวนการอัปเกรดเขียนขึ้นในปี 2014 แต่ยังคงสามารถใช้งานได้ในปี 2016


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