Changes in Oracle Database 18c
The following are changes in Using Oracle Sharding for Oracle Database 18c.
New Features
The following features are new in this release:
- User-Defined Sharding Method
- Support for PDBs as Shards
- Support for Oracle GoldenGate Replication
- Centralized Diagnostics
- Multi-Shard Query Consistency Level
- Sharding Support for JSON, LOBs and Spatial Objects
- Optimizer Enhancements for Multi-Shard Queries
- Shard Replacement
- Oracle RAC Sharding
User-Defined Sharding Method
用户定义的分片允许显式地指定数据到各个分片的映射。由于性能、管理或其他原因,某些数据需要存储在特定的切分上,并且您必须在切分之间完全控制移动数据。此方法允许您定义基于列表或范围的分片。
See
-
User-Defined Sharding for a conceptual overview of user-defined sharding
-
Using Oracle Data Guard with an SDB for information about replicating a user-defined sharded database Oracle Data Guard
-
Creating and Deploying a User-Defined SDB for tasks related to configuring, creating and deploying a user-defined sharded database
Support for PDBs as Shards
在CDB中为碎片或碎片目录数据库使用PDB。在这个版本中,Oracle Sharding支持将碎片或碎片目录作为CDB中的单个PDB。扩展了GDSCTL命令ADD SHARD,实现了添加CDB、修改CDB、配置CDB和删除CDB的新命令,以便Oracle Sharding能够支持多租户架构。
See
-
Using Oracle Multitenant with Oracle Sharding for information about how to use PDBs as shards
-
Oracle Database Global Data Services Concepts and Administration Guide for information about the new commands
Support for Oracle GoldenGate Replication
Oracle GoldenGate用于细粒度的多主复制,其中所有的碎片都是可写的,每个碎片可以部分复制到shardgroup中的其他碎片。
See Shard-Level High Availability
Centralized Diagnostics
SQL SHARDS()子句允许您跨所有shard查询Oracle提供的对象,例如V$、DBA/USER/ALL视图、字典表等等。
See Querying System Objects Across Shards
Multi-Shard Query Consistency Level
MULTISHARD_QUERY_DATA_CONSISTENCY来设置不同的一致性级别。
See Specifying Consistency Levels in a Multi-Shard Query
Sharding Support for JSON, LOBs and Spatial Objects
这个版本允许JSON操作符生成临时LOB、大型JSON文档(需要LOB存储的文档)、空间对象、索引和操作符以及持久LOB,以便在分片环境中使用。
The following interfaces are new or changed as part of this feature.
-
查询和DML语句
支持涉及lob的交叉碎片查询。
不支持包含多个碎片的DMLs。这种行为类似于标量列。
协调器支持涉及单个碎片的DMLs。
从碎片中选择的定位器可以作为绑定值传递到相同的碎片。 -
OCILob
在分片环境中,支持所有与bfile无关的OCILob api。有一些限制。
在协调器上,LOB描述符的OCI_ATTR_LOB_REMOTE属性如果从切分表中获得LOB,则返回TRUE。
限制:对于以两个定位器作为输入的api,例如OCILobAppend和OCILobCompare,这两个定位器应该从相同的碎片中获得。如果定位器来自不同的碎片,将给出一个错误。 -
DBMS_LOB
在分片环境中,支持所有与bfile无关的DBMS_LOB api,但有一些限制。在协调器上,DBMS_LOB。如果从切分表中获得LOB, isremote返回TRUE。
限制:对于使用两个定位器作为输入的api, DBMS_LOB。例如,这两个定位器应该从相同的碎片中获得。如果定位器来自不同的碎片,则给出错误。
See Creating a Schema for a System-Managed SDB, Creating a Schema for a User-Defined SDB, and Creating a Schema for a Composite SDB for examples of using LOBs in sharded database deployment.
Optimizer Enhancements for Multi-Shard Queries
为了提高切分查询的健壮性和容错性,进行了各种改进。查询解释计划得到了增强,以显示参与查询的所有碎片的信息。
See Supported Query Shapes in Proxy Routing and Execution Plans for Proxy Routing for updated information about these topics.
Shard Replacement
如果切分失败且不可恢复,则可以使用GDSCTL中的ADD shard -REPLACE命令替换它。您还可以使用-replace命令选项将碎片移动到任何原因的新设备。
Oracle RAC Sharding
Oracle RAC切分创建表分区与特定Oracle RAC实例的关联,并将指定分区键的数据库请求路由到逻辑上包含相应分区的实例。这提供了更好的缓存利用率,并极大地减少了跨实例的块ping。分区键只能添加到性能最关键的请求中。不指定密钥的请求仍然可以透明地工作,并且可以路由到任何实例。启用此特性不需要对数据库模式进行任何更改。
See Oracle Real Application Clusters Administration and Deployment Guide
Other Changes
The following are additional changes in the release:
-
Sharding Content Moved to New Book
在Oracle Database 12c Release 2(12.2.0.2)中,Oracle分片内容是Oracle Database Administrator指南的一部分。从Oracle数据库18c开始,Oracle分片内容包含在它自己的书,Oracle分片指南中。