ฉันจะคัดลอกฐานข้อมูล SQL Azure ไปยังเซิร์ฟเวอร์การพัฒนาในพื้นที่ได้อย่างไร


164

ไม่มีใครรู้ว่าฉันสามารถคัดลอกฐานข้อมูล SQL Azure ไปยังเครื่องพัฒนาของฉันได้อย่างไร ฉันต้องการหยุดจ่ายเพื่อให้มีฐานข้อมูลการพัฒนาในระบบคลาวด์ แต่เป็นวิธีที่ดีที่สุดในการรับข้อมูลการผลิต ฉันคัดลอกฐานข้อมูลการผลิตของฉันไปยังฐานข้อมูลการพัฒนาใหม่ แต่ฉันต้องการมีฐานข้อมูลเดียวกันนั้น

ข้อเสนอแนะใด ๆ


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

4
สิ่งนี้ได้ง่ายขึ้นอย่างมาก ดูคำตอบของ Atom ด้านล่าง (ก.พ. 2018) อธิบายวิธีใช้งาน => ปรับใช้ฐานข้อมูล ...ใน SSMS
Jon Crowell

คำตอบ:


129

มีหลายวิธีในการทำสิ่งนี้:

  1. ใช้ SSIS (SQL Server รวมบริการ) มันนำเข้าเฉพาะdataในตารางของคุณ คุณสมบัติของคอลัมน์, ข้อ จำกัด , คีย์, ดัชนี, ขั้นตอนการจัดเก็บ, ทริกเกอร์, การตั้งค่าความปลอดภัย, ผู้ใช้, การเข้าสู่ระบบและอื่น ๆ จะไม่ถูกถ่ายโอน อย่างไรก็ตามมันเป็นกระบวนการที่ง่ายมากและสามารถทำได้โดยเพียงแค่ไปที่ตัวช่วยสร้างใน Studio จัดการเซิร์ฟเวอร์ SQL
  2. การใช้สคริปต์การสร้าง SSIS และ DBร่วมกัน นี่จะทำให้คุณได้รับข้อมูลและข้อมูลเมตาที่หายไปทั้งหมดที่ไม่ได้รับการถ่ายโอนโดย SSIS นี่ก็ง่ายมาก เริ่มต้นถ่ายโอนข้อมูลโดยใช้ SSIS (ดูคำแนะนำด้านล่าง) จากนั้นสร้างฐานข้อมูลสร้างสคริปต์จากฐานข้อมูล SQL Azure และเล่นซ้ำบนฐานข้อมูลท้องถิ่นของคุณ
  3. สุดท้ายคุณก็สามารถใช้บริการนำเข้า / ส่งออกใน SQL Azure สิ่งนี้จะถ่ายโอนข้อมูล (ที่มีวัตถุ schema) ไปยัง Azure Blob Storage เป็น BACPAC คุณจะต้องมีบัญชี Azure Storage และทำสิ่งนี้ใน Azure web portal มันง่ายพอ ๆ กับการกดปุ่ม "ส่งออก" ในเว็บพอร์ทัล Azure เมื่อคุณเลือกฐานข้อมูลที่คุณต้องการส่งออก ข้อเสียคือเป็นเพียงขั้นตอนด้วยตนเองฉันไม่ทราบวิธีการทำสิ่งนี้ผ่านเครื่องมือหรือสคริปต์อย่างน้อยส่วนแรกที่ต้องคลิกบนหน้าเว็บ

ขั้นตอนแบบแมนนวลสำหรับวิธีที่ # 1 (โดยใช้ SSIS) มีดังต่อไปนี้:

  • ใน Sql Server Management Studio (SSMS) สร้างฐานข้อมูลเปล่าใหม่บนอินสแตนซ์ SQL ในเครื่องของคุณ
  • เลือกนำเข้าข้อมูลจากเมนูบริบท (คลิกขวาที่ฐานข้อมูล -> ภารกิจ -> นำเข้าข้อมูล ... )
  • พิมพ์พารามิเตอร์การเชื่อมต่อสำหรับแหล่งที่มา (SQL Azure) เลือก ".Net Framework Data Provider for SqlServer" เป็นผู้ให้บริการ
  • เลือกฐานข้อมูลท้องถิ่นที่ว่างอยู่ที่มีอยู่เป็นปลายทาง
  • ทำตามตัวช่วยสร้าง - คุณจะสามารถเลือกข้อมูลตารางที่คุณต้องการคัดลอก คุณสามารถเลือกที่จะข้ามตารางใด ๆ ที่คุณไม่ต้องการ เช่นถ้าคุณเก็บบันทึกแอปพลิเคชันในฐานข้อมูลคุณอาจไม่จำเป็นต้องใช้มันในการสำรองข้อมูล

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

