1

我有一個SQL Server 2012數據庫,當前用作事務數據庫和報告數據庫。應用程序讀取/寫入同一個數據庫,並且還針對同一個數據庫生成報告。日誌傳送vs Replciation與鏡像在SQL Server 2012中

由於某些性能問題,我決定維護數據庫的兩個副本。一個將是應用程序將訪問的交易數據庫。另一個數據庫將是交易數據庫的確切副本,並且只能由報告服務使用。

以下是要求:

  1. 報告數據庫應當與事務性數據庫中每隔一小時進行同步。也就是說,報告數據庫最多可以有1小時的陳舊數據。

  2. 它必須是隻讀數據庫。

  3. 主要內容不是恢復或可用性。

我不確定哪種策略,事務日誌傳送,鏡像或複製,最適合我的情況。同樣,如果我更頻繁地進行同步操作(例如每10分鐘進行一次),交易數據庫或報告服務是否會受到影響?

謝謝

+0

檢查出**的AlwaysOn **技術 - 它主要是爲了高可用性,但它可以與數據庫的副本**,也可用於報告等。 – 2015-02-24 06:09:18

回答

0

我強烈建議您在只讀狀態下使用備用數據庫。每隔15分鐘,您的sqlserveragent就會有一個預定的工作:a)在主數據庫中生成一個新的.trn日誌文件,並且b)將它恢復到備用數據庫(您的報告數據庫)。唯一的問題是:使用這種技術,當代理恢復.trn日誌文件時,會話將被斷開連接。但是,如果您可以停止還原作業,運行報告並重新激活它,則不存在任何問題。似乎正是你所需要的。或者,如果您的報告運行速度很快,可能不會斷開連接...如果沒有錯誤,還可以將還原作業配置爲等待已打開的會話完成或關閉它。我可以檢查它最後這無疑爲你的明天,如果你沒有找到..

一旦在同一個SQL Server實例上運行,你不必擔心額外的許可......

+0

我已經確認,是的,你可以選擇如果你想斷開只讀或不讀的活動用戶。正如你可以在給定的截圖中看到複選框(取消選中):http://www.sqlshack.com/wp-content/uploads/2014/03/SecondaryDatabaseSettingsDBState.png – 2015-12-03 15:38:07