手把手地教你搭建Oracle Sharding
Sharding架构是数据库层面的一种分片技术,可以使分过区的数据分布在各不相同的独立数据库里。Sharding是Oracle Database 12c Release 2的新特性,它能为适合于 Sharding技术的OLTP应用提供线性扩展和完全错误隔离的能力,可以将 Sharding简单地理解为Oracle 表分区技术的扩展。
本文将向您展示如何从头一步一步搭建Sharded Database的过程,展示过程中还会穿插讲解一些相关的概念。
本例将搭建如下 Sharded Database (SDB).
·一共3台Host,即 SDB1, SDB2, SDB3。 均已安装Oracle Linux 6.7。
·在HostSDB1上安装Shard Director和Shard Catalog。
·在HostSDB2和HostSDB3上各安装一个Shard。
下面是对Oracle Sharding 主要部件的简要解释:
Sharded Database(SDB) – 是一个逻辑上的Oracle Database,它由多个物理上互相独立的Oracle Databases (Shards) 组成,Shards之间不共享任何软件和硬件,即Share Nothing.
Shards – 是一个独立的数据库。
ShardCatalog - 它也是一个Oracle Database,主要用于Shard的自动部署、集中管理以及跨Shard的查询。
ShardDirectors - 跟据Sharding Key来提供到Shard的路由。OracleSharding中可以设置多个位于不同Host的Shard Director。
Oracle Sharding 支持如下三种Sharding方式:
System-ManagedSharding – 这种Sharding方式不需要用户指定数据到Shard的mapping关系(可以简单理解为数据按consistenthash之后再分布到各个Shard),本例中将使用这种Sharding 方式。
CompositeSharding –这种Sharding方式需要用户指定数据到Shard的mapping关系(这里将不做详细讲解)。
UsingSubpartitions with Sharding – Oracle Sharding是基于表分区技术的, 因此 Sharding可以支持所有的subpartition方法。
下面开始搭建环境:
一.安装软件:
OracleDatabase 12c Release 2
OracleDatabase 12c Release 2 Global Service Manager (GSM/GDS)
1.在所有节点上安装Oracle Database 12c Release 2。(注:只安装软件,不创建DB)
1.1安装前准备。
1.2 开始安装,点击Next。
1.3 选择Installdatabase software only,点击Next。
1.4 选择Singleinstance database installation,点击Next。
1.5 选择EnterpriseEdition,点击Next。
1.6 接下来的所有步骤都使用默认值。点击Next。
1.7 在Summary页面,选择SaveResponse File, 将用于其它节点的安装。
1.8 安装过程中,应该按要求新开一个终端,用root执行脚本。
1.9 在另外两个节点准备环境并静默安装Oracle Database 12c Release 2。
2.在Shard Director 所在节点安装Oracle Database 12c Release 2 Global Service Manager (GSM/GDS), 本例中即HOST SDB1。安装过程与安装OracleDatabase 12c Release 2类似,均使用默认值。
二.创建ShardCatalog Database。本例中将会在HostSDB1上创建。
1.准备环境并启动DBCA。
2.选择Create a database,点击Next。
3.选择Advanced configuration,点击Next。
4.选择Oracle Single Instance database, 选择General Purpose orTransaction Process模板,点击Next。
5.输入Global Database name和SID,请不要选中Create asContainer database,点击Next。
6.选择File System,选择Oracle-Managed Files(OMF),点击Next。
7.选择Specify Fast Recovery Area ,Enable archiving,点击Next。
8.接下来的页使用默认值,并跳过Data Vault 选项页。然后选择Use Automatic Shared Memory Management。
9.选择Use Unicode(AL32UTF8),点击Next。
10.不要选择Configure EnterpriseManager(EM) database express,点击Next。
11.本例所有的用户都用同样密码’welcome1’。
12.选择Create database。
13.点击Finish。
三.设置OracleSharding Manage和路由层。本例中在HostSDB1上设置。
1.设置catalog database 环境变量并启动监听。
2.赋角色和权限。GSMCATUSER是12c内置的一个用户,shard director 用这个用户连到catalog database。
3.进入到GDSCTL命令行,创建shard catalog。
注:GDSCTL是一个命令行工具,用于管理和配置Global Data Services framework。
4.创建并启动shard director。并设置操作系统安全认证。
5.连接到每一个Shard Hosts(本例中为HOST SDB2和HOST SDB3),注册Scheduler agents, 并创建好oradata和fast_recovery_area文件夹。
四.开始布署SharedDatabase。本例将布署System-ManagedSDB。
1.准备
2.布署
TIPs:
•deploy命令会调用远程每一个节点上的dbca去静默安装sharded database。我们可以通过dbca的日志文件去监控安装进度。
·deploy 还会在catalogdatabase 上提交一些job来完成相关事务。我们可以查询dba_scheduler_jobs 来监控进度。
·另外,GSM日志可以用于deploy过程的监控和诊断。GSM日志的位置可以通过如下命令查到。
GDSCTL>status gsm
3.验证安装是否成功。
Sharded Database (SDB) 安装布署到此完成。我们看到,SDB的安装布署非常容易,几乎所有的管理配置都是通过GDSCTL的几条简单命令完成的。另外,Oracle Sharding还高度整合了Oracle Data Guard:如果你想布署standby database,可以通过GDSCTL的一两条命令来定义,Oracle Sharding 会自动帮你布署好standbys。
【文章来源:Oracle官网】