一、oracle怎么樣實現數據庫跨機房同步
除了使用第三方工具,Oracle提供了extended cluster可以實現類似的功能,使用Oracle RAC + ASM。簡單說下這個。
1. 兩邊的主機需要同時訪問到兩邊的存儲。
2. 創建normal redundancy 的diskgroup,把來自兩個存儲的磁盤分別放入兩個failuregroup中。這樣,來自一個存儲的數據鏡像一定存在另外一個存儲中。
3. 分別在兩邊的ASM實例上設置參數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. 兩邊的實例訪問同一個數據庫,所有數據塊在本地存儲有完整的一份。
2. 讀操作只發生在本地存儲。
3. 寫操作需要本地和遠端全部完成才返回。
4. 任何一邊完全down掉,都不會影響另一邊。
所以,如果你的存儲網絡夠快,針對寫操作不是很頻繁的系統,還是行得通的,是個選擇。
另外,應用需要很好的規劃,較好從兩個節點分別訪問不同的數據集合,盡量減少cache fusion。 微調一些參數,比如可以更好利用read mostly等特性,減少網絡傳輸。
國外的應用相對多一點。國內很少見,具體效果,有待考證。
延伸閱讀:
二、什么是數據庫和數據庫管理系統
數據庫的應用非常廣泛,舉個例子,我們平時在瀏覽器上搜索內容,就要用到數據庫去檢索我們的關鍵字。以前我們可能會用數組、集合、文件等來存儲數據,但是接下來我們就會面臨一個問題,當存儲的數據或內容過多的時候,我們如何去精準的找到我們需要的東西,這時候數據庫管理系統就派上了用場。除此之外,數據庫管理系統還能永久的儲存我們的數據。
為了便于大家理解,這里先給大家講解幾個概念
DB數據庫(database):存儲數據的“倉庫”。它保存了一系列有組織的數據。
DBMS數據庫管理系統(Database Management System):數據庫是通過DBMS創建和操作的容器。