วิธีที่ # 2 (ข้อมูล SSID รวมถึงวัตถุสคีมา) นั้นง่ายมาก ขั้นแรกทำตามขั้นตอนที่อธิบายไว้ข้างต้นจากนั้นสร้างสคริปต์การสร้างฐานข้อมูล (คลิกขวาที่ฐานข้อมูลใน SSMS เลือกสร้างสคริปต์ -> สร้างฐานข้อมูล) จากนั้นเล่นสคริปต์นี้อีกครั้งในฐานข้อมูลท้องถิ่นของคุณ

วิธีที่ 3อธิบายไว้ในบล็อกที่นี่: http://dacguy.wordpress.com/2012/01/24/sql-azure-importexport-service-has-hit-production/ มีวิดีโอคลิปที่มีกระบวนการถ่ายโอนเนื้อหาฐานข้อมูลไปยังที่เก็บข้อมูล Azure Blob เป็น BACPAC หลังจากนั้นคุณสามารถคัดลอกไฟล์ภายในเครื่องและนำเข้าสู่อินสแตนซ์ SQL ของคุณ กระบวนการของการนำเข้า BACPAC เพื่อการประยุกต์ใช้ข้อมูลเงินกองทุนชั้นที่อธิบายไว้ที่นี่: http://msdn.microsoft.com/en-us/library/hh710052.aspx


2
ใช้งานได้เพียงหนึ่งการแก้ไข ในตัวช่วยสร้างการนำเข้า / ส่งออกเซิร์ฟเวอร์แหล่งข้อมูลคือ '.Net Framework Data Provider for SqlServer'
BZink

ที่ดี! ขอบคุณสำหรับการแก้ไข ฉันจำได้ว่ามีผู้ให้บริการรายหนึ่งที่ทำงานได้และคนอื่น ๆ บางคนก็ไม่ได้ผลสำหรับฉัน แต่ไม่ได้จดจำอย่างใดอย่างหนึ่ง
seva titov

ล้มเหลวสำหรับฉัน: 'ความล้มเหลวในการแทรกลงในคอลัมน์แบบอ่านอย่างเดียว "id"'
dumbledad

3
เคล็ดลับสำหรับฉันคือการเริ่มเลียนแบบ PKs / FKs / ข้อ จำกัด ในฐานข้อมูลที่ว่างเปล่าจากนั้นปิดการใช้งานข้อ จำกัด ชั่วคราวในขณะที่นำเข้าข้อมูล แม่นยำยิ่งขึ้น: สร้างฐานข้อมูลเปล่า 1 ด้วยตนเอง คลิกขวาที่ซอร์ส DB> ภารกิจ> สร้างสคริปต์ ไฟล์สคริปต์ 3-Run บน DB เป้าหมายที่ว่างเปล่า (ตอนนี้ DB มี PKs / FKs / ข้อ จำกัด ที่ถูกต้อง แต่ไม่มีข้อมูล) 4-Disable ข้อ จำกัด ทั้งหมด ( stackoverflow.com/a/161410 ) ข้อมูล 5 นำเข้า (คลิกขวาที่ฐานข้อมูลเป้าหมาย> งาน> นำเข้าข้อมูล) 6-Re-enable ข้อ จำกัด หวังว่านี่จะช่วยได้!
Mathieu Frenette

