一、oracle怎么樣實現(xiàn)數(shù)據(jù)庫跨機房同步
除了使用第三方工具,Oracle提供了extended cluster可以實現(xiàn)類似的功能,使用Oracle RAC + ASM。簡單說下這個。
1. 兩邊的主機需要同時訪問到兩邊的存儲。
2. 創(chuàng)建normal redundancy 的diskgroup,把來自兩個存儲的磁盤分別放入兩個failuregroup中。這樣,來自一個存儲的數(shù)據(jù)鏡像一定存在另外一個存儲中。
3. 分別在兩邊的ASM實例上設(shè)置參數(shù)ASM_PREFFERED_READ_FAILURE_GROUPS,指向本地的failure group。
4. 針對存放voting file和ocr的diskgroup,需要3個failure group的。因此,除了把兩個failure group分別存放在兩個存儲上,需要再建一個quorum failure group在第三個位置,nfs即可。空間不用很大,因為quorum只存voting file,仲裁時才會被使用。
實際工作原理:
1. 兩邊的實例訪問同一個數(shù)據(jù)庫,所有數(shù)據(jù)塊在本地存儲有完整的一份。
2. 讀操作只發(fā)生在本地存儲。
3. 寫操作需要本地和遠端全部完成才返回。
4. 任何一邊完全down掉,都不會影響另一邊。
所以,如果你的存儲網(wǎng)絡(luò)夠快,針對寫操作不是很頻繁的系統(tǒng),還是行得通的,是個選擇。
另外,應用需要很好的規(guī)劃,較好從兩個節(jié)點分別訪問不同的數(shù)據(jù)集合,盡量減少cache fusion。 微調(diào)一些參數(shù),比如可以更好利用read mostly等特性,減少網(wǎng)絡(luò)傳輸。
國外的應用相對多一點。國內(nèi)很少見,具體效果,有待考證。
延伸閱讀:
二、什么是數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng)
數(shù)據(jù)庫的應用非常廣泛,舉個例子,我們平時在瀏覽器上搜索內(nèi)容,就要用到數(shù)據(jù)庫去檢索我們的關(guān)鍵字。以前我們可能會用數(shù)組、集合、文件等來存儲數(shù)據(jù),但是接下來我們就會面臨一個問題,當存儲的數(shù)據(jù)或內(nèi)容過多的時候,我們?nèi)绾稳ゾ珳实恼业轿覀冃枰臇|西,這時候數(shù)據(jù)庫管理系統(tǒng)就派上了用場。除此之外,數(shù)據(jù)庫管理系統(tǒng)還能永久的儲存我們的數(shù)據(jù)。
為了便于大家理解,這里先給大家講解幾個概念
DB數(shù)據(jù)庫(database):存儲數(shù)據(jù)的“倉庫”。它保存了一系列有組織的數(shù)據(jù)。
DBMS數(shù)據(jù)庫管理系統(tǒng)(Database Management System):數(shù)據(jù)庫是通過DBMS創(chuàng)建和操作的容器。