『壹』 資料庫是隨機讀寫還是連續讀寫
資料庫復制被用來把事務性查詢導致的變更同步到集群中的從資料庫。
對於大訪問量的網站,一般會採用讀寫分離,比如ebay的讀寫比率是260:1,也就是大型的電子商務網站的。
網上看到說採用讀寫分離有如下工具:
1,oracle的logical standby
2, Quest公司的SharePlex
3, DSG公司的RealSyncMysqlReplication可以將master的數據復制分布到多個slave上,然後可以利用slave來分擔master的讀壓力。那麼對於前台應用來說,就要考慮如何將讀的壓力分布到多個slave上。如果每個應用都需要來實現讀寫分離的演算法,一則成本太高,二來如果slave增加更多的機器,應用就要隨之修改。明顯的,如果在應用和資料庫間加一個專門用於實現讀寫分離的中間層,則整個系統的架構擁有更好的擴展性。MySQL
Proxy就是這么一個中間層代理,簡單的說,MySQL
Proxy就是一個連接池,負責將前台應用的連接請求轉發給後台的資料庫,並且通過使用lua腳本,可以實現復雜的連接控制和過濾,從而實現讀寫分離和負載平衡。對於應用來說,MySQL
Proxy是完全透明的,應用則只需要連接到MySQL
Proxy的監聽埠即可。
『貳』 什麼是資料庫的讀寫分離
資料庫復制被用來把事務性查詢導致的變更同步到集群中的從資料庫。 對於大訪問量的網站,一般會採用讀寫分離,比如ebay的讀寫比率是260:1,也就是大型的電子商務網站的。 網上看到說採用讀寫分離有如下工具: 1,oracle的logical standby 2, Quest公司的SharePlex 3, DSG公司的RealSyncMySQLReplication可以將master的數據復制分布到多個slave上,然後可以利用slave來分擔master的讀壓力。那麼對於前台應用來說,就要考慮如何將讀的壓力分布到多個slave上。如果每個應用都需要來實現讀寫分離的演算法,一則成本太高,二來如果slave增加更多的機器,應用就要隨之修改。明顯的,如果在應用和資料庫間加一個專門用於實現讀寫分離的中間層,則整個系統的架構擁有更好的擴展性。MySQL Proxy就是這么一個中間層代理,簡單的說,MySQL Proxy就是一個連接池,負責將前台應用的連接請求轉發給後台的資料庫,並且通過使用lua腳本,可以實現復雜的連接控制和過濾,從而實現讀寫分離和負載平衡。對於應用來說,MySQL Proxy是完全透明的,應用則只需要連接到MySQL Proxy的監聽埠即可。
『叄』 oracle adg是實時同步還是可以控制
隨著Oracle ADG的出現,Oracle在讀寫分離的支持上又進一步了,可以在延遲很少的情況下提供讀,而且不會出現復制錯誤或者數據不一致的問題。
Active Dataguard Reader Farm架構至少存在以下優勢:
1. 管理維護簡單,DBA只要熟悉Dataguard的管理即可,無需再額外學習其他方面的新知識;
2. Active Dataguard Reader Farm節點是靈活可擴展的,可以在線添加或者刪除節點,並且可以線性擴展而不對生產系統造成影響;
3. 可以真正做到實時查詢,不會應為大事務造成同步阻塞,性能有保障;
4. 沒有數據類型的限制;
5. 高可用性, 節點的宕機都不會影響到資料庫的可用性。
但是同時也需要注意:
1. Active Dataguard是11g資料庫單獨的一個option,需要單獨付費的。
2. 無法在Active Dataguard Reader Farm節點單獨創建索引進行查詢優化。
3. 在所有Active Dataguard Reader Farm節點上sql的執行計劃最好保持一致。
『肆』 資料庫的讀寫分離資料庫是怎麼同步的
mysql
最常用的主從復制就是讀寫分離的功能
數據有修改,會通過網路將執行的內容傳輸到從庫,追加到從庫的重做日誌(replay-bin),然後再通過重做日誌還原主庫的操作以達到同步的效果
---------------------------------------
oracle
常用的讀寫分離方案有DG(備庫可讀)
操作寫入archivelog,再通過網路傳輸到備庫,備庫再用archivelog還原數據,已到達同步的目的。
『伍』 Oracle的讀寫分離在應用程序層面上應該怎麼做
oracle資料庫本身就是讀寫分離的。如果是防止臟讀,那麼直接用一個庫就可以了。
如果你是想把大查詢放到從庫,實時業務放主庫,防止查詢影響主庫效率,那最簡單的就是把你的查詢鏈接資料庫連到從庫上,甚至可以配一個server,先嘗試連從庫,從庫連不上連主庫。
『陸』 Oracle的讀寫分離在應用程序層面上應該怎麼做
簡單的來說,就是配置兩個資料庫連接,
一個連接主資料庫,一個連接從資料庫。
讀的時候去從庫,寫的時候去主庫。
但是具體實現起來一般是用中間件技術,在具體應用和資料庫之間再做一層中間件
負責負載均衡和讀寫分離,或者失敗切換的,實現對應用透明。
我們公司的中間件是自己寫的,oracle有個融合中間件,沒有具體研究過,不知道可不可以實現這個功能!
『柒』 企業里用了哪些Oracle技術
1、oracle資料庫,企業裡面大量使用的rac技術來保障資料庫的高可用性
2、oracle伺服器,包括資料庫一體機,以及原來兼並sun的伺服器,使用sun cluster
3、java平台,這個現在是使用比較廣泛的開發類語音
4、oracle虛擬化技術,這個有些企業也在使用,就是雲平台。
『捌』 如何實現Oracle資料庫的讀寫分離
一般都會以oracle DG的方式實現,主庫主要就是寫入數據,然後通過日誌抄送的方式到備庫,然後備庫以只讀模式打開。不過備用庫以只讀模式打開對資料庫的版本有要求,好像低版本的資料庫沒有這個功能。
『玖』 什麼叫讀寫分離讀是RAID幾寫又是RAID幾
讀寫分離(Read/Write Splitting)」,基本的原理是讓主資料庫處理事務性查詢,而從資料庫處理SELECT查詢。資料庫復制被用來把事務性查詢導致的變更同
步到集群中的從資料庫。
對於大訪問量的網站,一般會採用讀寫分離,比如ebay的讀寫比率是260:1,也就是大型的電子商務網站的。
網上看到說採用讀寫分離有如下工具:
1,oracle的logical standby
2, Quest公司的SharePlex
3, DSG公司的RealSync
如果你是網吧類應用:強烈建議你不要用無盤!!!!
必須有一名專業人員維護!三天兩頭的小問題 軟體游戲更新要你的命!
無盤伺服器的讀寫分離,很早就被提出來了。幾乎所有的商業無盤系統都會將讀寫分離作為提高無盤運行速度的有效途徑。可即使做了讀寫分離,系統性能也並
沒有得到顯著的提升。為什麼?因為他們分離錯了!該分離的沒有分離,而不該分離的卻又分離了!
現在市面上的無盤讀寫分離,都是將系統分區同游戲分區分開二個磁碟。殊不知,系統分區的磁碟讀寫負荷不知要大過游戲分區多少倍!為什麼這么說呢
?程序員都知道,程序一運行就會將自身完全載入內存了。雖然現在的游戲幾乎沒有不超過G大小的,但是,游戲主程序加上其需要調用的DLL文件,可能加起來
也就才幾十M而已,甚至更少!(大家可以運行一個大型游戲來看看它的內存使用量)。那另外那些幾乎超過游戲總大小百分之九十九的東西是什麼呢?不用說
大家都知道,是游戲必不可少的資源文件,比如:地圖、圖像、聲音等等。而游戲一般進去都會有等待載入的畫面,這里等待載入的東西,就是那些資源文件。
而這些資源文件載入後放在哪裡了?即使你系統有NG的內存容量,也不要指望游戲會將它放全部放在內存里。(不信你現在又可以看看游戲所佔用內存使用量)
。那是放哪裡了?那麼多寵大的游戲資源文件是放在哪裡了?去問個游戲程序員吧(問我也行啊,俺也是。。)。他會告訴你,放在頁面文件里了!!! 千
萬不要以為,游戲是邊運行邊從硬碟讀取文件的,游戲為了加快運行速度,都是將需要運行的文件預先載入入內存或是虛擬內存中的!而更多的是載入到虛擬內
存即頁面文件中,即使是幾G的內存,也是擺設。
感覺到恐怖吧!你以為你的系統分區磁碟幾乎沒做什麼事,其實它是最累的!游戲的讀取只需要進行一次,就是說載入一次,但是載入以後的東西是放在頁
面文件中的,游戲對頁面文件的讀取是非常頻繁的!可現在的無盤全弄反了,將系統分區磁碟弄成個普通IDE,將游戲分區弄成陣列。好武器沒有用到該用的地
方。
玩游戲會卡?幾乎每一種技術的無盤系統,玩游戲都會覺得有卡的時候。看看你客戶機的頁面文件大小吧,最小都有二三百M吧,幾十台機每台都來個幾百M
的讀寫量,呵呵,你想想,你那個又要做系統又要放頁面文件而且「待遇又不好」的磁碟,它磁頭會忙成什麼樣子!
我已經分析的很清楚了,該分離的應該是頁面文件!而游戲可以分,也可以不分。對於本身帶有緩沖功能的無盤系統,大型游戲應該都放在無盤伺服器上。
而不常用的硬碟游戲,網路游戲就可以放在網路的其它機上面。(共享或是虛擬磁碟方式)。
打開多個IE卡,最小化IE卡,啟動QQ卡,退出遊戲還是卡。這些都是對頁面文件大量讀寫的時候。將頁面文件分離出來吧!專門弄個硬碟提供頁面文件的讀
寫。這樣,系統更穩定、游戲更流暢!
怎麼解決這個惱人的頁面文件?暫時的方法,你可以升級您的系統分區的磁碟硬體,會有點改善,但解決不了根本。因為頁面文件是同系統分區放在一個磁
盤裡面的,而用戶與操作系統的交互是非常頻繁的,就是說,依現在的磁碟讀寫速度,又要滿足頁面文件的讀寫,又要不影響用戶同系統的交互,是做不到的。
另外一個解決方法,就是使用SetPageFile.exe軟體。
RAID是英文Rendant Array of Independent Disks的縮寫,翻譯成中文意思是「獨立磁碟冗餘陣列」,有時也簡稱磁碟陣列(Disk Array)。
簡單的說,RAID是一種把多塊獨立的硬碟(物理硬碟)按不同的方式組合起來形成一個硬碟組(邏輯硬碟),從而提供比單個硬碟更高的存儲性能和提供數
據備份技術。組成磁碟陣列的不同方式成為RAID級別(RAID Levels)。數據備份的功能是在用戶數據一旦發生損壞後,利用備份信息可以使損壞數據得以恢復
,從而保障了用戶數據的安全性。在用戶看起來,組成的磁碟組就像是一個硬碟,用戶可以對它進行分區,格式化等等。總之,對磁碟陣列的操作與單個硬碟一
模一樣。不同的是,磁碟陣列的存儲速度要比單個硬碟高很多,而且可以提供自動數據備份。
RAID技術的兩大特點:一是速度、二是安全,由於這兩項優點,RAID技術早期被應用於高級伺服器中的SCSI介面的硬碟系統中,隨著近年計算機技術的發展
,PC機的CPU的速度已進入GHz 時代。IDE介面的硬碟也不甘落後,相繼推出了ATA66和ATA100硬碟。這就使得RAID技術被應用於中低檔甚至個人PC機上成為
可能。RAID通常是由在硬碟陣列塔中的RAID控制器或電腦中的RAID卡來實現的。
RAID技術經過不斷的發展,現在已擁有了從 RAID 0 到 6 七種基本的RAID 級別。另外,還有一些基本RAID級別的組合形式,如RAID 10(RAID 0與RAID 1
的組合),RAID 50(RAID 0與RAID 5的組合)等。不同RAID 級別代表著不同的存儲性能、數據安全性和存儲成本。但我們最為常用的是下面的幾種RAID形式。
(1) RAID 0
RAID 0又稱為Stripe(條帶化)或Striping,它代表了所有RAID級別中最高的存儲性能。RAID 0提高存儲性能的原理是把連續的數據分散到多個磁碟上存取
,這樣,系統有數據請求就可以被多個磁碟並行的執行,每個磁碟執行屬於它自己的那部分數據請求。這種數據上的並行操作可以充分利用匯流排的帶寬,顯著提
高磁碟整體存取性能。
例如系統向三個磁碟組成的邏輯硬碟(RADI 0 磁碟組)發出的I/O數據請求被轉化為3項操作,其中的每一項操作都對應於一塊物理硬碟。我們可以清楚的看
到通過建立RAID 0,原先順序的數據請求被分散到所有的三塊硬碟中同時執行。從理論上講,三塊硬碟的並行操作使同一時間內磁碟讀寫速度提升了3倍。 但由
於匯流排帶寬等多種因素的影響,實際的提升速率肯定會低於理論值,但是,大量數據並行傳輸與串列傳輸比較,提速效果顯著顯然毋庸置疑。
RAID 0的缺點是不提供數據冗餘,因此一旦用戶數據損壞,損壞的數據將無法得到恢復。
RAID 0具有的特點,使其特別適用於對性能要求較高,而對數據安全不太在乎的領域,如圖形工作站等。對於個人用戶,RAID 0也是提高硬碟存儲性能的絕
佳選擇。
(2) RAID 1
RAID 1又稱為Mirror或Mirroring(鏡像),它的宗旨是最大限度的保證用戶數據的可用性和可修復性。 RAID 1的操作方式是把用戶寫入硬碟的數據百分之
百地自動復制到另外一個硬碟上。
當讀取數據時,系統先從RAID 0的源盤讀取數據,如果讀取數據成功,則系統不去管備份盤上的數據;如果讀取源盤數據失敗,則系統自動轉而讀取備份
盤上的數據,不會造成用戶工作任務的中斷。當然,我們應當及時地更換損壞的硬碟並利用備份數據重新建立Mirror,避免備份盤在發生損壞時,造成不可挽回
的數據損失。
由於對存儲的數據進行百分之百的備份,在所有RAID級別中,RAID 1提供最高的數據安全保障。同樣,由於數據的百分之百備份,備份數據佔了總存儲空間
的一半,因而Mirror(鏡像)的磁碟空間利用率低,存儲成本高。
Mirror雖不能提高存儲性能,但由於其具有的高數據安全性,使其尤其適用於存放重要數據,如伺服器和資料庫存儲等領域.
( 3) RAID 0+1
正如其名字一樣RAID 0+1是RAID 0和RAID 1的組合形式,也稱為RAID 10。
以四個磁碟組成的RAID 0+1為例,其數據存儲方式:RAID 0+1是存儲性能和數據安全兼顧的方案。它在提供與RAID 1一樣的數據安全保障的同時,也提供
了與RAID 0近似的存儲性能。
由於RAID 0+1也通過數據的100%備份功能提供數據安全保障,因此RAID 0+1的磁碟空間利用率與RAID 1相同,存儲成本高。
RAID 0+1的特點使其特別適用於既有大量數據需要存取,同時又對數據安全性要求嚴格的領域,如銀行、金融、商業超市、倉儲庫房、各種檔案管理等。
(4) RAID 3
RAID 3是把數據分成多個「塊」,按照一定的容錯演算法,存放在N+1個硬碟上,實際數據佔用的有效空間為N個硬碟的空間總和,而第N+1個硬碟上存儲的數
據是校驗容錯信息,當這N+1個硬碟中的其中一個硬碟出現故障時,從其它N個硬碟中的數據也可以恢復原始數據,這樣,僅使用這N個硬碟也可以帶傷繼續工作
(如採集和回放素材),當更換一個新硬碟後,系統可以重新恢復完整的校驗容錯信息。由於在一個硬碟陣列中,多於一個硬碟同時出現故障率的幾率很小,所
以一般情況下,使用RAID3,安全性是可以得到保障的。與RAID0相比,RAID3在讀寫速度方面相對較慢。使用的容錯演算法和分塊大小決定RAID使用的應用場合,
在通常情況下,RAID3比較適合大文件類型且安全性要求較高的應用,如視頻編輯、硬碟播出機、大型資料庫等.
(5) RAID 5
RAID 5 是一種存儲性能、數據安全和存儲成本兼顧的存儲解決方案。 以四個硬碟組成的RAID 5為例,其數據存儲方式:,P0為D0,D1和D2的奇偶校驗信
息,其它以此類推。由圖中可以看出,RAID 5不對存儲的數據進行備份,而是把數據和相對應的奇偶校驗信息存儲到組成RAID5的各個磁碟上,並且奇偶校驗信
息和相對應的數據分別存儲於不同的磁碟上。當RAID5的一個磁碟數據發生損壞後,利用剩下的數據和相應的奇偶校驗信息去恢復被損壞的數據。
RAID 5可以理解為是RAID 0和RAID 1的折衷方案。RAID 5可以為系統提供數據安全保障,但保障程度要比Mirror低而磁碟空間利用率要比Mirror高。RAID
5具有和RAID 0相近似的數據讀取速度,只是多了一個奇偶校驗信息,寫入數據的速度比對單個磁碟進行寫入操作稍慢。同時由於多個數據對應一個奇偶校驗信
息,RAID 5的磁碟空間利用率要比RAID 1高,存儲成本相對較低。
RAID級別的選擇有三個主要因素:可用性(數據冗餘)、性能和成本。如果不要求可用性,選擇RAID0以獲得最佳性能。如果可用性和性能是重要的而成
本不是一個主要因素,則根據硬碟數量選擇RAID 1。如果可用性、成本和性能都同樣重要,則根據一般的數據傳輸和硬碟的數量選擇RAID3、RAID5。
『拾』 如何解決資料庫讀寫分離的時間延時
不是很懂mysql的replication. 但是我以前做過Oracle Timesten replication, 可以講講給你參考。像Oracle這樣的資料庫對於1對1的同步是非常快速的,但是需要支持3個以上節點的時候,由於快速的復制/確認機制,內存讀寫和網路傳輸數據量會非常龐大. 對於3個以上節點的資料庫同步,要開始考慮自己寫一個程序,然後在各個節點上運行,進行互相主備同步。我當初是為國外一個電信運營商編寫的程序,6個節點,非常穩定。 既然Oracle都無法支持這種同步,Mysql能否支持,我個人覺得懷疑.
後來的資料庫設計成如下模式了, 3台master,互相通過我的程序進行同步。 在本地又各自搭建主從(master/slave)模式,利用資料庫自己的replication進行互備。每秒鍾大概處理3000transactions.