คำถามติดแท็ก migration

กระบวนการย้ายฐานข้อมูลหรือข้อมูลจากที่หนึ่งไปอีกที่หนึ่ง

13
ฉันจะย้ายฐานข้อมูลจากเซิร์ฟเวอร์หนึ่งไปยังเซิร์ฟเวอร์อื่นได้อย่างไร
ฉันจะย้ายตาราง MySQL จากเซิร์ฟเวอร์จริงหนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่งได้อย่างไร เช่นสถานการณ์ที่แน่นอน: ฉันมีเซิร์ฟเวอร์ MySQL ที่ใช้ตาราง innodb และมีขนาดประมาณ 20GB ฉันต้องการย้ายไปยังเซิร์ฟเวอร์ใหม่วิธีที่มีประสิทธิภาพที่สุดในการทำเช่นนี้คืออะไร

5
มีการอัปเกรดแบบแทนที่ SQL Server แบบไม่ดีเหมือนที่เคยเป็นมาหรือไม่?
ฉันได้ทำงานกับเซิร์ฟเวอร์ SQL ในการเปิดและปิดตั้งแต่ SQL Server 6.5 คำแนะนำเก่าที่ยังคงดังในหัวของฉันก็ไม่เคยที่จะทำการอัพเกรดในสถานที่ ฉันกำลังอัปเกรดระบบ 2008 R2 DEV และ TEST เป็น SQL Server 2012 และต้องใช้ฮาร์ดแวร์เดียวกัน ความคิดที่ไม่จำเป็นต้องกู้คืนการกำหนดค่าบริการรายงานของฉันนั้นน่าสนใจมากและฉันก็ขัดกับเวลาที่ชาญฉลาดจริงๆ ไม่มีบริการวิเคราะห์ที่เกี่ยวข้องหรือสิ่งใดที่ผิดปกติหรือไม่เป็นมาตรฐาน - ติดตั้งเฉพาะเอ็นจิ้นฐานข้อมูลและบริการรายงานเท่านั้น มีใครประสบปัญหาร้ายแรงกับการอัปเกรดแบบแทนที่หรือไม่ หรือฉันควรประเมินตำแหน่งของฉันเกี่ยวกับการอัปเกรดแบบแทนที่?

1
แนวทางปฏิบัติที่ดีที่สุดสำหรับการเปลี่ยนสคีมาและการย้ายข้อมูลไปยังฐานข้อมูลสดโดยไม่ต้องหยุดทำงาน
คุณทำการเปลี่ยนแปลง schema กับฐานข้อมูลจริงโดยไม่ต้องหยุดทำงานได้อย่างไร ตัวอย่างเช่นสมมติว่าฉันมีฐานข้อมูล PostgreSQL พร้อมตารางรวมถึงข้อมูลผู้ใช้ที่หลากหลายเช่นที่อยู่อีเมล ฯลฯ ทั้งหมดที่เกี่ยวข้องกับผู้ใช้เฉพาะ หากฉันต้องการย้ายที่อยู่อีเมลไปยังตารางเฉพาะใหม่ฉันต้องเปลี่ยนสคีมาแล้วย้ายข้อมูลอีเมลไปยังตารางใหม่ วิธีนี้สามารถทำได้โดยไม่หยุดเขียนไปยังตารางต้นฉบับ? แน่นอนว่าในขณะที่ข้อมูลถูกเขียนทับจากตารางเก่าไปยังตารางใหม่ข้อมูลใหม่จะถูกเขียนลงในตารางเดิมต่อไปและจะพลาดใช่ไหม ฉันเดาว่าปัญหานี้เกิดขึ้นค่อนข้างบ่อย แต่ฉันไม่สามารถหาวิธีแก้ปัญหามาตรฐานใด ๆ สำหรับจัดการกับมัน บทความนี้เกี่ยวกับปัญหา แต่ฉันไม่เข้าใจขั้นตอนที่ 3 เขาบอกว่าเขียนไปยังทั้งสองตารางจากนั้นย้ายข้อมูลเก่าจากตารางแรกไปยังตารางใหม่ คุณแน่ใจได้อย่างไรว่าคุณเพียงแค่ย้ายข้อมูลเก่าเท่านั้น (ฉันใช้PostgreSQL กับ Heroku )

