一位同事和我正在研究一些藥房軟件(用C#),它處理病人檔案,患者藥物處方等的管理。所有這些不同的數據集存儲在一個sql服務器數據庫中(我們「重新使用2008標準,但未來的版本也可以)。每個商店在本地機器上都有自己的sql server實例。遠程提供sql server實例的最佳方法?鏈接服務器或複製?其他?
我們的目標:
我們希望有「存儲」能夠訪問「商店B的」數據庫如果需要的話。基本上,如果藥房客戶可能不在城裏,並且訪問其他藥房分支之一。
事情我已經想到了:
我最初的想法是,以基本保持這可以通過指定的DNS連接(或者IP)來訪問SQL Server的在線服務器實例。我試圖找出保持這些同步的最佳方式,並且我遇到了SQL Server複製。問題是我打算使用Transactional Replication來更新訂閱者,但是因爲它已經被棄用了,這不再是一個長期的選擇。微軟建議使用p2p複製,但這需要企業版,如果可以的話,我們真的試圖避免這種情況。我想使用事務型複製,因爲它能更好地保持記錄的一致性(不必等待合併代理作業每小時運行一次或類似的東西)。
我最近想到的一些東西可能是基於互聯網的sql服務器實例,它只包含連接的服務器,而不包含連接到每個商店本地計算機的服務器。如果其他商店只是直接處理彼此的本地機器,我就不必擔心同步問題。但是我讀過很多人說這是一個可怕的安全漏洞,所以我不確定這是否是一個合理的想法,但我想也許有一些方法可以使這項工作成爲可能?
無論如何,這是我們正在嘗試做的基本要點。我不知道複製或連接的服務器是否是更好的路線。
編輯:
雙向複製怎麼樣?我正在讀一點關於這個,但我有點不確定,如果這是我需要或不需要。我不希望在服務器之間或任何東西之間錯開主鍵,因爲它們在識別處方號碼和類似的東西時非常重要。但是如果我可以進行雙向複製,那也可以。
每個位置是否需要本地數據庫?有一個數據庫服務器可以遠程連接嗎?這些不同的商店位於共享網絡上還是需要上網以建立聯繫? – liebs19
是的,我們希望每個商店都有一個本地數據庫。在互聯網出現故障或變得非常緩慢的情況下,我們不希望這能夠影響商店爲客戶提供服務的能力。但是,沒有他們必須通過互聯網連接一些方法,他們之間沒有共享網絡。你可以加入不同城市的計算機之間的共享網絡嗎? –
你可以有一個共享網絡,但我相信它需要你的isp直接連接。我不是100%確定這是如何設置的。我有一些關聯服務的經驗,他們工作得很好,但我從來沒有通過互聯網完成,所以我不確定安全方面。我也不確定在互聯網上設置這種複製有多困難,或者是否會有任何安全風險。我認爲你的任何想法都可行,對不起,我不能提供更多幫助。 – liebs19