Oracle 分片是一种基于跨多个 Oracle 数据库的数据水平分区的数据库扩展技术。 应用程序将数据库池视为单个逻辑数据库。
OLTP 应用程序分片的主要优势包括线性可扩展性、故障遏制和地理数据分布。分片非常适合在 Oracle 云中部署。 与实现分片的 NoSQL 数据存储不同,Oracle Sharding 提供了分片的优势,而无需牺牲企业 RDBMS 的功能。
在分片架构中,每个数据库都托管在具有自己的本地资源(CPU、内存、闪存或磁盘)的专用服务器上。 这种配置中的每个数据库称为一个分片。 所有分片共同构成一个逻辑数据库,称为分片数据库。
水平分区涉及将数据库表拆分为多个分片,以便每个分片包含具有相同列但不同行子集的表。以这种方式分割的表也称为分片表。
下图显示了跨三个分片水平分区的分片表。
图 1-5 跨分片的表水平分区
《图1-5 表跨分片水平分区》说明
一个用例是跨多个物理数据库分发客户帐户数据。例如,ID 为 28459361 的客户可以查找他的记录。下图显示了一种可能的架构。客户请求通过连接池路由,其中分片控制器(网络侦听器)将请求定向到包含所有客户行的适当分片。
图1-6 Oracle分片架构
《图1-6 Oracle分片架构》说明