我对数据库集群的理解较少,因为我没有对它们进行过工作。我有以下问题。
数据库集群有两个实例db server 1&服务器2.考虑到数据库说表A,每个实例都有一个数据库副本。
通常,查询请求只会由一个随机决定的服务器完成。
问题1:我想知道,鉴于访问权限,我们可以明确告诉哪个服务器应该处理查询吗?
问题2:鉴于访问权限,特定服务器是否可以直接从外部访问数据库服务器2进行查询?在Oracle或MySQL数据库中。
/ SR
答案 0 :(得分:0)
实现群集的方法有很多种。 MySQL和Oracle都提供开箱即用的解决方案 - 但却截然不同。而且总是可以选择在DBMS本身之上实现不同的集群。
除非您能够具体了解您所谈论的集群架构和DBMS,否则无法回答您的问题。
下进行。
答案 1 :(得分:0)
在Oracle RAC(Real Application Clusters)中,数据存储(即存储数据的磁盘)是共享的,所以说数据的副本不止一个并不是真的...那里只是数据的一个副本。这两个服务器只是单独访问存储(虽然有一些合作)
答案 2 :(得分:0)
从Oracle的角度来看:
cagcowboy是对的;在Oracle RAC系统中,只有一个数据库(磁盘上的文件集),不同逻辑或物理服务器上的多个数据库实例(执行程序)访问这些相同的文件。
在Oracle中,并行执行的查询可以使用群集中任何成员的资源执行工作。
可以“逻辑”对群集进行分区,以便特定应用程序更喜欢通过使用服务名称连接到群集的成员1而不是成员2。但是,如果强制应用程序始终连接到群集的特定成员,则会消除群集的主要理由 - 高可用性。同样,如果应用程序连接到群集的功能随机成员,则在同一Oracle行中具有读取和/或写入兴趣的不同数据库会话会显着降低性能。