ตรวจสอบการซิงค์ข้อมูลระหว่างฐานข้อมูล SQL Server สองฐานข้อมูล

เรามีฐานข้อมูลเซิร์ฟเวอร์ SQL สองแห่ง เซิร์ฟเวอร์ต้นทางมีข้อมูลที่เติมจากระบบภายนอกและฐานข้อมูลปลายทางบนเซิร์ฟเวอร์ระยะไกล (ใช้โดยเว็บแอป) มีแพ็คเกจ SSIS ซึ่งแมปคอลัมน์จากตารางต้นทางไปยังปลายทาง (ชื่อคอลัมน์ต่างกัน) และเติมข้อมูลเพื่อรักษาการซิงค์

ตอนนี้ เพื่อให้แน่ใจว่าฐานข้อมูลทั้งสองซิงค์กันซึ่งเรามี SP ซึ่งแสดงจำนวนบันทึก และสำหรับความสัมพันธ์หลัก-รอง จะแสดงจำนวนรองสำหรับบันทึกหลักแต่ละรายการ (เช่น จำนวนรายการ Brandwise) มีคนต้องล็อกออนเข้าสู่เซิร์ฟเวอร์ทั้งสอง รัน SP และรับข้อมูลด้วยตนเอง จากนั้นเปรียบเทียบผลลัพธ์เพื่อให้แน่ใจว่าฐานข้อมูลทั้งสองซิงค์กัน

ตอนนี้ เพื่อให้กระบวนการนี้เป็นอัตโนมัติ เราได้ดำเนินการดังต่อไปนี้-

  1. เพิ่มเซิร์ฟเวอร์ปลายทางเป็น "เซิร์ฟเวอร์ที่เชื่อมโยง"
  2. ใช้ "EXEC msdb.dbo.sp_send_dbmail" พร้อมด้วย "@attach_query_result_as_file =1"
  3. สร้างงาน SSIS ซึ่งจะรันอีเมล SP สำหรับเซิร์ฟเวอร์ทั้งสอง

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

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


person Hemant Tank    schedule 11.08.2012    source แหล่งที่มา


คำตอบ (2)


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

โปรดตรวจสอบสิ่งนี้

คุณสามารถแก้ไขงาน SSIS เพื่อส่งอีเมลตามผลลัพธ์แบบสอบถามนี้ได้

person Pradeeshnarayan    schedule 11.08.2012

ฉันใช้แบบสอบถามต่อไปนี้ซึ่งเป็นเวอร์ชันเรียบง่ายและให้ความแตกต่างทั้งสองด้านแก่ฉัน -

(Select s.Title, s.Description from ERPMasterBrand as s   EXCEPT
Select d.Title, d.Description from MasterBrand as d)
UNION
(Select s.Title, s.Description from MasterBrand as s      EXCEPT
Select d.Title, d.Description from ERPMasterBrand as d)

มีข้อเสนอแนะที่ดีกว่านี้ไหม? ฉันได้ทดสอบแล้วและให้ผลลัพธ์ที่ต้องการ - หวังว่าฉันจะไม่ถูกเข้าใจผิด :-) ด้วยวิธีแก้ปัญหาของฉันเอง

person Hemant Tank    schedule 13.08.2012