成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

DBUtil教程之數據庫集群備份

運維 數據庫運維 數據庫
在現在系統中,海量數據成為軟件工程師要面對的主要問題。很多人都把數據庫優化集中在編程和數據庫的結構,再構建一些索引和視圖,但是在編程和表結構都到了極致的時候,數據庫優化該何去何從。

在現在系統中,海量數據成為軟件工程師要面對的主要問題。很多人都把數據庫優化集中在編程和數據庫的結構,再構建一些索引和視圖,但是在編程和表結構都到了極致的時候,數據庫優化該何去何從。

Oracle公司現在有一個比較熱門的數據庫集群技術,叫做rac。rac應該是現在數據庫集群中最優化和最熱門的技術。但是只是局限于同類型和同構數據庫上面。

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

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

在一個大型系統中,行式和列式數據庫優勢互補,合理使用成為開發人員必須關心的問題。我們今天的集群也是主要面對這個問題。

集群原理:

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

配置方法:

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

1.配置xml

  1. <!-- 集群測試數據庫 --> 
  2.     <Resource jndi="jdbc/Cluster1" driverClass="com.mysql.jdbc.Driver" 
  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.     <Resource jndi="jdbc/Cluster2" driverClass="com.mysql.jdbc.Driver" 
  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.     <Cluster jndiCluster="jdbc/Cluster" mainDB="jdbc/Cluster1" 
  14.         synchronous="off" synchronousTime="00:00" protect="on"> 
  15.         <Resource jndi="jdbc/Cluster1" /> 
  16.         <Resource jndi="jdbc/Cluster2" /> 
  17.     </Cluster> 

 

配置xml也是首先配置2個數據庫節點,然后加入集群。

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

2.更新數據

  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("主數據庫為:" + list.getMainDB()); 
  23.         String sql = "insert into test1(test) value('test')"
  24.         DBUtil.getInstance().executeClusterUpdate("jdbc/Cluster", sql); 
  25.  
  26.     } 
  27.  

3.查詢數據

  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.  

實際上集群數據庫的同步最好是不要選擇定時同步,除非特殊需要,因為如果用到數據庫集群,必然會有海量的數據。而DBUtil的定時同步是整庫同步,使用者應該根據業務邏輯分表,部分同步比較實際。

原文鏈接:http://blog.csdn.net/arjick/article/details/6758872

【編輯推薦】

  1. DataReader鏈接關閉解惑篇
  2. 詳解MySQL如何鏈接遠程SQL
  3. 詳解SQL Server如何鏈接遠程MySQL
  4. 為什么要關閉數據庫連接,能不能不要啊
  5. SQL語句相關概念及練習之基礎篇
責任編輯:艾婧 來源: arjick的專欄
相關推薦

2011-08-10 15:46:29

數據庫

2021-05-17 06:57:34

SQLServer數據庫

2011-04-07 10:50:47

數據庫編程注釋規范

2011-08-23 17:33:00

SQLAndroid

2011-04-07 10:29:21

數據庫編程書寫規范

2009-10-26 09:04:35

VB.NET數據庫基礎

2011-03-24 09:07:11

SQL Server數備份

2019-03-01 13:40:01

MySQL數據庫備份案例

2009-11-20 14:08:39

Oracle數據庫備份

2011-05-17 15:02:15

ORACLE數據庫備份

2011-03-30 13:57:41

MySQL數據庫自動備份

2011-03-31 14:34:46

cactimysql備份

2010-06-17 13:24:38

SQL Server教

2010-08-27 09:59:51

SQL Server

2011-08-24 10:45:23

Oracle數據庫進程從屬進程

2009-06-24 13:07:44

Android數據庫

2011-03-24 16:46:44

微軟Excel數據庫

2015-03-18 13:39:35

MySQLBackup數據庫備份種類

2011-05-16 09:32:33

mysql數據庫備份

2018-08-24 13:58:13

數據庫MySQL備份
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人午夜电影网 | 日韩免费福利视频 | 91精品国产欧美一区二区 | 免费在线观看av网站 | 国产成人精品一区二区三区 | 99re视频精品 | 日本精品一区二区三区视频 | 亚洲第一网站 | 先锋资源吧 | av色噜噜 | 久久综合av| 国产精品久久久久久久久动漫 | 麻豆久久久| 亚洲精品在线播放 | 欧美一区视频 | 久婷婷 | 亚洲网在线 | 欧美网址在线观看 | 国产精品成人一区二区三区吃奶 | 99久久久国产精品 | 伊人色综合久久久天天蜜桃 | 91色站 | 亚洲视频欧美视频 | 色999视频 | 亚洲精品日本 | 亚洲第一在线 | 欧美三级网站 | 精品一区二区久久久久久久网站 | 久久香蕉精品视频 | 日韩欧美在线不卡 | 午夜综合 | 做a视频 | 国产一区二区 | 国产最新网址 | 成人免费视频在线观看 | 日韩午夜精品 | 国产剧情一区二区三区 | 久久精品视频在线免费观看 | 午夜视频一区 | 成人做爰9片免费看网站 | 九九伦理片 |