Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

การตั้งค่า Transactional Replication แบบเร็วสำหรับฐานข้อมูล SQL ขนาดใหญ่

บทนำ

บล็อกนี้สาธิตขั้นตอนโดยละเอียดที่จำเป็นในการตั้งค่า transactional replication โดยใช้ backup เพื่อ initialize subscriptions โดยไม่ต้องทำ snapshot สำหรับทุก articles เนื่องจากเรารู้ว่าตัวเลือก snapshot ใช้เวลานานสำหรับฐานข้อมูลขนาดใหญ่

บทนำ

การตั้งค่า transactional replication สำหรับฐานข้อมูล SQL Server ขนาดใหญ่มากเป็นงานใหญ่ โดยทั่วไป คุณจะตั้งค่า transactional replication บนฐานข้อมูลใดๆ โดยการสร้าง snapshot โดยไม่คิดว่าจะใช้เวลานานแค่ไหน และพื้นที่ดิสก์สำหรับ snapshot folder เพื่อหลีกเลี่ยงเวลานานมากในการสร้าง initial snapshot และ reinitialize Subscribers ในบล็อกนี้ คุณจะสำรวจวิธีง่ายๆ ในการ initialize subscriber จาก SQL database backup

มาเริ่มขั้นตอนโดยละเอียดของการตั้งค่า:

เพื่อตั้งค่า transactional replication - ขั้นแรก คุณต้องกำหนดค่า Distributor ใน lab นี้ ผมได้กำหนดค่า Distributor แล้ว และลิงก์อ้างอิงต่อไปนี้คือวิธีกำหนดค่า Distributor

https://docs.microsoft.com/en-us/sql/relational-databases/replication/configure-publishing-and-distribution?view=sql-server-ver15

ภาพรวมขั้นตอนกระบวนการ:

• Create Publication.

• Modify Publication Properties.

• Backup the Publisher database.

• Restore the backup on the subscriber database.

• Create Subscription ผ่าน T-SQL เนื่องจาก GUI ไม่รองรับ initialization จาก database backup

ในสถานการณ์นี้ Transactional Replication จะถูกกำหนดค่าด้วยรายละเอียดต่อไปนี้

  • Publisher + Distributor: Node1
  • Subscriber: Node2
  • Publisher Database: ABC_Pub
  • Subscriber Database: ABC_Sub
  • Publication: ABC_Pub_Bkp
  • Subscription: ABC_Sub_Bkp

ขั้นตอนที่ 1: สร้าง Publication โดยเลือกฐานข้อมูลสำหรับ replication

Publisher Database: ABC_Pub

ขั้นตอนที่ 2: เลือกประเภท publication และตารางที่มีส่วนร่วมใน replication

Select Articles to replicate:

ขั้นตอนที่ 3: ในกรณีของเรา เราใช้ไฟล์ backup ฐานข้อมูลแทน snapshot ดังนั้นเราจะเว้นว่างไว้และคลิก next ตามภาพถ่ายต่อไปนี้

Created publication- ABC_Pub_Bkp

ขั้นตอนที่ 4: ตั้ง 'Allow initialization from backup files' เป็น true

Form T-SQL:

From GUI: บน Publication Properties เลือก Subscription Options และตั้ง "Allow initialization from backup files" เป็น "true" และคลิก Ok เพื่อบันทึกการเปลี่ยนแปลง

ขั้นตอนที่ 5: ปิดใช้งาน Distribution cleanup SQL Server job (คลิกขวาที่ชื่อ job และคลิก Disable):

เป็นข้อบังคับที่ต้องปิด job ก่อนทำ backup ขั้นตอนถัดไป หากไม่ทำ อาจเกิดข้อผิดพลาดดังต่อไปนี้

ขั้นตอนที่ 6: ทำ database backup จาก Publisher

ขั้นตอนที่ 7: กู้คืน backup บน subscriber server

ขั้นตอนที่ 8: รัน sp_addsubscription บน Publication database โดยส่งผ่านพารามิเตอร์ที่กล่าวถึงในภาพถ่ายต่อไปนี้

ขั้นตอนที่ 9: หลังจากขั้นตอนอื่นๆ เสร็จสิ้น ให้เปิดใช้งาน Distribution cleanup job

ขั้นตอนที่ 10: ตอนนี้ตรวจสอบสถานะ replication โดยใช้ SSMS ภายใต้ replication → Replication Monitor

เราเห็นว่า performance แสดงสถานะ excellent และไม่มี Snapshot agent ถูกสร้างในกระบวนการทั้งหมด เนื่องจากเราใช้ backup file เพื่อ initialize

สรุป

Initialization จาก database backup files แก้ปัญหาหลายอย่างเมื่อพยายามซิงค์ฐานข้อมูลขนาดใหญ่ แต่ก็สร้างปัญหาใหม่บ้าง ปัญหาเหล่านี้สามารถแก้ได้ด้วยการวางแผน และหวังว่าบทความนี้จะช่วยทำให้กระบวนการง่ายขึ้น

ใช้แท็บ Feedback เพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถเริ่มสนทนากับเราได้