SQL - 現有數據庫之間的事務複製
我想重新配置 Dynamics AX 2012 SQL Server 以提高現有體系結構的性能,其中一個 SQL 伺服器用於事務和報告。這會降低峰值負載期間的 SQL 性能(生成大型 MIS 報告)。
在建議的架構中,事務 SQL 複製到報告 SQL 以分擔負擔並提高性能。我選擇事務複製來實現這一點。但是,問題來了:
- 因為我使用的是 SQL 標準,所以我可以選擇所有表而不是所有視圖和 SP 進行複制,因為其中一些包含索引鍵並且需要 SQL Enterprise。
- 如果我不複製所有視圖和 SP,則 AX 無法辨識報表 SQL。
是否可以將備份從事務 SQL 還原到報表 SQL(包含所有表、視圖和 SP),然後啟用事務複製以僅複製表?
或者,我應該只使用 SQL STD 中的基本始終線上可用性組並設置只讀副本嗎?
還是有更聰明的:) 解決方法?
預先感謝您的幫助。
根據您對數據延遲的要求,您可以使用日誌傳送在另一台伺服器(或同一台伺服器)上創建數據庫的只讀報告副本。
有一些缺點,數據不是實時的,因為它僅與上次日誌還原一樣新,並且每次發生日誌還原都會斷開使用者與輔助數據庫的連接,但如果您不需要真正的時間數據報告這可能是一個簡單的解決方案。
如果您確實需要實時報告,您可以為您的表設置事務複製並簡單地編寫您的視圖和 SP 並手動將它們應用到您的訂閱者數據庫。您甚至可以將其用作初始化後的腳本,以便在重新初始化訂閱者後執行。
如果複製數據的唯一目的是報告,那麼我建議僅將報告實際需要的對象複製到訂閱者數據庫。這減少了訂閱者所需的資源,並減少了諸如初始化訂閱之類的事情所需的時間。
如更新的螢幕截圖中所述,您收到的警告僅與 SQL Server 的舊版本 2000 版有關。正如您在評論中提到的,您正在執行 SQL Server 2016(標準版)。您絕對可以毫無問題地複制索引視圖。(一些深入的研究也證實了這一點,並且說即使對於 SQL Server 2000 中的複制來說,這也可能不是問題。)
我建議繼續使用事務複製,這是我過去出於性能和自定義原因將 Dynamics AX 2012 解除安裝到輔助報告伺服器的一種方式。
我曾經遇到的唯一痛點是,如果我們向 AX 數據庫本身(在發布者端)添加某些自定義項,我們將不得不刪除並重新創建複製發布,我們使用 SSMS 自動生成腳本。但是從 SQL Server 2014 開始,複製支持在正確編寫腳本時刪除表文章,因此這甚至可能不再是問題。