日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
DBUtil教程之?dāng)?shù)據(jù)庫集群備份

在現(xiàn)在系統(tǒng)中,海量數(shù)據(jù)成為軟件工程師要面對的主要問題。很多人都把數(shù)據(jù)庫優(yōu)化集中在編程和數(shù)據(jù)庫的結(jié)構(gòu),再構(gòu)建一些索引和視圖,但是在編程和表結(jié)構(gòu)都到了極致的時候,數(shù)據(jù)庫優(yōu)化該何去何從。

夷陵網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,夷陵網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為夷陵上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個售后服務(wù)好的夷陵做網(wǎng)站的公司定做!

Oracle公司現(xiàn)在有一個比較熱門的數(shù)據(jù)庫集群技術(shù),叫做rac。rac應(yīng)該是現(xiàn)在數(shù)據(jù)庫集群中最優(yōu)化和最熱門的技術(shù)。但是只是局限于同類型和同構(gòu)數(shù)據(jù)庫上面。

RAC是一個負(fù)載均衡的代表,它的集群主要是面對不是大而復(fù)雜的數(shù)據(jù)庫查詢,而是面對大量的連接。但是如果我們面對是一個異類異構(gòu)數(shù)據(jù)庫怎么解決。

近年來,有一種比較熱門的數(shù)據(jù)庫進(jìn)入我們生活,列式數(shù)據(jù)庫。它是一個高查詢性能,低插入性能的數(shù)據(jù)庫。現(xiàn)在主要代表是sybaseiq,主要開源的 列式數(shù)據(jù)庫有monetdb 。但是列式數(shù)據(jù)庫問題很多,主要是插入慢、數(shù)據(jù)庫不穩(wěn)定、數(shù)據(jù)庫傳統(tǒng)語法支持不強(qiáng)、穩(wěn)定性低、線程低和擴(kuò)展性低。但是達(dá)到幾百萬行以上數(shù)據(jù)以后,列式數(shù)據(jù) 庫的查詢速度是mysql的10倍以上。

在一個大型系統(tǒng)中,行式和列式數(shù)據(jù)庫優(yōu)勢互補(bǔ),合理使用成為開發(fā)人員必須關(guān)心的問題。我們今天的集群也是主要面對這個問題。

集群原理:

在dbutil的集群中,我們是用了一個行式數(shù)據(jù)庫和若干個列式數(shù)據(jù)庫組成,每次更新數(shù)據(jù)的時候,我們是用廣播模式,把增刪改數(shù)據(jù)通過廣播模式,群 體更新所有的數(shù)據(jù)。當(dāng)查詢數(shù)據(jù)時候,我們會通過連接池模式,找出最少人使用的數(shù)據(jù),查詢數(shù)據(jù)。并且可以設(shè)置每天定時同步數(shù)據(jù),把存放在行式數(shù)據(jù)的數(shù)據(jù),定 時同步到所有的節(jié)點(diǎn)。

配置方法:

在我們之前幾個文章簡單見過DBUtil的使用,配置方法和之前的教程大同小異。

1.配置xml

 
 
 
 
  1.  
  2.     
  3.         dbUserName="root" dbPassWord="root" 
  4.         jdbcUrl="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8" 
  5.         initSize="2" minPoolSize="1" maxPoolSize="10" maxStatements="50" 
  6.         maxIdleTime="60" /> 
  7.     
  8.         dbUserName="root" dbPassWord="root" 
  9.         jdbcUrl="jdbc:mysql://127.0.0.1:3306/test2?useUnicode=true&characterEncoding=utf-8" 
  10.         initSize="2" minPoolSize="1" maxPoolSize="10" maxStatements="50" 
  11.         maxIdleTime="60" /> 
  12.      
  13.     
  14.         synchronous="off" synchronousTime="00:00" protect="on"> 
  15.          
  16.          
  17.      

配置xml也是首先配置2個數(shù)據(jù)庫節(jié)點(diǎn),然后加入集群。

  • jndiCluster:是集群的唯一標(biāo)識符
  • mainDB:集群的主數(shù)據(jù)庫,建議用mysql數(shù)據(jù)庫
  • synchronous:同步數(shù)據(jù)
  • synchronousTime:同步時間
  • protect:保護(hù)模式(查詢數(shù)據(jù),不用主數(shù)據(jù)庫,只是獲取集群數(shù)據(jù)庫的數(shù)據(jù))

2.更新數(shù)據(jù)

 
 
 
 
  1. package com.shine.DBUtil; 
  2.  
  3. import com.shine.DBUtil.manage.DBManager; 
  4. import com.shine.DBUtil.utils.ClusterList; 
  5.  
  6. public class ClusterUpdateExample { 
  7.  
  8.     /** 
  9.      * 集群更新例子 
  10.      *  
  11.      * @param args 
  12.      */ 
  13.     public static void main(String[] args) { 
  14.         System.out.println("ClusterUpdateExample..."); 
  15.         DBUtil 
  16.                 .getInstance() 
  17.                 .init( 
  18.                         "E:\\workspace\\JavaFramework2.5\\src\\com\\shine\\DBUtil\\config\\dbXml.xml"); 
  19.  
  20.         ClusterList list = DBManager.getInstance() 
  21.                 .getClusterConnectionNameList("jdbc/Cluster"); 
  22.         System.out.println("主數(shù)據(jù)庫為:" + list.getMainDB()); 
  23.         String sql = "insert into test1(test) value('test')"; 
  24.         DBUtil.getInstance().executeClusterUpdate("jdbc/Cluster", sql); 
  25.  
  26.     } 
  27.  

3.查詢數(shù)據(jù)

 
 
 
 
  1. package com.shine.DBUtil; 
  2.  
  3. import com.shine.DBUtil.model.DBModel; 
  4.  
  5. public class ClusterSelectExample { 
  6.  
  7.     /** 
  8.      * 集群查詢 
  9.      *  
  10.      * @param args 
  11.      */ 
  12.     public static void main(String[] args) { 
  13.         System.out.println("ClusterSelectExample..."); 
  14.         DBUtil 
  15.                 .getInstance() 
  16.                 .init( 
  17.                         "E:\\workspace\\JavaFramework2.5\\src\\com\\shine\\DBUtil\\config\\dbXml.xml"); 
  18.  
  19.         String sql = "select * from test1"; 
  20.         String clusterJndi = "jdbc/Cluster"; 
  21.         DBModel dbmodel1 = DBUtil.getInstance().executeClusterQuery( 
  22.                 clusterJndi, sql); 
  23.  
  24.         DBModel dbmodel2 = DBUtil.getInstance().executeClusterQuery( 
  25.                 clusterJndi, sql); 
  26.  
  27.     } 
  28.  

實(shí)際上集群數(shù)據(jù)庫的同步最好是不要選擇定時同步,除非特殊需要,因?yàn)槿绻玫綌?shù)據(jù)庫集群,必然會有海量的數(shù)據(jù)。而DBUtil的定時同步是整庫同步,使用者應(yīng)該根據(jù)業(yè)務(wù)邏輯分表,部分同步比較實(shí)際。


當(dāng)前名稱:DBUtil教程之?dāng)?shù)據(jù)庫集群備份
本文URL:http://m.5511xx.com/article/dhcciss.html