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