分布式數(shù)據(jù)庫(kù) SQLSERVER數(shù)據(jù)雙向同步,該怎么解決?
SQLSERVER數(shù)據(jù)雙向同步,該怎么解決?我們以前嘗試過三種跨機(jī)房解決方案:1。機(jī)房a定期備份數(shù)據(jù)庫(kù)日志,同步到機(jī)房B后恢復(fù)日志文件,這會(huì)導(dǎo)致數(shù)據(jù)庫(kù)在高并發(fā)請(qǐng)求時(shí)無法恢復(fù),因?yàn)閿?shù)據(jù)庫(kù)中總是有連接的線
SQLSERVER數(shù)據(jù)雙向同步,該怎么解決?
我們以前嘗試過三種跨機(jī)房解決方案:
1。機(jī)房a定期備份數(shù)據(jù)庫(kù)日志,同步到機(jī)房B后恢復(fù)日志文件,這會(huì)導(dǎo)致數(shù)據(jù)庫(kù)在高并發(fā)請(qǐng)求時(shí)無法恢復(fù),因?yàn)閿?shù)據(jù)庫(kù)中總是有連接的線程,只有被殺死后才能恢復(fù)。但是,在kill之后,會(huì)有一個(gè)新的客戶端連接,因此會(huì)導(dǎo)致恢復(fù)困難。
2. 使用sqlserver的復(fù)制方案,可以發(fā)現(xiàn)跨機(jī)房情況下的性能較差。所以放棄吧。
3. 該方法利用程序邏輯隊(duì)列進(jìn)行同步。將a機(jī)房的數(shù)據(jù)庫(kù)操作文本放入隊(duì)列,然后從B機(jī)房取出執(zhí)行。該方案中有許多詳細(xì)的邏輯問題需要考慮到位,否則在異常情況下可能很難處理。但已經(jīng)使用半年了,比較穩(wěn)定,基本可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)的及時(shí)同步。