4
วิธีการย้ายฐานข้อมูลจาก SQL Server 2012 ไปยัง SQL Server 2005
ตัวเลือกของฉันคืออะไรถ้าฉันต้องการย้ายฐานข้อมูลจาก SQL Server 2012 (32 บิต) ไปยัง SQL Server 2005 (64 บิต) ฉันรู้ว่าฉันไม่สามารถ: คืนค่าการสำรองข้อมูลของฐานข้อมูลบน SQL Server 2005 แยกออกและแนบ ฉันรู้ว่าฉันสามารถ: ใช้ตัวช่วยสร้างการนำเข้าข้อมูลและฉันลองใช้กับฐานข้อมูลเดียว แต่ย้ายข้อมูลเท่านั้นและแม้จะเป็นปัญหาเพราะฉันต้องทำงานมากในการสร้างตาราง temp เพื่อรักษาคอลัมน์ข้อมูลประจำตัวสร้าง FKs ใหม่ทั้งหมดดัชนีเป็นต้น มีตัวเลือกง่ายขึ้นไหม

5
การเก็บถาวรข้อมูลเก่า
ขณะนี้เรากำลังประสบปัญหาด้านประสิทธิภาพเนื่องจากฐานข้อมูลของเรามีขนาดใหญ่เกินไป มีข้อมูลที่จัดเก็บจาก 10 ปีที่ผ่านมาและฉันไม่เห็นเหตุผลที่ข้อมูลเก่ากว่า 2 ปีจะต้องถูกเก็บไว้ในตารางเดียวกับข้อมูลใหม่ ตอนนี้เนื่องจากฉันไม่มีประสบการณ์อย่างลึกซึ้งในการจัดการฐานข้อมูลฉันกำลังมองหาวิธีที่ดีที่สุดในการเก็บถาวรข้อมูลเก่า ข้อมูล มีระเบียนประมาณ 310,000 รายการในฐานข้อมูลทั้งหมด ฐานข้อมูลต้องการ 250 GB บนฮาร์ดดิสก์ รุ่นของเซิร์ฟเวอร์คือ SQL Server 2008 ที่มีระดับความเข้ากันได้ของ SQL Server 2005 (90) แต่เรากำลังวางแผนที่จะอัพเกรดเป็น SQL Server 2012 ในไม่ช้า ฉันคิดถึงความเป็นไปได้สองอย่าง: ฐานข้อมูลใหม่ สร้างฐานข้อมูลที่คล้ายกับฐานข้อมูลบนเซิร์ฟเวอร์ที่ใช้งานจริงและแทรกข้อมูลเก่าทั้งหมดลงในฐานข้อมูลใหม่ ข้อเสีย: เนื่องจากเซิร์ฟเวอร์ที่เชื่อมโยงไม่ได้รับอนุญาตในสภาพแวดล้อมของเราจึงเป็นการยากที่จะเข้าร่วมข้อมูลเก่าหากจำเป็น ประวัติความเป็นมา สร้าง schema fe [hist] ใหม่ด้วยตารางเดียวกันกับในฐานข้อมูลการผลิต แทรกข้อมูลเก่าทั้งหมดในตารางใหม่เหล่านี้ในสคีมาใหม่ ข้อได้เปรียบ: การเข้าร่วมง่ายหากต้องการข้อมูลเก่าในอนาคต คุณเป็นหนึ่งในโซลูชันที่เหนือกว่าอีกหรือไม่ ทำไม? มีความเป็นไปได้ที่ดีกว่านี้ไหม? มีเครื่องมือที่เป็นไปได้ที่จะทำภารกิจนี้ได้อย่างง่ายดายหรือไม่? ความคิดอื่น ๆ ? …

1
อัปเกรดฐานข้อมูล SQL Server 2000 เป็น 2008 R2 และเปิดใช้งานคุณลักษณะใหม่
ฉันเพิ่งอัพเกรดฐานข้อมูล SQL Server 2000 เป็น 2008 R2 สิ่งที่ฉันทำคือ: ปิดบริการ SQL Server 2000 (ด่วน) บนเครื่องเก่า ย้าย datafiles ( mydatabase.mdfและmydatabase.ldf ) ไปยังเครื่องใหม่ เรียกใช้ SQL Server Management Studio 2008 เชื่อมต่อกับโปรแกรมฐานข้อมูลท้องถิ่น แนบดาต้าไฟล์เข้ากับฐานข้อมูล เปลี่ยนระดับความเข้ากันได้ของฐานข้อมูลเป็น SQL 2008 (100) คำถาม: ฉันต้องทำอะไรอีกบ้างเพื่อให้การย้ายข้อมูลเสร็จสมบูรณ์ ฉันต้องการ: ใช้คุณสมบัติใหม่เช่นการตรวจสอบและการกู้คืนเต็มรูปแบบ ทำฐานข้อมูลนี้ให้ตรงตามที่สร้างใน SQL 2008 R2 ทำให้ฐานข้อมูลนี้สามารถใช้งานร่วมกันได้อย่างถูกต้องและสมบูรณ์แบบสำหรับเครื่องมือฐานข้อมูล SQL 2008 R2 ใหม่ กล่าวอีกนัยหนึ่ง:ฉันแค่ต้องการทราบวิธีการแปลงฐานข้อมูล SQL 2000 เก่าอย่างถูกต้องและสมบูรณ์ให้เป็นฐานข้อมูล 2008 …

4
เวิร์กโฟลว์ของคุณในการวางแผนการย้ายข้อมูลเป็นอย่างไร
หลายครั้งที่ฉันถูกนำเข้ามาในตอนท้ายของความพยายามในการพัฒนาซอฟต์แวร์และได้รับการบอกบางอย่างเช่น"โอเคเรามีรหัสใหม่ทั้งหมดและต้องมีตารางเพื่อเปลี่ยนและย้ายข้อมูล" ดูเหมือนว่าทุกครั้งที่มันเป็นสถานการณ์แบบ one-off, shoot-from-the-hip ฉันรู้สึกว่านี่เป็นทักษะที่อ่อนแอที่สุดของฉันที่ตั้งเป็น DBA ฉันต้องการที่จะได้รับในบางรูปแบบสำหรับการเข้าใกล้การจัดการและการทดสอบการโยกย้ายข้อมูล โปรดยึดถือแนวทางปฏิบัติที่ดีที่สุดและ / หรือสถานที่ที่ฉันจะได้รับสื่อการเรียนรู้เพื่อช่วยให้ฉันดีขึ้นในด้านนี้

2
วิธีที่ดีที่สุดในการโยกย้ายฐานข้อมูล SQL Server ขนาดใหญ่ที่มีการหยุดทำงานต่ำผ่านเครือข่าย
นิยามปัญหา เซิร์ฟเวอร์ฐานข้อมูลของเราต้องถูกถ่ายโอนไปยังดาต้าเซ็นเตอร์อื่น มันรันบน Microsoft SQL Server 2012 Enterprise (64 บิต) และมีฐานข้อมูลสองแห่งประมาณ 2TB และ 1TB การหยุดทำงานเพียงเล็กน้อยหรือไม่มีเลยก็เหมาะ จำนวนงาน ฐานข้อมูลเหล่านั้นใช้สำหรับเว็บไซต์. NET และมีการอัพเดทอยู่ตลอดเวลา แม้ว่าจะไม่สามารถใช้ได้ในช่วงสุดสัปดาห์ก็จะเป็นที่ยอมรับ ฐานข้อมูลที่ใช้อยู่ในปัจจุบันจะยังคงเป็นฐานข้อมูลเดียวที่ใช้งานอยู่จนกว่าสวิตช์จะเปลี่ยนเป็นสวิตช์ใหม่ สวิตช์นั้นจะสามารถทำได้โดยเพียงแค่เปลี่ยนรายการ DNS ให้ชี้ไปที่เซิร์ฟเวอร์ฐานข้อมูลใหม่ในขณะที่ตรวจสอบให้แน่ใจว่าไม่ได้มีการปรับปรุงฐานข้อมูล นอกจากนี้เวลาที่ใช้ในการดำเนินการนี้ไม่สำคัญตราบใดที่สวิตช์จากเซิร์ฟเวอร์หนึ่งไปยังเซิร์ฟเวอร์อื่น (หยุดทำงาน) ยังคงอยู่ในระดับต่ำ แนวทางการพิจารณา สำรองและเรียกคืน สิ่งนี้ทำมาแล้วในอดีต แต่เกี่ยวข้องกับการหยุดทำงานที่สูงแม้ว่ามันจะทำผ่านเครือข่ายภายใน แต่ก็มีประสิทธิภาพมากกว่าผ่านทางอินเทอร์เน็ต บันทึกการจัดส่ง เท่าที่ฉันเข้าใจวิธีการนี้จะลดเวลาหยุดทำงานโดยกำหนดค่า master / slave และถ่ายโอนสำเนาของ master DB ที่แน่นอนไปยังทาสที่ถูกอ่านเท่านั้น ดังที่ได้กล่าวมาแล้วการเข้าถึงทาสนั้นไม่จำเป็นและเราก็ต้องการวิธีที่จะมีการจำลองฐานข้อมูลหลักโดยไม่มีข้อมูลเสียหาย ดูเหมือนว่าจะค่อนข้างมีประสิทธิภาพในแง่ของการใช้ทรัพยากรและจะไม่ส่งผลกระทบต่อประสิทธิภาพของต้นแบบมากนัก ฉันอาจผิดเกี่ยวกับวิธีการนี้ดังนั้นโปรดแก้ไขฉัน การทำมิเรอร์ฐานข้อมูล ฉันไม่ได้ตระหนักถึงวิธีการดังกล่าว แต่ดูเหมือนว่าเป็นตัวเลือกที่ถูกต้อง ไม่จำเป็นต้องมีการซิงค์แบบเรียลไทม์และประสิทธิภาพของต้นแบบค่อนข้างสำคัญดังนั้นอะซิงโครนัสจะเป็นหนทางไปถ้าเลือกวิธีนี้ ตัวเลือกอื่น? เซิร์ฟเวอร์นั้นทำงานโดยตรงบนฮาร์ดแวร์โลหะเปลือยดังนั้นโซลูชันระดับล่างจึงไม่ใช่ตัวเลือก …

