Init
server1和server2是两台单独的server,数据文件分开,分别启动:
server1:
s1_start.bat:
@java -cp "h2.jar;%H2DRIVERS%;%CLASSPATH%" org.h2.tools.Server -tcp -tcpPort 9101 -baseDir server1
@if errorlevel 1 pause
server2:
s2_start.bat:
@java -cp "h2.jar;%H2DRIVERS%;%CLASSPATH%" org.h2.tools.Server -tcp -tcpPort 9102 -baseDir server2
@if errorlevel 1 pause
create cluster:
cluster.bat:
@java -cp "h2.jar;%H2DRIVERS%;%CLASSPATH%" org.h2.tools.CreateCluster -urlSource jdbc:h2:tcp://localhost:9101/./test -urlTarget jdbc:h2:tcp://localhost:9102/./test -user sa -serverlist localhost:9101,localhost:9102
@if errorlevel 1 pause
-urlSource和-urlTarget指明了哪个是主DB(所有select操作都从这个DB走),其它insert, delete, update操作分别向两个DB进行操作
client:
jdbc url: jdbc:h2:tcp://localhost:9101,localhost:9102/./test
Init data:
CREATE TABLE TEST(ID INT, NAME VARCHAR);
Test_Insert:
- 初始数据:
Server1:
Server2:
Server1,Server2正常启动,Client以Server1为基础
insert into test values (2, '2');
insert into test values (3, '3');
insert into test values (4, '4');
insert into test values (5, '5');
insert into test values (6, '6');
结果:
insert into test values (2, '2');
Unique index or primary key violation: PRIMARY_KEY_2 ON PUBLIC.TEST(ID) [23001-79] 23001/23001 (Help)
insert into test values (3, '3');
Unique index or primary key violation: PRIMARY_KEY_2 ON PUBLIC.TEST(ID) [23001-79] 23001/23001 (Help)
insert into test values (4, '4');
Update count: 1
(0 ms)
insert into test values (5, '5');
Unique index or primary key violation: PRIMARY_KEY_2 ON PUBLIC.TEST(ID) [23001-79] 23001/23001 (Help)
insert into test values (6, '6');
Update count: 1
(16 ms)
Server1:
ID
|
NAME
|
1
|
1
|
2
|
2
|
3
|
3
|
4
|
4
|
5
|
5
|
6
|
6
|
Server2:
说明先向Server1 insert,如果server1 insert成功后,再向Server2操作
delete from test where id = 6;
-
停掉Server1,
insert into test values (6, '6');
select * from test;
Client/Server2:
ID
|
NAME
|
1
|
1
|
2
|
2
|
3
|
3
|
4
|
4
|
5
|
5
|
6
|
6
|
Server1的记录还是5条
-
重启Server1,客户端不重新连接(此时,select操作的数据是以server2为准)
执行:
insert into test values (6, '6');
insert into test values (7, '7');
insert into test values (8, '8');
执行结果
insert into test values (6, '6');
Unique index or primary key violation: PRIMARY_KEY_2 ON PUBLIC.TEST(ID) [23001-79] 23001/23001 (Help)
insert into test values (7, '7');
Update count: 1
(0 ms)
commit;
insert into test values (8, '8');
commit;
Server1:
Client/Server2:
ID
|
NAME
|
1
|
1
|
2
|
2
|
3
|
3
|
4
|
4
|
5
|
5
|
6
|
6
|
7
|
7
|
8
|
8
|
说明没重连,对Server2的操作没有同步到Server1
-
重启Server2,客户端不重新连接(读以Server1)为主
执行:
insert into test values (6, '6');
insert into test values (7, '7');
insert into test values (8, '8');
insert into test values (9, '9');
commit;
结果:
insert into test values (6, '6');
Update count: 1
(0 ms)
insert into test values (7, '7');
Update count: 1
(0 ms)
insert into test values (8, '8');
Update count: 1
(0 ms)
insert into test values (9, '9');
Update count: 1
(0 ms)
Client (Server1):
ID
|
NAME
|
1
|
1
|
2
|
2
|
3
|
3
|
4
|
4
|
5
|
5
|
6
|
6
|
7
|
7
|
8
|
8
|
9
|
9
|
Server2:
ID
|
NAME
|
1
|
1
|
2
|
2
|
3
|
3
|
4
|
4
|
5
|
5
|
6
|
6
|
7
|
7
|
8
|
8
|
说明没重连,对Server1的操作没有同步到Server2
分享到:
相关推荐
"内存数据库"再次重申H2的主要特点之一,即其在内存中操作数据的能力,这对于需要快速响应时间的应用尤其有利。 在压缩包内的文件名"www.pudn.com.txt"可能是一个文本文件,通常用来提供链接、资源或者文档的介绍,...
聚类算法是数据挖掘中的核心方法之一,主要用于寻找数据集中的自然群体或模式,使得群体内的对象相似度高,而群体间的相似度低。在空间数据库中,这些算法有助于揭示地理空间数据的内在结构和规律。 《基于空间...
随着大数据时代的到来,海量数据的涌现——包括图像、文本、DNA序列、时间序列、Web数据等——使得应用于大型数据库的聚类分析成为数据挖掘领域的热点研究课题。面对如此庞大的数据集,如何高效、有效地进行聚类分析...
UCI上提供的聚类数据集通常包括多维度的特征,可以用于测试和比较各种聚类算法的性能。 这个压缩包可能包含多个数据集,每个数据集都可能有不同的特性和应用场景。例如,有的数据集可能适合于解决二维或高维问题,...
在数据分析和机器学习领域,聚类算法是一种无监督学习方法,用于发现数据中的自然分组或模式。这里提供的"聚类算法测试数据集.zip"包含了多个CSV文件,这些文件是专门为测试和验证聚类算法设计的。以下是这些数据集...
"人脸数据库用于聚类分析"这一主题,意味着我们关注的是如何利用人脸图像数据进行无监督学习,以便将相似的人脸图像自动分组,即进行聚类。这种方法在人脸识别、安全监控、社交媒体分析等多个场景都有应用。 ORL...
"聚类算法常用数据集(二维人工数据集+UCI真实数据集)"这个压缩包包含了一系列用于聚类分析的数据集,这对于研究和实践各种聚类算法来说非常有价值。 首先,我们来看"二维人工数据集"。这类数据集通常是由研究人员...
这些数据集在聚类分析、数据挖掘、机器学习和模式识别领域具有重要价值。通过对它们进行聚类,我们可以探索数据的内在结构,发现未知的类别关系,也可以评估和比较不同聚类算法的性能。常见的聚类算法有K-means、...
人造数据集通常设计得简单明了,目的是测试特定算法的性能,或者用于教学目的,帮助初学者理解聚类的基本概念。它们可能具有已知的结构,比如球形、环形或其他几何形状,这样可以直观地看到聚类算法的效果。 真实...
而双螺旋型数据集则包含了两个相互缠绕的螺旋,用于测试算法在处理复杂重叠模式时的能力。 UCI机器学习仓库是广泛使用的公开数据集资源,其中包含各种真实世界的多元数据,用于多种机器学习任务,包括聚类。这些...
数据点沿着螺旋路径分布,使得距离中心越远的数据点可能具有更高的相似性,这为聚类算法提供了挑战,因为它们需要识别出这种非线性的分布模式。 "双螺旋"可能指的是与"Spiral数据集"类似的一种数据构造,但具体细节...
标题中的“常用聚类分类数据集(32个txt格式)”表明这是一份包含多个文本文件的数据集合,专门用于聚类和分类任务。在数据挖掘和机器学习领域,这样的数据集是训练和评估算法的重要资源。聚类是无监督学习的一种...
### UCI聚类测试数据集知识点解析 #### 数据集概览 UCI机器学习库中的“UCI聚类测试数据集”是一个专为聚类算法评估而设计的数据集。该数据集包含600条记录,按照每100条记录为一类的方式组织,非常适合用于验证和...
在数据分析和机器学习领域,聚类分析是一种无监督学习方法,用于发现数据中的自然分组或模式,无需预先设定目标变量。在这个主题中,我们将深入探讨聚类分析算法及其常用的测试数据集。 首先,让我们了解聚类分析的...
常见的聚类算法包括K-means、层次聚类(Hierarchical Clustering)、DBSCAN(Density-Based Spatial Clustering of Applications with Noise)以及谱聚类(Spectral Clustering)等。这些算法在市场分割、社交网络...
"USPS-4k2_far.txt"可能是这个数据集的一个版本,其中包含了4000个手写数字样本,并可能标记了远距离相似性的信息,这对于测试聚类算法在识别复杂模式时的能力特别有用。 在实验过程中,"人工合成数据集方法.txt...
内存数据库是一种将所有数据存储在主内存中的数据库管理系统(DBMS)。与传统的硬盘存储数据库相比,内存数据库提供了极高的读写速度,这是因为内存访问速度远高于硬盘访问速度。这种设计非常适合需要高速数据处理的...
这个压缩包文件"聚类算法数据集"提供了一个专门用于测试和评估聚类算法的数据集。下面我们将深入探讨聚类算法、其工作原理以及如何利用这样的数据集进行分析。 聚类算法是一种无监督学习方法,它通过寻找数据之间的...
总结来说,C#实现K均值聚类算法并结合MySQL数据库进行数据操作,需要对算法原理、C#编程、数据库操作都有一定的了解。通过这个过程,我们可以将大量数据进行有效的分类,为后续的数据分析和决策提供支持。在实际项目...
其次,文章结合自定义数据处理逻辑结构设计方法,对Java内存数据库检索过程中的特征提取和模糊聚类处理进行了深入探讨。特征提取是数据检索前的重要步骤,它能够从数据集中提取出有助于检索的特征,这些特征可以是...