ฉันจะคัดลอกฐานข้อมูล SQL Azure ของฉันไปยังอินสแตนซ์ของ SQL Server ภายในได้อย่างไร


12

ฉันมีฐานข้อมูล OLTP ที่โฮสต์บนอินสแตนซ์ SQL Azure ฉันต้องการดึงสำเนาของฐานข้อมูลลงมาจากคลาวด์เพื่อให้ฉันสามารถเรียกใช้การดึงข้อมูลจำนวนมากและการสืบค้นสไตล์ OLAP โดยไม่ส่งผลกระทบต่อฐานข้อมูลต้นทาง

ฉันจะดึงสำเนาของฐานข้อมูลลงไปที่อินสแตนซ์ของ SQL Server ภายในได้อย่างไร

คำตอบ:


9

ใช้ตัวช่วยการโยกย้าย SQL Azure :

วิซาร์ดการโยกย้าย SQL Azure (SQLAzureMW) ให้ตัวเลือกแก่คุณในการวิเคราะห์สร้างสคริปต์และย้ายข้อมูล (ผ่าน BCP) จาก:

  1. SQL Server เป็น SQL Azure
  2. SQL Azure ไปยัง SQL Server
  3. SQL Azure เป็น SQL Azure

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

@ red2nb - ฉันไม่รู้อะไรเกี่ยวกับ LocalDB แต่อาจเป็นเพราะข้อผิดพลาดแสดงว่ามันไม่ใช่ปัญหาของ LocalDB แต่ปัญหาเกี่ยวกับฐานข้อมูลปลายทางที่ถูกเข้ารหัส
Nick Chammas

4

เขียนbcpสคริปต์ที่ส่งออกเนื้อหาของตารางทั้งหมดของคุณไปยังไฟล์ในเครื่อง

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

SELECT 
      'bcp '
    + SCHEMA_NAME(schema_id) + '.' + name
    + ' out '
    + ' D:\local_backup_directory\' + SCHEMA_NAME(schema_id) + '.' + name + '.txt'
    + ' -c '
    + ' -S servername.database.windows.net '
    + ' -d database_name '
    + ' -U username '
    + ' -P password'
FROM sys.tables;

ดำเนินการค้นหานี้โดยใช้bcpกับฐานข้อมูล SQL Azure ของคุณจากเครื่องที่คุณต้องการคัดลอกและบันทึกผลลัพธ์ไปยังcmdไฟล์ ดำเนินการcmdไฟล์นั้นเพื่อส่งออกแต่ละตารางไปยังไฟล์ข้อความ

C:\> REM ask bcp to save the results of the above query to a file
C:\> bcp "SELECT      'bcp '    + SCHEMA_NAME(schema_id) + '.' + name   + ' out '   + ' D:\backup_directory\' + SCHEMA_NAME(schema_id) + '.' + name + '.txt'    + ' -c '    + ' -S servername.database.windows.net '    + ' -d database_name '  + ' -U username '   + ' -P password' FROM sys.tables;" queryout output_path\bcp_script.cmd -c -S servername.database.windows.net -d database_name -U username -P password

C:\> REM execute the bcp commands saved to file
C:\> output_path\bcp_script.cmd

นี่เป็นวิธีที่รวดเร็วและสกปรกและไม่เหมาะสำหรับฐานข้อมูลขนาดใหญ่หรือ schemata ที่ซับซ้อน


4

ประตูสีแดงมีชื่อ aptly SQL Azure เครื่องมือการสำรองข้อมูล ได้ฟรี แต่ Red Gate ได้หยุดให้การสนับสนุน


2

ผมสังเกตเห็นมีเครื่องมือใหม่ในรายการนี้มันIdera ของ Azure SQL สำรองฐานข้อมูล ได้ฟรีและพวกเขามักจะสร้างเครื่องมือที่ดีดังนั้นจึงควรลองดู

อีกวิธีหนึ่งในการส่งออกฐานข้อมูล (แต่คราวนี้มีเพียง schema ไม่มีข้อมูล) ไปยัง Azure โดยใช้แพ็คเกจ DAC (ไฟล์. dacpac ที่แยกจาก Management Studio หรือ Visual Studio 2010) สิ่งนี้ใช้ได้เฉพาะจาก SQL 2008 R2 SP1 +

คุณสามารถอ่านรายละเอียดเกี่ยวกับแอปพลิเคชันระดับข้อมูลได้ที่นี่:


0

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

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