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。
Oracle 12c realese2安装教程
Oracle下载地址
单机节点
shard集群信息
单机版
1.创建oracle用户及oinstall用户组
创建oracle用户和oinstall用户组
创建oracle安装目录
创建前一定要用df -h
查看下磁盘分区,选择合适的安装目录,最好磁盘空间剩余大于20G,开发机下 / 目录只有50G空间,不建议将oracle的安装目录设置在 / 目录下。
2.设置swap分区
free -m
查看swap分区情况
设置swap分区方法(512M)
3.vnc配置
通过vnc可以使用图形化界面安装oracle,大大提高安装成功率
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分钟),成功或者错误都会返回信息
如果还碰到困难参考下面帖子: