Oracle Sharding是Oracle 12.2版本推出的新功能,也称为数据分片,适用于online transaction processing (OLTP). Oracle Sharding基于表分区技术,是一种在数据层将数据水平分区存储到不同的数据库的技术. Sharding可以实现将一个分区表的不同分区存储在不同的数据库中,每个数据库位于不同的服务器,每一个数据库都称为shard, 这些shard组成一个逻辑数据库,称为sharded database (SDB). 这个table也称为sharded table, 每个shard数据库中保存该表的不同数据集(按照sharding key分区), 但是他们有相同的列(columns)。

Oracle Sharding优势:
Oracle Sharding技术提供线性扩展和失败隔离的优点:

  • 线性扩展: 因为每个shard是一个独立的数据库,通过增加新的Shard节点,来线性扩展性能。自动rebalance数据。

  • 失败隔离: 由于Shard是一种shared-nothing技术,每个shard使用独立的硬件,因此一个shard节点出现故障,只会影响到这个shard存放的数据,而不会影响到其他shard。

  • 按照地理位置分布数据:可以选择根据地理位置不同,将数据存储在不同的shard。

  • 滚动升级:选择不同时间升级不同的shard。比如同一时间只升级一个或一部分shard,那么只有这些升级的shard中存储的数据受到影响,其他的shard不受到影响,可以继续提供服务。

  • 云部署:Shard非常适合部署在cloud。

12c新特性-Oracle Sharding简介

Oracle 12c realese2安装教程

Oracle下载地址

Oracle下载地址

单机节点

shard集群信息

单机版

1.创建oracle用户及oinstall用户组

创建oracle用户和oinstall用户组

创建oracle安装目录

创建前一定要用df -h查看下磁盘分区,选择合适的安装目录,最好磁盘空间剩余大于20G,开发机下 / 目录只有50G空间,不建议将oracle的安装目录设置在 / 目录下。

2.设置swap分区

free -m 查看swap分区情况

设置swap分区方法(512M)

3.vnc配置

通过vnc可以使用图形化界面安装oracle,大大提高安装成功率

vnc操作简介

server开启vnc: vncserver :1
server停止vnc: vncserver -kill :1

客户端vnc下载地址
客户端连接方法: IP:开启的端口号

TIPS:
1、如果vnc没有出现shell窗口,检查server是否安装xterm
2、如果使用更多图形化界面,安装gnome

4.安装oracle 12c依赖包

5.开始安装

通过vnc连接server,在安装目录下执行 ./runInstaller
安装过程具体每一步操作参考: 大专栏  Oracle_12c_Sharding集群安装教程ntq.net/2017/04/18/install-db12c-ol73/#%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E8%AE%BE%E7%BD%AE" target="_blank" rel="noopener noreferrer">Oracle Linux 7.3 下安装 Oracle Database 12c R2

Oracle环境变量

Listener开启和关闭方法

TIPS: 如果遇到sqlplus command not found lsnrctl command not found,检查下环境变量是否失效

创建Oracle实例的方法: 执行 $ORACLE_HOME/bin/dbca

Sharding集群版

1.节点需要安装的服务

Master节点: Oracle RDMS,GSM
Slave节点: Oracle RDMS

Oracle安装Singleinstance database installation版本,安装好之后仅仅在Master节点创建实例(非non-cdb

slave节点可采用响应文件进行静默安装 ./runInstaller -silent -responseFile /home/oracle/db.rsp

安装详细过程过程参考

2.配置hosts和防火墙

配置SDB与各个shard节点的host

关闭防火墙,开发机上默认是关闭的,最好检查一下

3.Shard配置流程

  • 环境变量

    Oracle

    GSM

  • 在master服务器(catalog 数据库/shard director),连接到Sharding catalog数据库, 解锁 GSMCATUSER 用户,shard director 通过GSMCATUSER 用户连接到shard catalog database

  • 在 catalog数据库,创建管理用户mygds,用户mygds用于存储Sharding管理信息,GDSCTL接口通过用户mygds连接到catalog数据库

  • 在gsm1服务器(catalog 数据库/shard director),创建shard catalog,在shard catalog中配置remote scheduler agent

  • 创建和启动shard director

  • 去shard节点上进行注册

**一定要关闭shard节点上的监听器**
  • deploy shard

查看shard配置 `config shard`
查看invitednode `config vncr`
删除shard配置 `remove shard -shard sh1`
删除invitednode `remove invitednode oceanbase004085`

看到如下信息,说明shard集群已经搭建成功


3.注意事项

下面是我安装过程中碰到的坑

  • 安装Oracle过程中会检查安装条件,ignore即可
  • slave节点安装好Oracle后,关闭Listener,否则deploy过程中会报错
  • add shard过程中,如果遇到destination not found错误,检查节点上Hosts文件配置,确保各个节点上可以ping通
  • deploy过程中十分缓慢(10分钟至20分钟),成功或者错误都会返回信息

如果还碰到困难参考下面帖子:

02-13 23:42