Oracle 內(nèi)存數(shù)據(jù)庫 TimesTen 是一個針對內(nèi)存進(jìn)行了優(yōu)化的關(guān)系數(shù)據(jù)庫,它為應(yīng)用程序提供了當(dāng)今實時企業(yè)和行業(yè)(如電信、資本市場和國防)所需的即時響應(yīng)性和非常高的吞吐量。(產(chǎn)品數(shù)據(jù)表)
Oracle 內(nèi)存數(shù)據(jù)庫 TimesTen 通過改變數(shù)據(jù)在運行時駐留位置的假設(shè)來提供實時性能。通過在內(nèi)存中管理數(shù)據(jù),并相應(yīng)地優(yōu)化數(shù)據(jù)結(jié)構(gòu)和訪問算法,數(shù)據(jù)庫操作能夠以最大效率執(zhí)行,從而大大提高響應(yīng)速度和吞吐量,甚至能夠與完全使用高速緩存磁盤的 RDBMS 相媲美。Oracle 內(nèi)存數(shù)據(jù)庫 TimesTen 可嵌入到應(yīng)用程序中,從而消除了進(jìn)程間通信和不必要的網(wǎng)絡(luò)操作,以進(jìn)一步提高數(shù)據(jù)庫操作的性能。
內(nèi)存數(shù)據(jù)庫通常被誤認(rèn)為僅限于單用戶應(yīng)用程序,并且容易在服務(wù)器發(fā)生故障時丟失數(shù)據(jù)。對于 Oracle 內(nèi)存數(shù)據(jù)庫 TimesTen 而言,事實并非如此。使用帶有提交后讀取 (committed-read) 隔離的行級鎖定機制,多用戶和多線程應(yīng)用程序變得很普通。通過內(nèi)部記錄版本消除了讀程序和寫程序之間的鎖爭用,從而提供了一致的響應(yīng)時間和高級別的并發(fā)。 Oracle TimesTen 數(shù)據(jù)庫是持久的且可恢復(fù)。 應(yīng)用程序可以根據(jù)其性能要求選擇事務(wù) ACID 屬性的設(shè)置。 根據(jù)標(biāo)準(zhǔn)關(guān)系數(shù)據(jù)模型,可以使用 SQL、JDBC 和 ODBC 訪問 Oracle TimesTen 數(shù)據(jù)庫。 任何熟悉 RDBMS 和 SQL 接口的開發(fā)人員使用 Oracle 內(nèi)存數(shù)據(jù)庫 TimesTen 可以立即提高開發(fā)實時應(yīng)用程序的效率。
Oracle 內(nèi)存數(shù)據(jù)庫 TimesTen 支持各種部署配置以適應(yīng)各種情況,從臨時查找緩存到操作數(shù)據(jù)存儲、再到任務(wù)關(guān)鍵的事務(wù)處理系統(tǒng)。
由于應(yīng)用程序的任務(wù)關(guān)鍵特性,大多數(shù)部署都添加了 Replication - TimesTen to TimesTen 選件以實現(xiàn)高可用性和負(fù)載平衡。對于應(yīng)用程序?qū)泳彺妫ㄈ鐚γ嫦蚍?wù)的體系結(jié)構(gòu)的支持),Cache Connect to Oracle 選件可將內(nèi)存數(shù)據(jù)庫擴展成一個可更新的緩存,從而管理 Oracle 數(shù)據(jù)庫與 Oracle 內(nèi)存數(shù)據(jù)庫 TimesTen 之間的數(shù)據(jù)加載和同步。
TimesTen作為一個內(nèi)存數(shù)據(jù)庫,數(shù)據(jù)完全放置在內(nèi)存中,那么它的數(shù)據(jù)持久性如何保持?以及如何實現(xiàn)高可用性保證的呢?
TimesTen的數(shù)據(jù)持久性是通過磁盤上的DataStore文件和Log文件保持的。TimesTen每一次操作,都會先緩存在內(nèi)存的LogBuffer中,然后由后臺的守護(hù)進(jìn)程異步地同步到磁盤上的Log文件中。TimesTen每隔一段時間或者收集到一定的臟日志量后,就觸發(fā)一次Checkpoint,將內(nèi)存中變化的數(shù)據(jù)增量寫到磁盤上的DataStore文件中,然后清除掉已經(jīng)同步過的Log文件。所以當(dāng)?shù)綦?,或者其它故障時,TimesTen可以通過這些文件進(jìn)行自動恢復(fù)。
至于高可用性保證,如果是單節(jié)點,不想有任何的數(shù)據(jù)丟失,TimesTen可以通過設(shè)置參數(shù)DurableCommits =1來保證,即每次提交都強制性同步到磁盤上(缺省為異步方式),這種情況下,數(shù)據(jù)庫寫的性能會受到影響。所以如果既想保持高性能,又能保證數(shù)據(jù)的高可用性,TimesTen通過Replication機制完美地達(dá)到了上述兩點,通過Replication,TimesTen在多個節(jié)點的之間保持?jǐn)?shù)據(jù)的自動高效同步。節(jié)點之間由多種復(fù)制模式可以選擇:Active-Standby,Active-Active,Active-Standby-Disaster Recovery等等;數(shù)據(jù)的傳送模式也有同步、半同步、完全同步等三種模式。
TimesTen主要的四個用途:
1)主數(shù)據(jù)庫:為實時應(yīng)用提供服務(wù)的主數(shù)據(jù)庫。這時候它和別的關(guān)系型數(shù)據(jù)庫一樣,作為整個應(yīng)用系統(tǒng)中的一塊:后臺數(shù)據(jù)庫,提供對數(shù)據(jù)的檢索和更新功能。
2)實時數(shù)據(jù)管理:這時候TimesTen 和傳統(tǒng)的數(shù)據(jù)庫結(jié)合在一起,實時的數(shù)據(jù)存儲在TimesTen中,而大量的數(shù)據(jù)還是存儲在Oracle中,TimesTen和Oracle之間通過Cache Group來進(jìn)行數(shù)據(jù)的交互。
3)消息中轉(zhuǎn):這時候TimesTen作為一個消息的中轉(zhuǎn)站,可以在不同的應(yīng)用之間架設(shè)一個消息傳遞的橋梁;不同的應(yīng)用通過TimesTen,以消息的形式來進(jìn)行數(shù)據(jù)的交互。
4)數(shù)據(jù)整合點
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