7
จำเป็นต้องโยกย้าย SQL Server ไปยัง MySQL
ฉันมีฐานข้อมูลบน SQL Server 2008 บนเซิร์ฟเวอร์ Windows และฉันต้องการย้ายข้อมูลทั้งหมดไปยังฐานข้อมูล MySQL บนเซิร์ฟเวอร์ Ubuntu ฉันได้ลองใช้ตัวช่วยสร้างการนำเข้าและส่งออกเซิร์ฟเวอร์ SQL ด้วยไดรเวอร์ MySQL ODBC และเข้าถึงฐานข้อมูลทั้งสองได้อย่างถูกต้อง แต่ไฟล์ xml ที่มีข้อกำหนดสำหรับการแปลงประเภทไม่มีอยู่จริงและข้อกำหนด จำกัด เกินไปสำหรับฉันในการสร้างอย่างถูกต้อง ไม่มีใครรู้วิธีสร้างไฟล์แปลงประเภทหรือสถานที่ที่จะได้รับเครื่องมือที่ดีกว่าสำหรับการถ่ายโอนข้อมูลนี้หรือไม่?

2
มีบทลงโทษสำหรับการใช้ BINARY (16) แทนที่จะเป็น UNIQUEIDENTIFIER หรือไม่?
ฉันเพิ่งได้รับมรดกฐานข้อมูล SQL Server ที่ใช้BINARY(16)แทนUNIQUEIDENTIFIERการจัดเก็บ Guids มันทำสิ่งนี้สำหรับทุกสิ่งรวมถึงกุญแจหลัก ฉันควรจะกังวลหรือไม่

3
ฉันควรโอนย้ายข้อมูลโดยใช้ detach / copy / attach หรือผ่าน backup-restore-replay หรือไม่
ฉันกำลังจะเริ่มดำเนินการเกี่ยวกับการย้ายไฟล์ฐานข้อมูลไปยัง SAN ใหม่ (จาก SAN เก่า) อับดุลฉันมีสองตัวเลือกในการใช้งานนี้ (1) แนะนำให้ฉันดูระดับความพยายามในการกู้คืนการสำรองข้อมูลเต็มรูปแบบไปยังฐานข้อมูลใหม่บนเซิร์ฟเวอร์ อย่างไรก็ตาม (2) แผนดั้งเดิมของฉันคือการคัดลอกไฟล์จาก SAN เก่าไปยัง SAN ใหม่โดยการแยกออกแล้วติดตั้งฐานข้อมูลอีกครั้ง ไส้ของฉันบอกฉันว่าฉันอยากถอดคัดลอกและติดเนื่องจากดูเหมือนว่าจะไม่ปลอดภัยมากกว่า แต่นั่นอาจเป็นความไร้เดียงสาของฉัน ฉันไม่ต้องการที่จะพลาดการทำธุรกรรมหรือ "ทำลายบางอย่าง" ในกระบวนการเปลี่ยนชื่อฐานข้อมูล ฉันเดาคำถามของฉันหรือไม่ว่าฉันมีเหตุผลในความสงสัยของตัวเลือก BACKUP-RESTORE-Replay และข้อดีหรือความเสี่ยงอื่นของตัวเลือกนั้นคืออะไร