1
@JoSmo วิธีการ # 1 และ # 2 ไม่จำเป็นต้องมีบัญชีที่เก็บข้อมูล อย่างไรก็ตามฉันขอแนะนำให้มีบัญชีที่จัดเก็บในดาต้าเซ็นเตอร์เดียวกันกับฐานข้อมูล SQL Azure ของคุณ เหตุผลคือคุณสามารถใช้มันเพื่อสำรองฐานข้อมูลและกู้คืน หากคุณไม่มีสิทธิ์ระดับผู้ดูแลสำหรับการสมัครสมาชิก Azure ของคุณค้นหาบุคคลในองค์กรของคุณที่มีสิทธิ์เพียงพอในการสร้างบัญชีหน่วยเก็บข้อมูลใหม่และให้สิทธิ์การเข้าถึงแก่คุณ เนื่องจากคุณมีการเข้าถึงฐานข้อมูลอยู่แล้วจึงไม่มีเหตุผลที่ปฏิเสธการเข้าถึงบัญชีที่จัดเก็บ
seva titov

66

คัดลอกข้อมูลฐานข้อมูล Azure ไปยังฐานข้อมูลท้องถิ่น: ตอนนี้คุณสามารถใช้ Studio จัดการเซิร์ฟเวอร์ SQL เพื่อทำสิ่งนี้ได้ด้านล่าง:

  • เชื่อมต่อกับฐานข้อมูล SQL Azure
  • คลิกขวาที่ฐานข้อมูลใน Object Explorer
  • เลือกตัวเลือก "งาน" / "ปรับใช้ฐานข้อมูลกับ SQL Azure"
  • ในขั้นตอนที่ชื่อว่า "การตั้งค่าการปรับใช้" ให้เชื่อมต่อ SQL Server ท้องถิ่นและสร้างฐานข้อมูลใหม่

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

"ถัดไป" / "ถัดไป" / "เสร็จสิ้น"


9
Awesome👏🏻นี้ไม่ได้ให้ชัดเจนใน SSMS ตั้งแต่ "การปรับใช้ฐานข้อมูลกับ SQL AZURE" ค่อนข้างทำให้เข้าใจผิด ...
EeKay

12
โดยวิธีที่ง่ายที่สุดผสมกับชื่อเมนูที่ทำให้เข้าใจผิดมากที่สุด ขอขอบคุณสำหรับการโพสต์นี้.
Kevin Giszewski

สิ่งนี้ง่ายที่สุด แต่ข้อเสียเปรียบคือคุณไม่สามารถเลือกตารางที่คุณต้องการสำรองข้อมูลและไม่ต้องการ ใน บริษัท ของฉันเรามีตาราง Attachment ที่มี Gigabytes ของ Attachment (รูปภาพและอื่น ๆ ) โดยปกติเราไม่ต้องการสิ่งนี้เพราะมันจะเป็นการคัดลอกตลอดไป เราไม่สามารถยกเว้นตารางนี้โดยใช้วิธีนี้
Rosdi Kasim

33

ฉันแค่อยากจะเพิ่มคำตอบของดัมเบิลดอร์ให้ง่ายขึ้นเพราะมันเป็นคำตอบที่ถูกต้อง

  1. ส่งออกฐานข้อมูล Azure SQL ไปยังไฟล์ BACPAC ในที่เก็บข้อมูล blob
  2. จากภายใน SQL Management studio ให้คลิกขวาที่ฐานข้อมูลของคุณคลิก "นำเข้าแอปพลิเคชันระดับข้อมูล"
  3. คุณจะได้รับแจ้งให้ป้อนข้อมูลเพื่อไปยังไฟล์ BACPAC ในที่เก็บข้อมูล Azure blob ของคุณ
  4. ไปสองสามครั้งแล้ว ... เสร็จ!

4
ฉันได้รับข้อผิดพลาดว่าเป้าหมายไม่สามารถเป็น sql azure v12 ได้หรือไม่
Zapnologica

2
ตรวจสอบให้แน่ใจว่าคุณมี SSMS รุ่นที่จะนำเข้า BACPAC นั้น: msdn.microsoft.com/en-us/library/mt238290.aspx
Paul Bullivant

แม้จะมี SSMS รุ่นนี้ฉันยังคงได้รับข้อผิดพลาดเนื่องจากเป้าหมาย Azure sql db 12
Preza8

28

ใน SQL Server 2016 Management Studio กระบวนการในการรับฐานข้อมูลสีน้ำเงินไปยังเครื่องท้องถิ่นของคุณได้รับการปรับปรุง

