เปิดใช้งานการสมัครใช้งานที่ต่ออายุการจําลองแบบทรานแซคชันใน SQL Server 2019

วันที่สร้างเพจ :

การแนะนําและข้อควรระวัง

บทความนี้มีไว้สําหรับการจําลองแบบใน SQL Server 2019 หนึ่งในฟังก์ชั่นในนั้นคือ "การสมัครสมาชิกแบบต่ออายุได้" เปิดใช้งาน

คุณลักษณะนี้ถูกเปิดใช้งานตามค่าเริ่มต้นใน SQL Server รุ่นก่อนหน้า แต่ถูกปิดใช้งานตั้งแต่ (อาจ) 2017

SQL Server รุ่นในอนาคตอาจเอาคุณลักษณะนี้ออก ยกเว้นการอัพเกรดสภาพแวดล้อมที่มีอยู่เราขอแนะนําให้คุณแทนที่สําหรับการก่อสร้างใหม่ด้วยการจําลองแบบรวม

หนังสืออ้างอิง

สิ่งแวดล้อม

ใช้เซิร์ฟเวอร์สองตัว เซิร์ฟเวอร์หนึ่งตัว และ SQL Server สองตัว Windows Server อยู่ในสถานะที่ไม่มีการตั้งค่าเพิ่มเติมเกิดขึ้นทันทีหลังจากการติดตั้ง

หน่วยที่ 1 (ด้านสิ่งพิมพ์)
  • Windows Server 2019 รุ่นมาตรฐาน
  • รุ่นนักพัฒนา SQL Server 2019 (รุ่นมาตรฐานหรือสูงกว่า)
  • สตูดิโอการจัดการเซิร์ฟเวอร์ SQL 18.9.1
หน่วยที่สอง (ฝั่งสมาชิก)
  • Windows Server 2019 รุ่นมาตรฐาน
  • SQL Server 2019 รุ่นด่วน
  • สตูดิโอการจัดการเซิร์ฟเวอร์ SQL 18.9.1

วัตถุประสงค์

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

โดยวิธีการที่หนึ่งในด้านสิ่งพิมพ์ก็ดี แต่ด้านสมาชิกสามารถมีจํานวนหน่วยใดก็ได้ นอกจากนี้ยังทํางานร่วมกับ SQL Server หลายอินสแตนซ์บนเซิร์ฟเวอร์เดียว

กําลังติดตั้ง SQL Server

การติดตั้ง SQL Server ไม่ใช่ส่วนหลักของเคล็ดลับเหล่านี้ ดังนั้นฉันจะไม่ลงรายละเอียด เฉพาะผู้ที่เกี่ยวข้องกับการจําลองแบบเท่านั้นที่แสดงรายการไว้

การติดตั้งด้านสิ่งพิมพ์ต้องใช้รุ่นมาตรฐานหรือสูงกว่า เคล็ดลับนี้ติดตั้งรุ่นนักพัฒนาเป็นสภาพแวดล้อมการทดสอบ

สมาชิกสบายดีกับ Express Edition แน่นอนว่ารุ่นอื่น ๆ ก็ดีขึ้นอยู่กับการกําหนดค่า DB

สําหรับการเลือกคุณลักษณะ ให้เลือก บริการกลไกจัดการฐานข้อมูล และการจําลองแบบ SQL Server สิ่งนี้เหมือนกันสําหรับทั้งด้านสิ่งพิมพ์และด้านสมาชิก

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

ด้านสิ่งพิมพ์ ให้กําหนดค่า SQL Server Agent ให้เริ่มต้นโดยอัตโนมัติ คุณสามารถเปลี่ยนการตั้งค่านี้ได้ในภายหลัง

เคล็ดลับนี้รับรองความถูกต้องของการจําลองแบบด้วยบัญชี SQL Server sa ดังนั้น ให้เปิดใช้งานการรับรองความถูกต้องของ SQL Server ถ้าคุณไม่ต้องการใช้บัญชี SA ด้วยเหตุผลด้านความปลอดภัย ให้แทนที่ส่วนการรับรองความถูกต้องของ SQL Server ของคําอธิบายในภายหลังด้วยการรับรองความถูกต้องของ Windows หรือบัญชีผู้ใช้อื่น

ทําให้การตั้งค่านี้เหมือนกันบนเซิร์ฟเวอร์ทั้งสอง

กําลังติดตั้ง SQL Server Management Studio

ติดตั้ง SQL Server Management Studio ที่คุณดาวน์โหลด เนื่องจากหน้าจอการติดตั้งเป็นเพียงการติดตั้งคําอธิบายจึงถูกละไว้

