แชร์ผ่าน


SqlPackage สําหรับฐานข้อมูล SQL ใน Microsoft Fabric

นําไปใช้กับ:ฐานข้อมูล SQL ใน Microsoft Fabric

ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีการทํางานกับ SqlPackage ในฐานข้อมูล SQL ของคุณใน Fabric

SqlPackage คือ CLI ที่ให้ ความสามารถในการ เคลื่อนย้ายฐานข้อมูลและ การปรับใช้ฐานข้อมูล

  • ความสามารถในการเคลื่อนย้าย (นําเข้า/ส่งออก) ของฐานข้อมูลที่มีการจัดการใน Azure หรือใน Fabric ช่วยให้แน่ใจว่าข้อมูลของคุณพกพาไปยังแพลตฟอร์มอื่นได้แบบพกพา คุณควรที่จะโยกย้ายในภายหลัง - ความสามารถในการเคลื่อนย้ายรวมถึงการเคลื่อนย้ายไปยังและจาก SQL Server, ฐานข้อมูล Azure SQL, อินสแตนซ์ที่จัดการแล้วของ Azure SQL และฐานข้อมูล SQL ใน Fabric ผ่านสําเนาฐานข้อมูลที่มีในตัวเอง (.bacpac หรือ .dacpac ไฟล์)

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

  • SqlPackage สามารถแยกไฟล์ที่มี .dacpac ข้อกําหนดของวัตถุในฐานข้อมูล และเผยแพร่ .dacpac ไฟล์เพื่อนําสถานะวัตถุนั้นไปใช้กับฐานข้อมูลใหม่หรือฐานข้อมูลที่มีอยู่
  • การดําเนินการเผยแพร่ยังรวมกับโครงการ SQL ที่เปิดใช้งานวงจรการพัฒนาแบบออฟไลน์และแบบไดนามิกมากขึ้นสําหรับฐานข้อมูล SQL

ข้อกำหนดเบื้องต้น

ตั้งค่า

SqlPackage จะพร้อมใช้งานสําหรับ Windows, macOS และ Linux เป็นเครื่องมือ dotnet คุณสามารถติดตั้งโดยใช้คําสั่งต่อไปนี้:

dotnet tool install --global Microsoft.SqlPackage

เป็นเครื่องมือ dotnet ส่วนกลาง SqlPackage จะพร้อมใช้งานในเทอร์มินัลของคุณเช่นเดียวกับ sqlpackage โฟลเดอร์ใด ๆ

นําเข้าฐานข้อมูลด้วย SqlPackage

เป็น .bacpac สําเนาแบบพกพาของฐานข้อมูล ซึ่งเป็นประโยชน์สําหรับสถานการณ์การโยกย้ายและการทดสอบบางอย่าง คุณสามารถนําเข้าไปยัง.bacpacฐานข้อมูล SQL ที่ว่างเปล่าด้วยการนําเข้า SqlPackage

หมายเหตุ

.bacpacไม่ใช่ข้อมูลสํารองหรือการแทนที่สําหรับความสามารถในการสํารอง/คืนค่า สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการสํารองข้อมูลสําหรับฐานข้อมูล SQL ใน Fabric ดูการสํารองข้อมูลอัตโนมัติในฐานข้อมูล SQL ใน Microsoft Fabric และ Restore จากการสํารองข้อมูลในฐานข้อมูล SQL ใน Microsoft Fabric

  1. ถ้าใช้ .bacpac จากสภาพแวดล้อม Azure หรือ SQL Server คุณอาจจําเป็นต้องเปลี่ยนฐานข้อมูลต้นฉบับเพื่อตอบสนองฐานข้อมูล SQL ในพื้นที่พื้นผิว Fabric T-SQL ดู แยกและเผยแพร่ความสามารถในการเคลื่อนย้าย สําหรับวิธีการทางเลือกที่เปิดใช้งานคุณสมบัติ SqlPackage เพื่อข้ามออบเจ็กต์ที่ไม่รองรับบางอย่าง

  2. สร้างฐานข้อมูล SQL ใหม่ของคุณใน Fabric ตามปกติผ่านอินเทอร์เฟซ Fabric

  3. คัดลอกสายอักขระการเชื่อมต่อจากการตั้งค่า

    ภาพหน้าจอจากพอร์ทัล Fabric ที่แสดงหน้าสตริงการเชื่อมต่อของฐานข้อมูล SQL

  4. ใช้คําสั่งนําเข้าจากเทอร์มินัลในโฟลเดอร์ sqlpackage ให้เจ้าของ<servername>ของคุณ และ<database_name>

    sqlpackage /action:import /sourcefile:"C:\DatabaseName.bacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"
    
    • แทนที่สายอักขระการเชื่อมต่อของคุณจากกล่องโต้ตอบการตั้งค่าฐานข้อมูล SQL
    • sourcefileแทนที่ค่า ด้วย.bacpacชื่อ (DatabaseName) และlocationบนเครื่องคอมพิวเตอร์ของคุณ
  5. ติดตามการนําเข้าด้วย งานคัดลอก ใน Data Factory ใน Microsoft Fabric เมื่อต้องการเริ่มต้นใช้งาน โปรดดู เริ่มต้นใช้งานด่วน: สร้างงานคัดลอก

ส่งออกฐานข้อมูลด้วย SqlPackage

