Availability-Groups
單個 VM 上的 Always On 可用性組
有沒有辦法在單個虛擬伺服器上使用 SQL Server 2019 Enterprise Edition 實施 Always On 可用性組。
目標不是擁有任何 HA 或 DR 功能,而只是 Read-Scale 作為一種將讀取操作分發到第二個副本的方法。想法是在同一虛擬伺服器上擁有兩個或更多實例,每個實例都有一部分 RAM 分配基於讀取與寫入所經歷的負載。每個 SQL 實例的記憶體不會那麼混亂,發生的鎖定等也會更少,並且即使使用單個伺服器,性能也會有所提高。
嘗試對同一伺服器上的兩個實例執行此操作時,SQL 在 AG 創建嚮導中抱怨副本節點的名稱包含相同的基本伺服器名稱,即使有兩個單獨的實例。本質上,它將實例名稱的基本伺服器名稱解釋為“節點”(即使讀取擴展的設置不需要 WSFC 節點設置),因此不允許在同一節點上創建副本。
有沒有解決的辦法?
謝謝!
當實例在同一台伺服器上時,我嘗試的腳本沒有成功:
CREATE AVAILABILITY GROUP [TEST_AG1] WITH ( AUTOMATED_BACKUP_PREFERENCE = SECONDARY, DB_FAILOVER = ON, DTC_SUPPORT = NONE, CLUSTER_TYPE = NONE ) FOR DATABASE [Northwind] REPLICA ON N'ROBSWS2019\SQLA' WITH ( ENDPOINT_URL = N'TCP://ROBSWS2019.AUSTINLANE.local:5022', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SECONDARY_ROLE(ALLOW_CONNECTIONS = NO) ), N'ROBSWS2020\SQLB' WITH ( ENDPOINT_URL = N'TCP://ROBSWS2020.AUSTINLANE.local:5022', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, BACKUP_PRIORITY = 50, SECONDARY_ROLE(ALLOW_CONNECTIONS = NO) ); GO
我絕對理解 Lee 和 Rodrigo 的評論,非常感謝您向我指出這些額外的資源。我認為您的觀察通常是正確的。
但是,我發現了一種可能會在這項工作中取得成果的方法。Rafael Rodriguez 通過使用 Docker 容器實現了這一點。他有一篇關於他如何完成AOAG Read-Scale Clusterless的文章。
他還在一個git 儲存庫中擁有整個項目。
我下載了它並在我的 Win10 工作站上的 Docker 中啟動它。我能夠從 SSMS 連接到兩個實例,將表添加到主副本,然後看到它顯示在輔助副本中!
我認為這基本上回答了這個問題。我的下一步是設置我的案例的詳細資訊,並確定測試策略以獲取基準和性能改進數據。我會嘗試迴圈並發布任何結果。
感謝大家幫助我推進這個項目!聖誕節快樂!!!