รีสตาร์ท Windows หากคุณได้รับการพรอมต์ให้รีสตาร์ทหลังจากการติดตั้ง นอกจากนี้ ให้ติดตั้งโปรแกรมแก้ไขใดๆ ใน Windows Update ด้วย

การสร้างฐานข้อมูลและตารางด้านการประกาศ

ถ้าคุณสร้างตารางที่ด้านสิ่งพิมพ์ ด้านสมาชิกจะจําลองแบบตารางหรือระเบียนโดยอัตโนมัติ

วิธีการสร้างนั้นเหมือนกับขั้นตอนปกติดังนั้นฉันจะละเว้นรายละเอียด

คุณกําลังสร้างฐานข้อมูลที่ชื่อว่า Publication DB ใน SQL Server Management Studio

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

เพิ่มระเบียนสองสามระเบียนเพื่อให้แน่ใจว่าระเบียนนั้นได้รับการทําข้อมูลให้ตรงกันแล้วหลังจากสร้างการจําลองแบบแล้ว

การกําหนดค่าการเชื่อมต่อระยะไกล

กําหนดค่าให้อนุญาตให้มีการเข้าถึงระยะไกลไปยังฐานข้อมูลของเซิร์ฟเวอร์ของกันและกัน รายละเอียดสรุปได้ในเคล็ดลับต่อไปนี้

การตั้งค่าสิทธิ์ของโฟลเดอร์

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

  • C:\แฟ้มโปรแกรม\Microsoft SQL Server\MSSQL15. MSSQLSERVER\MSSQL\Repldata

จากแท็บความปลอดภัยให้เพิ่มบัญชี "SERVICE" และตั้งค่าเป็นควบคุมทั้งหมด

การตั้งค่าคอนฟิกการกระจาย

คราวนี้การกระจายจะถูกสร้างขึ้นบนเซิร์ฟเวอร์เดียวกันกับสิ่งพิมพ์

เริ่ม SQL Server Management Studio คลิกขวาที่ การจําลองแบบ แล้วเลือก กําหนดค่าการกระจาย

คลิก ถัดไป

ตรวจสอบ< "สร้างเซิร์ฟเวอร์ของคุณเอง>ผู้จัดจําหน่ายของคุณเอง"

หลังจากนั้นคลิก "ถัดไป" เนื่องจากจะทําให้เสร็จ

การสร้างสิ่งพิมพ์

แต่เดิมจะถูกสร้างขึ้นจากวิซาร์ดดังที่แสดงในรูปต่อไปนี้ ใน SQL Server 2019 การสร้างจากตัวช่วยสร้างจะไม่เปิดใช้งาน "การบอกรับสมาชิกแบบหมุนเวียน" และไม่อนุญาตให้ทําข้อมูลระเบียนให้ตรงกันระหว่างตาราง

ดังนั้นเราจึงใช้ T-SQL เพื่อสร้างสิ่งพิมพ์ที่นี่

ต่อไปนี้เป็น SQL สําหรับการสร้างสิ่งพิมพ์ที่มีการรับรองความถูกต้องของ SQL Server: กรุณาเปลี่ยนรหัสผ่านตามการตั้งค่าของคุณ

-- トランザクションパブリケーションを追加するための宣言
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'パブリケーションDB'; 
SET @publication = N'パブリケーション'; 
SET @login = 'sa'; 
SET @password = 'saパスワード'; 

USE [パブリケーションDB]

-- パブリケーションデータベースでトランザクションレプリケーションを有効にする。
EXEC sp_replicationdboption 
    @dbname=@publicationDB, 
    @optname=N'publish',
    @value = N'true';

-- sp_addlogreader_agent を実行して、エージェントジョブを作成します。
EXEC sp_addlogreader_agent 
    @publisher_login = @login, 
    @publisher_password = @password,
    @publisher_security_mode = 0;

-- 即時更新、キュー更新、およびプルサブスクリプションをサポートするトランザクションパブリケーションを作成します。
EXEC sp_addpublication 
    @publication = @publication, 
    @status = N'active',
    @allow_sync_tran = N'true', 
    @allow_queued_tran = N'true',
    @allow_pull = N'true',
    @independent_agent = N'true',
    -- 関連するデフォルトのプロパティを明示的に宣言する
    @conflict_policy = N'pub wins';

-- デフォルトのスケジュールを使用して、パブリケーションの新しいスナップショットジョブを作成します。
EXEC sp_addpublication_snapshot 
    @publication = @publication, 
    @publisher_login = @login, 
    @publisher_password = @password,
    @publisher_security_mode = 0;
GO