.bacpacการส่งออก คือการดําเนินการย้อนกลับ ที่คุณtargetfileและ .bacpacsourceconnectionstring สามารถพบได้ในกล่องโต้ตอบการตั้งค่าฐานข้อมูล SQL ตามตัวอย่างก่อนหน้านี้ ให้เจ้าของ<servername>ของคุณ และ<database_name> ตัวอย่างเช่น:

sqlpackage /action:export /targetfile:"C:\DatabaseName.bacpac" /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการส่งออก โปรดดู การส่งออก SqlPackage

แยกและเผยแพร่

แผนภาพว่าโครงการฐานข้อมูล SQL สามารถย้ายการเปลี่ยนแปลง Schema ได้อย่างไร

.dacpacเป็นไฟล์แบบจําลองเค้าร่างฐานข้อมูลที่มีข้อกําหนดสําหรับตาราง กระบวนงานที่เก็บไว้ และวัตถุอื่นๆ ในฐานข้อมูลต้นทาง ไฟล์นี้สามารถสร้างจากฐานข้อมูลที่มีอยู่ด้วย SqlPackage หรือจากโครงการฐานข้อมูล SQL

SqlPackage มีความสามารถในการปรับใช้.dacpacไปยังฐานข้อมูลใหม่ (ว่าง) หรือปรับปรุงฐานข้อมูลที่มีอยู่ให้ตรงกับสถานะที่ต้องการ.dacpac

  • การแยก จะสร้าง .dacpac ไฟล์ sql หรือจากฐานข้อมูลที่มีอยู่
  • เผยแพร่ ปรับใช้กับ .dacpac ฐานข้อมูล

SqlPackage เผยแพร่ และ แยกไวยากรณ์ คล้ายกับคําสั่งนําเข้า/ส่งออก

คำเตือน

แนะนําให้ใช้ SqlPackage เพื่อปรับใช้โครงการ SQL หรือ .dacpac กับฐานข้อมูล SQL ใน Fabric การปรับใช้ .dacpac จาก Visual Studio อาจไม่สําเร็จ

เมื่อต้องการปรับใช้ .dacpac ที่สร้างขึ้นจากฐานข้อมูล Azure SQL, SQL Server หรือโครงการ SQL ที่กําหนดเป้าหมายแพลตฟอร์มอื่นนอกเหนือจากฐานข้อมูล SQL ใน Fabric ให้ผนวกคุณสมบัติ /p:AllowIncompatiblePlatform=true เข้ากับคําสั่งการเผยแพร่ SqlPackage

แยกและเผยแพร่ความสามารถในการเคลื่อนย้าย

ในขณะที่คําสั่งนําเข้า/ส่งออกของ SqlPackage มุ่งเน้นไปที่ความสามารถในการเคลื่อนย้ายข้อมูลด้วย .bacpac รูปแบบ คําสั่งการแยกและเผยแพร่สามารถเคลื่อนย้ายข้อมูลด้วย .dacpac รูปแบบได้ คุณสมบัติการแยกและเผยแพร่สามารถใช้เพื่อควบคุมลักษณะการทํางานของการแยกและเผยแพร่การดําเนินการ และให้ความยืดหยุ่นมากขึ้นสําหรับการแปลงระหว่างแพลตฟอร์ม

เมื่อต้องการ แยก.dacpac และ รวมข้อมูล ให้ใช้ /p:ExtractAllTableData=true คุณสมบัติ การดําเนินการแยกจะสร้าง .dacpac ทั้ง schema และข้อมูลจากฐานข้อมูลต้นทาง คุณสมบัติ /p:ExtractReferencedServerScopedElements=false ไม่รวมองค์ประกอบที่กําหนดขอบเขตเซิร์ฟเวอร์ ซึ่งไม่ได้รับการสนับสนุนในฐานข้อมูล SQL ใน Fabric คําสั่งต่อไปนี้แยก .dacpac กับข้อมูลจากฐานข้อมูล SQL ที่มีอยู่ใน Fabric:

sqlpackage /action:extract /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /targetfile:"C:\extracted.dacpac" /p:ExtractAllTableData=true  /p:ExtractReferencedServerScopedElements=false

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

  • /p:AllowIncompatiblePlatform=true อนุญาตให้มีการปรับใช้ .dacpac ของ ที่ถูกแยกออกจากแพลตฟอร์มอื่น (ตัวอย่างเช่น ฐานข้อมูล Azure SQL, SQL Server)
  • /p:ExcludeObjectTypes=Logins;Users ไม่รวมชนิดวัตถุที่อาจพบปัญหาความเข้ากันได้เมื่อเผยแพร่ไปยังฐานข้อมูล SQL ใน Fabric สําหรับรายการทั้งหมดของชนิดวัตถุที่สามารถแยกออกได้ ดูที่ การเผยแพร่ SqlPackage

คล้ายกับคําสั่งการนําเข้า SqlPackage ก่อนที่จะเผยแพร่ไปยัง .dacpac ฐานข้อมูล SQL ใน Fabric คุณจําเป็นต้องสร้างฐานข้อมูลใน Fabric คุณสามารถสร้างฐานข้อมูลผ่านพอร์ทัล Fabric หรืออินเทอร์เฟซ Fabric อื่น ๆ ได้ คําสั่งต่อไปนี้เผยแพร่การ .dacpac แยกไปยังฐานข้อมูล SQL ที่ว่างเปล่าใน Fabric:

sqlpackage /action:publish /sourcefile:"C:\extracted.dacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /p:AllowIncompatiblePlatform=true /p:ExcludeObjectTypes=Logins;Users