4
วิธีแก้ข้อผิดพลาดการคัดลอกลำดับไบต์ UTF8 ที่ไม่ถูกต้องในการกู้คืนเมื่อฐานข้อมูลต้นทางถูกเข้ารหัสใน UTF8
ฉันได้รับมอบหมายให้ย้ายฐานข้อมูล PostgreSQL 8.2.x ไปยังเซิร์ฟเวอร์อื่น เมื่อต้องการทำสิ่งนี้ฉันใช้ pgAdmin 1.12.2 (บน Ubuntu 11.04 โดยวิธี) และใช้การสำรองข้อมูลและคืนค่าโดยใช้รูปแบบที่กำหนดเอง / บีบอัด (.backup) และการเข้ารหัส UTF8 ฐานข้อมูลดั้งเดิมอยู่ใน UTF8 ดังนี้: -- Database: favela -- DROP DATABASE favela; CREATE DATABASE favela WITH OWNER = favela ENCODING = 'UTF8' TABLESPACE = favela CONNECTION LIMIT = -1; ฉันกำลังสร้างฐานข้อมูลนี้อย่างนี้บนเซิร์ฟเวอร์ปลายทาง แต่เมื่อฉันกู้คืนฐานข้อมูลจากไฟล์. backup โดยใช้ตัวเลือก Restore มันทำให้ฉันมีข้อผิดพลาดบางอย่าง: …

7
การย้ายตารางไปยังฐานข้อมูล SQL2008 อื่น (รวมถึงดัชนีทริกเกอร์ ฯลฯ )
ฉันต้องการย้ายทั้งตาราง (100+) ของตารางขนาดใหญ่ (ล้านแถว) จากฐานข้อมูล SQL2008 หนึ่งไปยังอีก เดิมทีฉันเพิ่งใช้ตัวช่วยสร้างการนำเข้า / ส่งออก แต่ตารางปลายทางทั้งหมดไม่มีคีย์หลักและต่างประเทศดัชนีข้อ จำกัด ทริกเกอร์ ฯลฯ (คอลัมน์รหัสประจำตัวยังถูกแปลงเป็น INT ธรรมดาด้วย แต่ฉันคิดว่าฉันพลาดช่องทำเครื่องหมายใน วิซาร์ด.) วิธีที่ถูกต้องในการทำเช่นนี้คืออะไร? หากนี่เป็นเพียงสองสามตารางฉันจะกลับไปที่แหล่งที่มาออกคำจำกัดความของตาราง (ที่มีดัชนีทั้งหมด ฯลฯ ) จากนั้นเรียกใช้ส่วนการสร้างดัชนีของสคริปต์บนปลายทาง แต่ด้วยตารางจำนวนมากดูเหมือนว่าจะเป็นไปไม่ได้ หากมีข้อมูลไม่มากฉันสามารถใช้วิซาร์ด "สร้างสคริปต์ ... " เพื่อสคริปท์แหล่งที่มารวมถึงข้อมูล แต่สคริปต์แถวขนาด 72 ม. ดูเหมือนจะไม่เป็นความคิดที่ดีเลย!

2
สำรอง / กู้คืนผู้ใช้ / รหัสผ่าน / สิทธิ์
ฉันย้ายจากเซิร์ฟเวอร์หนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่งและฉันต้องการสำรองฐานข้อมูลทั้งหมด + ผู้ใช้ / สิทธิ์ / รหัสผ่านจากเซิร์ฟเวอร์ MySQL ของฉัน ฉันพบว่าการสำรองฐานข้อมูลโดยใช้mysqldumpแต่ฉันไม่สามารถหาวิธีการสำรองข้อมูลผู้ใช้ทั้งหมดและสิทธิ์ที่กำหนด มีวิธีในการบรรลุผลนี้หรือฉันต้องตั้งค่านี้ใหม่บนเซิร์ฟเวอร์ใหม่หรือไม่?

1
วิธีโยกย้ายตารางหยดขนาดใหญ่จาก mysql ไปยัง postgresql
ตอนนี้ฉันกำลังย้ายฐานข้อมูล MySQL ไปยัง PostgreSQL เกือบทุกอย่างเป็นไปด้วยดี (ดีหลังจาก googling มากมายสำหรับ mysqldump params และอื่น ๆ ) ยกเว้นตารางเดียวที่ฉันมี - จริง ๆ แล้วเป็นตารางที่สำคัญที่สุดในแอปของฉัน โครงสร้างตารางง่ายมาก: mysql> show create table samples; .. skipped ... CREATE TABLE `samples` ( `File_ID` int(11) NOT NULL, `File` longblob, PRIMARY KEY (`File_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=binary แต่มันมีขนาดใหญ่มาก (> 20 Gb) ฉันพยายามใช้ --hex-blob …

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