Online DDL 工具:pt-osc
对于 MySQL Online DDL 目前主流的有三种工具:
原生 Online DDL;
pt-osc(online-schema-change),
gh-ost
本文主要讲解 pt-online-schema-change 的使用以及三种工具的简单对比。
一、原理及限制
1.1 原理
1. 创建一个与原表结构相同的空表,表名是 _new 后缀;
2. 修改步骤 1 创建的空表的表结构;
3. 在原表上加三个触发器:delete/update/insert,用于 copy 数据过程中,将原表中要执行的语句在新表中执行;
4. 将原表数据以数据块(chunk)的形式 copy 到新表;
5. rename 原表为 old 表,并把新表 rename 为原表名,然后删除旧表;
6. 删除触发器。
SAXReaderreader
=
new
SAXReader()
Document
doc=reader.read(new
File("src/Cinema.xml"))
Element
eleRoot=doc.getRootElement()
for(Iterator
its=eleRoot.elementIterator()its.hasNext()){
Element
eleCount=(Element)its.next()
Iterator
it=eleCount.elementIterator()
while(it.hasNext()){
Element
eleName=(Element)it.next()
}
用这些代码可以实现从XML中读取数据
然后建立连接用一个实体类用来临时存放SQL数据把
用List<News>存放
Class.forName("oracle.jdbc.OracleDriver")
String
url="jdbc:oracle:thin:@192.168.0.200:1521:tarena"
Connection
con=DriverManager.getConnection(url,"hsd1103","hsd1103")
String
str="insert
into
news
value(?,?,?,?,?)"//问号是对应下面你所要传递的值和
你SQL中的字段值对应
News
news=new
News()
PreparedStatement
stmt=PreparedStatement
pstm
=
con.prepareStatement()
//把xml中的数据放置到sql中
stmt.setInt(1,news.getID())
stmt.setString(2,news.getName)
stmt.setString(3,news.getAcc())
.
.
.
按照这样的方式些就可以了我用的是oracle
灵活运用MYSQL的各种高可用技术来达到下面各种级别的高可用要求要达到99.9%:使用MYSQL复制技术
要达到99.99%:使用MYSQL NDB 集群和虚拟化技术
要达到99.999%:使用shared-nothing架构的GEO-REPLICATION和NDB集群技术
Gluster Geo-replication是什麼?
Gluster Geo-replication(简称geo-replication)是一种异地灾备技术,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)