เมื่อใช้การรับรองความถูกต้องของ Windows ให้เปลี่ยนส่วน "sp_addlogreader_agent" และ "sp_addpublication_snapshot" ดังนี้

การรับรองความถูกต้องของเซิร์ฟเวอร์ SQL

    @publisher_login = @login, 
    @publisher_password = @password,
    @publisher_security_mode = 0;

การรับรองความถูกต้องของ Windows

    @job_login = @login, 
    @job_password = @password,
    @publisher_security_mode = 1;

ถ้าสร้างสําเร็จ คุณจะเห็นสิ่งต่อไปนี้

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

การระบุบทความ

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

เลือก "บทความ" จากเมนูทางด้านซ้ายตรวจสอบตารางที่คุณต้องการซิงโครไนซ์และคลิกปุ่มตกลง

msrepl_tran_versionจะถูกเพิ่มลงในคอลัมน์ของตารางที่จะทําข้อมูลให้ตรงกัน และทริกเกอร์ตารางจะถูกเพิ่มในเวลาเดียวกัน

สร้างการบอกรับเป็นสมาชิก

คลิกขวาที่สิ่งพิมพ์ที่คุณเพิ่งสร้าง แล้วเลือก การสมัครใช้งานใหม่

คลิก ถัดไป

เลือกสิ่งพิมพ์ที่คุณสร้าง

เลือก เรียกใช้ตัวแทนทั้งหมดในชื่อผู้จัดจําหน่าย <เซิร์ฟเวอร์>

คลิกปุ่ม เพิ่มสมาชิก SQL Server

ระบุเซิร์ฟเวอร์ (+ ชื่ออินสแตนซ์) เพื่อลงทะเบียนเป็นสมาชิก

ถ้าคุณไม่มีฐานข้อมูลสมาชิก ให้สร้างฐานข้อมูลใหม่ ถ้ามีอยู่แล้ว ให้เลือกรายการนั้นเนื่องจากรายการสิ่งที่เลือกถูกแสดง

หลังจากที่คุณระบุฐานข้อมูลแล้ว ให้คลิก ถัดไป

หากคุณมีสมาชิกมากกว่าหนึ่งคนคุณสามารถลงทะเบียนได้มากเท่าที่คุณต้องการที่นี่

คลิกปุ่ม "..."

ที่นี่ตัวแทนทํางานภายใต้บัญชี sa แต่โปรดตั้งค่าตามสภาพแวดล้อมของคุณ

เลือก เรียกใช้อย่างต่อเนื่อง

การตั้งค่า "การสมัครสมาชิกแบบต่ออายุได้" ควรใช้งานได้

ในกรณีของ "ยอมรับการเปลี่ยนแปลงในเวลาเดียวกัน" จะมีการทําข้อมูลให้ตรงกันทันที แต่เซิร์ฟเวอร์ทั้งหมดจะต้องทํางานอยู่

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

เลือก ใช้เซิร์ฟเวอร์ที่เชื่อมโยงหรือเซิร์ฟเวอร์ระยะไกลที่กําหนดไว้ล่วงหน้า

เลือกตอนนี้

คลิก ถัดไป

คลิกปุ่ม เสร็จสิ้น

ปิดถ้าไม่มีข้อผิดพลาด

หลังจากนั้นครู่หนึ่งคุณจะเห็นว่าฐานข้อมูลได้ถูกสร้างขึ้นในด้านสมาชิกและตารางได้ถูกสร้างขึ้นด้วย

คุณสามารถตรวจสอบว่ามีการทําข้อมูลเรกคอร์ดให้ตรงกันด้วย

หากไม่ซิงค์หลังจากผ่านไประยะหนึ่งโปรดทําดังต่อไปนี้

คลิกขวาที่การสมัครใช้งานที่สร้างขึ้น แล้วเลือก เริ่มต้นใหม่

เลือก "ใช้สแนปช็อตใหม่" และคลิกปุ่ม "ตั้งค่าให้เริ่มต้นใหม่"

ถ้ามีข้อผิดพลาดเกิดขึ้น ให้ลองอีกครั้ง

การตรวจสอบการดําเนินงาน

ลองเพิ่มหรือปรับเปลี่ยนตารางที่ด้านสิ่งพิมพ์

รอสองสามวินาทีหรือมากกว่านั้นเพื่อให้แน่ใจว่าได้ซิงค์กับสมาชิกแล้ว

ตอนนี้เรามาแก้ไขระเบียนในด้านสมาชิก

คุณสามารถตรวจสอบว่าได้ทําข้อมูลให้ตรงกันกับด้านสิ่งพิมพ์แล้ว

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