คลิกขวาที่ฐานข้อมูลที่คุณต้องการนำเข้าคลิกงาน> ส่งออกแอปพลิเคชันระดับข้อมูลและส่งออกฐานข้อมูลของคุณไปยังไฟล์. dacpac ในเครื่อง

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


5
นี่ไง. NB "ส่งออกข้อมูลระดับ" รวมถึงข้อมูล "แยกชั้นข้อมูล" ให้คำจำกัดความให้คุณเท่านั้น
Colin

20

ฉันคิดว่ามันง่ายกว่านี้มาก

  1. เรียกใช้ SQL Management Studio
  2. คลิกขวาที่ "ฐานข้อมูล" และเลือก "นำเข้าแอปพลิเคชันระดับข้อมูล ... "
  3. ตัวช่วยจะนำคุณผ่านกระบวนการเชื่อมต่อกับบัญชี Azure ของคุณสร้างไฟล์ BACPAC และสร้างฐานข้อมูลของคุณ

นอกจากนี้ฉันใช้ Sql Backup และ FTP ( https://sqlbackupandftp.com/ ) เพื่อสำรองข้อมูลรายวันไปยังเซิร์ฟเวอร์ FTP ที่ปลอดภัย ฉันดึงไฟล์ BACPAC ล่าสุดจากที่นั่นและนำเข้าในกล่องโต้ตอบเดียวกันซึ่งเร็วกว่าและง่ายกว่าในการสร้างฐานข้อมูลท้องถิ่น


9

คุณสามารถตรวจสอบSQL Azure Data Syncใน Windows Azure Management Portal จะช่วยให้คุณสามารถดึงและกู้คืนฐานข้อมูลทั้งหมดรวมถึงสคีมาและข้อมูลระหว่าง SQL Azure และ SQL Server


1
ไม่ควรใช้ SQL Data Sync เป็นส่วนหนึ่งของกลยุทธ์การสำรองข้อมูลของคุณเนื่องจากมีข้อ จำกัด หลายประการ มันไม่ได้เป็นรุ่นมันสำรองข้อมูลเท่านั้นและไม่มีวัตถุอื่น สำหรับข้อมูลเพิ่มเติมดูหัวข้อคำถามที่พบบ่อยของ SQL Data Sync ( msdn.microsoft.com/en-us/library/windowsazure/jj650016.aspx )
Shaun Luttin

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

5

มันค่อนข้างง่าย สิ่งนี้ใช้ได้ผลสำหรับฉัน ... ในแง่ของการรับฐานข้อมูล Azure SQL ลงในเครื่องของคุณ ... :

  1. เปิด Studio Management SQL ของคุณและเชื่อมต่อกับ Azure SQL Server ของคุณ
  2. เลือกฐานข้อมูลที่คุณต้องการลงไปในเครื่องของคุณและคลิกขวา ... เลือก "สร้างสคริปต์" ทำตามคำแนะนำ ...

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

มันจะให้ไฟล์สคริปต์ SQL ที่ดีซึ่งสามารถรันบนเครื่องโลคัลของคุณและมันจะสร้างฐานข้อมูลรวมถึงเติมด้วยข้อมูลทั้งหมด

โปรดจำไว้ว่าในกรณีของฉันฉันไม่มี FK หรือข้อ จำกัด อื่น ๆ ... เช่นกันมันมีข้อมูลไม่มาก

ฉันไม่แนะนำสิ่งนี้เป็นกลไกการสำรองข้อมูลโดยทั่วไป ...


2
ฉันต้องบอกว่ามันใช้งานได้ดีอย่างน่าทึ่งโดยไม่ต้องยุ่งยาก สร้างกุญแจต่างประเทศอย่างสมบูรณ์แบบ สคริปต์ SQL ส่งผลให้มีขนาดใหญ่เกินไปจะเปิดใน SSMS หรือแท้จริงในการแก้ไขข้อความจำนวนมาก แต่ก็สามารถที่จะใช้บรรทัดคำสั่งsqlcmd /S <server> /d <database> -E -i <azure_dump.sql>
perlyking

5

การใช้ msdeploy.exe

Caveat: msdeploy.exeล้มเหลวในการสร้างฐานข้อมูลปลายทางด้วยตัวเองดังนั้นคุณต้องสร้างด้วยตนเองก่อน

  1. คัดลอกสตริงการเชื่อมต่อบนหน้าคุณสมบัติฐานข้อมูล ปรับแต่งเพื่อให้มีรหัสผ่านที่ถูกต้อง หน้าคุณสมบัติฐานข้อมูล
  2. รับสายอักขระการเชื่อมต่อสำหรับฐานข้อมูลปลายทาง
  3. ทำงานmsdeploy.exeแบบนี้:

    "c:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -dest:dbDacFx="destination_DB_connection_string",dropDestinationDatabase=true -source:dbDacFx="azure_DB_connection_string",includeData=true -verbose

การใช้ SqlPackage.exe

  1. ส่งออกฐานข้อมูลสีฟ้าไปยังแพคเกจ bacpac

    "c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /a:Export /ssn:"azure_db_server" /sdn:"azure_db_name" /su:"user_name" /sp:"password" /tf:"file.bacpac"
  2. นำเข้าแพคเกจไปยังฐานข้อมูลท้องถิ่น

    "c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /a:Import /SourceFile:"file.bacpac" /TargetServerName:".\SQLEXPRESS" /TargetDatabaseName:CopyOfAzureDb

4

โปรดลองนี้http://mooneyblog.mmdbsolutions.com/index.php/2011/01/11/simple-database-backups-with-sql-azure/

ทางเลือกอื่น ๆ จะเป็นSQL Azure ซิงค์ข้อมูล

มีโพสต์บล็อกอีกหนึ่งรายการที่ฉันวิ่งข้ามไปสองสามวัน แต่ไม่พบในขณะนี้ ฉันจะอัปเดตโพสต์นี้ทันทีที่พบ


นี่คือลิงค์อื่นที่ฉันพูดถึงในโพสต์ของฉันก่อนหน้านี้: bmegias.wordpress.com/2010/09/14/…
Gaurav Mantri-AIS

3

ใน Studio จัดการเซิร์ฟเวอร์ SQL

คลิกขวาที่ฐานข้อมูลที่คุณต้องการนำเข้าคลิกงาน> ส่งออกแอปพลิเคชันระดับข้อมูลและส่งออกฐานข้อมูลของคุณไปยังไฟล์. dacpac ในเครื่อง

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


2

ฉันไม่สามารถรับการนำเข้า / ส่งออก SSIS ให้ทำงานได้เนื่องจากฉันได้รับข้อผิดพลาด 'ความล้มเหลวในการใส่ลงในคอลัมน์แบบอ่านอย่างเดียว "id"' ฉันจะไม่ได้รับ http://sqlazuremw.codeplex.com/และลิงก์ด้านบนไปยัง SQL Azure Data Sync นั้นใช้ไม่ได้สำหรับฉัน

แต่ฉันพบโพสต์บล็อกที่ยอดเยี่ยมเกี่ยวกับไฟล์ BACPAC: http://dacguy.wordpress.com/2012/01/24/sql-azure-importexport-service-has-hit-production/

ในวิดีโอในโพสต์ผู้เขียนของโพสต์บล็อกวิ่งผ่านหกขั้นตอน:

  1. สร้างหรือไปที่บัญชีที่เก็บข้อมูลใน Azure Management Portal คุณจะต้องใช้ Blob URL และรหัสการเข้าถึงหลักของบัญชีที่เก็บข้อมูล

  2. โพสต์บล็อกแนะนำให้สร้างที่เก็บใหม่สำหรับไฟล์ bacpac และแนะนำให้ใช้Azure Storage Explorerสำหรับสิ่งนั้น (หมายเหตุคุณจะต้องใช้ Blob URL และคีย์การเข้าถึงหลักของบัญชีการจัดเก็บเพื่อเพิ่มลงใน Azure Storage Explorer)

  3. ใน Azure Management Portal เลือกฐานข้อมูลที่คุณต้องการส่งออกและคลิก 'ส่งออก' ในส่วนนำเข้าและส่งออกของ Ribbon

  4. บทสนทนาที่เกิดขึ้นจะต้องมีชื่อผู้ใช้และรหัสผ่านของคุณสำหรับฐานข้อมูล, blob URL และรหัสการเข้าถึง อย่าลืมรวมคอนเทนเนอร์ไว้ใน blob URL และรวมชื่อไฟล์ (เช่น https://testazurestorage.blob.core.windows.net/dbbackups/mytable.bacpac )

  5. หลังจากคุณคลิกเสร็จสิ้นฐานข้อมูลจะถูกส่งออกไปยังไฟล์ BACPAC อาจใช้เวลาสักครู่ คุณอาจเห็นไฟล์ศูนย์ไบต์ปรากฏขึ้นทันทีหากคุณตรวจสอบใน Azure Storage Explorer นี่คือบริการตรวจสอบการนำเข้า / ส่งออกว่ามีการเข้าถึงการเขียนไปยังร้านค้า blob

  6. เมื่อเสร็จแล้วคุณสามารถใช้ Azure Storage Explorer เพื่อดาวน์โหลดไฟล์ BACPAC จากนั้นใน Studio จัดการเซิร์ฟเวอร์ SQL คลิกขวาที่โฟลเดอร์ฐานข้อมูลของเซิร์ฟเวอร์ในพื้นที่ของคุณแล้วเลือก Import Data Tier Application ที่จะเริ่มตัวช่วยสร้างซึ่งอ่านในไฟล์ BACPAC เพื่อ สร้างสำเนาของฐานข้อมูล Azure ของคุณ ตัวช่วยสร้างยังสามารถเชื่อมต่อโดยตรงกับร้านค้า blob-store เพื่อรับไฟล์ BACPAC หากคุณไม่ต้องการคัดลอกภายในเครื่องก่อน

ขั้นตอนสุดท้ายอาจใช้ได้เฉพาะใน SQL Server Management Studio รุ่น SQL Server 2012 (นั่นคือรุ่นที่ฉันใช้อยู่) ฉันไม่ได้มีคนก่อนหน้านี้ในเครื่องนี้เพื่อตรวจสอบ ในบล็อกโพสต์ผู้เขียนใช้เครื่องมือบรรทัดคำสั่ง DacImportExportCli.exe สำหรับการนำเข้าซึ่งฉันเชื่อว่ามีอยู่ที่http://sqldacexamples.codeplex.com/releases


ในขณะที่ฉันไม่ได้ทำสิ่งนี้อย่างแน่นอนมันทำให้ฉันไปในทิศทางที่ถูกต้อง คุณสามารถข้ามการดาวน์โหลดไฟล์ bacpac และชี้ไปที่ที่เก็บข้อมูล Azure Blob โดยตรงจากภายใน SQL Server Management Studio
Josh Mouch

2

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

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

ฉันมีตัวช่วยสร้างการนำเข้า / ส่งออก SQL ที่มาพร้อมกับ SQL Server 2008 R2 (ทำงานได้ดี) และ Visual Studio 2012 Express เพื่อสร้างฐานข้อมูลท้องถิ่น


2

คำตอบที่ยอมรับนั้นล้าสมัยแล้ว ฉันพบคำตอบที่ดีกว่า: ใช้แอปพลิเคชันนำเข้าข้อมูลระดับ

ข้อมูลรายละเอียดเพิ่มเติมโปรดดูบทความนี้: การกู้คืนฐานข้อมูล Azure SQL ไปยังเซิร์ฟเวอร์ภายใน


2

คุณสามารถลองใช้เครื่องมือ "SQL Database Migration Wizard" เครื่องมือนี้ให้ตัวเลือกในการนำเข้าและส่งออกข้อมูลจาก azure sql

กรุณาตรวจสอบรายละเอียดเพิ่มเติมได้ที่นี่

https://sqlazuremw.codeplex.com/


1

คุณสามารถใช้ Azure Mobile Services ใหม่เพื่อทำการส่งออกการสำรองคืนจาก SQL Azure ไปยังไฟล์. bacpac ที่โฮสต์ใน Azure Storage โซลูชันนี้เป็นระบบคลาวด์ 100% ไม่จำเป็นต้องใช้เครื่องมือของบุคคลที่สามและไม่ต้องการอินสแตนซ์ของ SQL Server ที่โฮสต์ในเครื่องเพื่อดาวน์โหลด / คัดลอก / สำรองข้อมูล

มีประมาณ 8 ขั้นตอนต่าง ๆ แต่ทั้งหมดนั้นง่าย: http://geekswithblogs.net/BenBarreth/archive/2013/04/15/how-to-create-a-nightly-backup-of-your-sql-azure ขอบ


นี่มันช่างดูดีจริงๆ! มีความคิดใดบ้างถ้าสิ่งนี้จะใช้ได้กับ Azure Federations
Tim Lentine

@ ขอโทษด้วยฉันไม่รู้ การทำเช่นนี้ผ่านทางบริการโทรศัพท์มือถือเป็นวิธีแก้ปัญหาที่เริ่มต้นด้วยดังนั้นฉันจะไม่แปลกใจถ้ามันไม่ได้
Ben Barreth

1

ฉันมักจะใช้คุณสมบัตินำเข้า / ส่งออกซึ่งดูเหมือนจะง่ายที่สุดในบรรดา

ขั้นตอนที่ 1:

รับข้อมูลสำรองจากอินสแตนซ์สีฟ้าดังนี้เลือกฐานข้อมูล→คลิกขวา→งาน→ส่งออกแอปพลิเคชันระดับข้อมูล

ขั้นตอนที่ 2: ตั้งชื่อเฉพาะให้กับไฟล์สำรองข้อมูลและบันทึกไว้ในตำแหน่งที่คุณต้องการ

ขั้นตอนที่ 3:นั่นคือคุณได้ทำการสำรองฐานข้อมูลจาก sql instance ไปยังเครื่องของคุณแล้ว ให้คืนค่าไปยังท้องถิ่น คัดลอกฐานข้อมูลสำรองไปยังไดรฟ์ C ของคุณ ตอนนี้เปิด PowerShell ด้วยสิทธิ์ผู้ดูแลระบบและไปที่ไดรฟ์ C

ขั้นตอนที่ 4:ให้ดาวน์โหลดสคริปต์ powershell เพื่อลบ master keyRemoveMasterKey.ps1มีสคริปต์ในไดรฟ์เดียวกันในกรณีนี้ C

ขั้นตอนที่ 5:เรียกใช้สคริปต์ดังต่อไปนี้,. \ RemoveMasterKey.ps1 -bacpacPath "C: \ identity.bacpac"

เพียงเท่านี้คุณก็สามารถกู้คืนได้ใน MSSQL 2017 ในสภาพแวดล้อมท้องถิ่นของคุณ

ขั้นตอนที่ 6:เชื่อมต่อกับเซิร์ฟเวอร์ภายในเครื่องของคุณแล้วคลิกฐานข้อมูล→นำเข้า - ข้อมูลระดับแอปพลิเคชัน

ขั้นตอนที่ 7 : ตั้งชื่อให้ฐานข้อมูลของคุณกู้คืน

ตอนนี้คุณจะเห็นทุกอย่างเป็นสีเขียว!

อ่านบล็อกของฉันพร้อมไดอะแกรม


0

ดาวน์โหลด Optillect SQL Azure Backup - มันมีการทดลอง 15 วันดังนั้นมันจะเพียงพอที่จะย้ายฐานข้อมูลของคุณ :)


นี่คือลิงค์ไปยังเครื่องมือภายใน สมมติ OP หมายถึงลิงก์ไปยังเครื่องมือ Red Gate ที่เลิกใช้แล้ว ( red-gate.com/products/dba/sql-azure-backup ) หรือโครงการนี้ใน CodePlex ( sqlazurebackup.codeplex.com )
Josh

0

เคล็ดลับสำหรับฉันคือการเริ่มเลียนแบบ PKs / FKs / ข้อ จำกัด ในฐานข้อมูลที่ว่างเปล่าจากนั้นปิดใช้งานข้อ จำกัด ชั่วคราวในขณะที่นำเข้าข้อมูล (ดูhttps://stackoverflow.com/a/161410 )

อย่างแม่นยำมากขึ้น:

  1. สร้างฐานข้อมูลเป้าหมายที่ว่างเปล่าด้วยตนเอง;
  2. คลิกขวาที่ซอร์ส DB> ภารกิจ> สร้างสคริปต์
  3. เรียกใช้ไฟล์สคริปต์บนฐานข้อมูลเป้าหมายที่ว่างเปล่า (ตอนนี้ฐานข้อมูลมี PKs / FKs / ข้อ จำกัด ที่ถูกต้อง แต่ไม่มีข้อมูล)
  4. ปิดการใช้งานข้อ จำกัด ทั้งหมด
  5. นำเข้าข้อมูล (คลิกขวาที่ฐานข้อมูลเป้าหมาย> งาน> นำเข้าข้อมูล);
  6. เปิดใช้งานข้อ จำกัด อีกครั้ง

หวังว่านี่จะช่วยได้!


0

ตอนนี้คุณสามารถใช้ Studio จัดการเซิร์ฟเวอร์ SQL เพื่อทำสิ่งนี้

  • เชื่อมต่อกับฐานข้อมูล SQL Azure
  • คลิกขวาที่ฐานข้อมูลใน Object Explorer
  • เลือกตัวเลือก "งาน" / "ปรับใช้ฐานข้อมูลกับ SQL Azure"
  • ในขั้นตอนชื่อ "การตั้งค่าการปรับใช้" เลือกการเชื่อมต่อฐานข้อมูลท้องถิ่นของคุณ
  • "ถัดไป" / "ถัดไป" / "เสร็จสิ้น" ...

ฉันไม่สามารถทำเช่นนี้เพราะที่ปุ่ม "Next" เป็นสีเทาออกจนกว่าฉันจะเลือกอีกฐานข้อมูล Azure เป็นเป้าหมายการเชื่อมต่อ
โคลิน


0

หากใครมีปัญหาในการนำเข้า Bacpac ของฐานข้อมูลที่ใช้Azure SQL Syncนั้น Sandrino Di Mattia ได้พัฒนาแอปพลิเคชั่นที่ยอดเยี่ยมเพื่อแก้ปัญหานี้

  1. ส่งออก Bacpac ของฐานข้อมูลของคุณ
  2. เลขฐานสองของ Dowload Di Mattia
  3. ด้วยแอปคอนโซลนี้ซ่อมแซม Bacpac ที่ดาวน์โหลดมา
  4. Lauch SSMS
  5. คลิกขวาที่ "ฐานข้อมูล" และเลือก "นำเข้าแอปพลิเคชันระดับข้อมูล"
  6. เลือก Bacpac ที่ซ่อมแซม

0

หากใครต้องการตัวเลือกฟรีและมีประสิทธิภาพ (และไม่ต้องทำด้วยตนเอง) เพื่อสำรองฐานข้อมูลไปยัง Local ใช้ฟังก์ชัน schema และการเปรียบเทียบข้อมูลที่มีอยู่ใน Microsoft Visual Studio 2015 Community Edition รุ่นล่าสุด (ฟรี) หรือ Professional / Premium / Ultimate ฉบับ มันใช้งานได้เหมือนมีเสน่ห์!

ฉันมีบัญชี BizPark กับ Azure และไม่มีวิธีในการสำรองฐานข้อมูลโดยตรงโดยไม่ต้องจ่าย ฉันพบตัวเลือกนี้ใน VS ใช้งานได้

คำตอบนั้นมาจากhttps://stackoverflow.com/a/685073/6796187


0

สวัสดีฉันใช้เครื่องมือ SQLAzureMW สำหรับการโยกย้ายและการจัดการ SQLAzure DB มีประโยชน์มากคนหนึ่ง มันถูกดาวน์โหลดจาก codeplex แต่ในปัจจุบันยังไม่สามารถใช้ได้ codeplex จะปิดตัวลงเครื่องมือแอปพลิเคชันเดียวกันนี้มีให้ใช้ใน GttHub แล้ว ลิงค์ด้านล่างนี้อธิบายวิธีใช้เครื่องมือนี้และยังมีแอปพลิเคชันสำหรับดาวน์โหลด

https://github.com/twright-msft/azure-content/blob/master/articles/sql-database/sql-database-migration-wizard.md

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