一直以来在关系型数据库当中,MySQL的分库分表被所有企业认可,并广泛的应用于互联网行业及各大电商平台,数据库的中间件产品也是满目狼藉,如代表,官方的MySQL Proxy、商用的有阿里DRDS、开源的有MyCAT、Altas等等。
自从Oracle 12.2发布之后,Oracle数据库也可以实现分库分表,袋鼠云RDS基于Oracle12.2分库分表的功能,在产品上实现一键部署、智能运维、监控告警、备份恢复、性能管控等,下面我们来看看如何部署Oracle Sharding,本次部署不涉及到DG。

1、部署环境,配置好安装Oracle软件所需条件,关闭防火墙

2、在三台主机上安装Oracle Database 12.2.0.1数据库软件,不创建数据库实例(过程略)

3、在master主机上安装Oracle GSM软件,并创建数据库实例scat(过程略)

4、在master节点上准备数据库环境,并创建路由
alter system set db_create_file_dest='/u01/app/oracle/oradata' scope=both;
alter system set open_links=16 scope=spfile;
alter system set open_links_per_instance=16 scope=spfile;
alter user gsmcatuser identified by gsmcatuser account unlock;
create user mygds identified by mygds;
grant connect, create session, gsmadmin_role to mygds;
grant inherit privileges on user SYS to GSMADMIN_INTERNAL;
alter system set events 'immediate trace name GWM_TRACE level 7';
alter system set event='10798 trace name context forever, level 7' scope=spfile;
startup force

set echo on
set termout on
spool config_remote_scheduler.lst
@?/rdbms/admin/prvtrsch.plb

exec DBMS_XDB.sethttpport(8080);
commit;
exec DBMS_SCHEDULER.SET_AGENT_REGISTRATION_PASS('welcome');
alter system register;

5、在所有shard节点上启动shardcat agent,并且连接master
schagent -start
schagent -status
echo welcome | schagent -registerdatabase master 8080

6、使用mygds用户创建GSM
gdsctl connect mygds/mygds@master:1521:scat

create shardcatalog -database master:1521:scat -user mygds/mygds -chunks 12 -user mygds/mygds -region dc1, dc2 -sdb scat
add gsm -gsm gsmha -listener 12106 -pwd gsmcatuser -catalog master:1521:scat -region dc1 -trace_level 16

7、继续创建shard
add shardgroup -shardgroup primary_shardgroup -deploy_as primary -region dc1
create shard -shardgroup primary_shardgroup -destination slave1 -osaccount oracle -ospassword oracle
create shard -shardgroup primary_shardgroup -destination slave2 -osaccount oracle -ospassword oracle

8、开始部署sharding数据库实例,并添加服务
deploy
add service -service pri_srv -role primary
start service -service pri_srv

GDSCTL>databases
Database: "sh1" Registered: Y State: Ok ONS: N. Role: PRIMARY Instances: 1 Region: dc1
Service: "pri_srv" Globally started: Y Started: Y

        Scan: N Enabled: Y Preferred: Y

Registered instances:

 scat%1

Database: "sh2" Registered: Y State: Ok ONS: N. Role: PRIMARY Instances: 1 Region: dc1
Service: "pri_srv" Globally started: Y Started: Y

        Scan: N Enabled: Y Preferred: Y

Registered instances:

 scat%11

9、创建应用用户、表空间、表
alter session enable shard ddl;
create user app identified by oracle;
grant all privileges to app;
grant connect,resource,dba,select_catalog_role,gsmadmin_role to app;
grant execute on dbms_crypto to app;

CREATE TABLESPACE SET TSP_SET_2 using template (datafile size 100m extent management local segment space management auto );
CREATE TABLESPACE products_tsp_1 datafile size 100m extent management local uniform size 1m;

conn app/oracle
CREATE SHARDED TABLE cust
(
CustId VARCHAR2(60) NOT NULL,
FirstName VARCHAR2(60),
LastName VARCHAR2(60),
CONSTRAINT pk_cust PRIMARY KEY (CustId)
) TABLESPACE SET TSP_SET_2 PARTITION BY CONSISTENT HASH (CustId) PARTITIONS AUTO;

CREATE SHARDED TABLE Orders
(
OrderId INTEGER NOT NULL,
CustId VARCHAR2(60) NOT NULL,
constraint pk_orders primary key (CustId, OrderId),
constraint fk_orders_parent foreign key (CustId)
references cust on delete cascade
) partition by reference (fk_orders_parent);

CREATE SHARDED TABLE LineItems
(
OrderId INTEGER NOT NULL,
CustId VARCHAR2(60) NOT NULL,
ProductId INTEGER NOT NULL,
constraint pk_items primary key (CustId, OrderId, ProductId),
constraint fk_items_parent foreign key (CustId, OrderId) references Orders on delete cascade
) partition by reference (fk_items_parent);

CREATE DUPLICATED TABLE Products
(
ProductId INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY, Name VARCHAR2(128),
DescrUri VARCHAR2(128),
LastPrice NUMBER(19,4)
) TABLESPACE products_tsp_1;

10、验证sharding表和表空间
select TABLESPACE_NAME, BYTES/1024/1024 MB from sys.dba_data_files order by tablespace_name;

set linesize 140
column table_name format a20
column tablespace_name format a20
column partition_name format a20
show parameter db_unique_name
select table_name, partition_name, tablespace_name from dba_tab_partitions where tablespace_name like 'C%TSP_SET_2' order by tablespace_name;

Oracle Sharding相关推荐

  1. oracle 12.2 启用分片,关于Oracle Sharding,你想知道的都在这里

    编辑手记:随着Oracle12.2的发布,Sharding技术也逐渐变得越来越强大,关于Sharding,你所关心的问题的答案,可能都在这里. 注:本文来自Oracle FAQ文档翻译 相关阅读:什么 ...

  2. Oracle Sharding DB的高可用架构

    sharding database最大的特点是可以横向扩展.但是横向扩展不是RAC的横向扩展,纯sharding db是没有HA架构的.即一个shardcat db,多个shard node db.无 ...

  3. 循序渐进:Oracle 12c新特性Sharding技术解读

    作者简介 邝志辉 4年 ORACLE SSC(方案解决中心)高级工程师工作经验,6年 ORACLE Exadata 一体机产品维护经验:8年大型数据库运维经验,曾负责华为.工商银行.广东移动.中国信托 ...

  4. 从原理到实践:Oracle 12.2 Sharding技术揭秘

    何剑敏 Oracle ACS华南区售后团队,首席技术工程师 曾供职于中国联通信息计费部.卓望数码,系统支撑部首席DBA,负责中国移动全网梦网业务和移动应用商城数据库维护.后供职于IBM,负责米其林项目 ...

  5. ORACLE18C具有什么特性,Oracle 18c 必须掌握的新特性 Sharding系列(3) -- Sharding对象说明...

    在之前的博客,我们了解了Oracle Sharding 的概念和环境搭建,如下: 本篇我们继续学习Sharding中的对象. 1 分片表(Shard Table) 分片表是通过分区技术分成更小.更好管 ...

  6. 20年资深Oracle数据库专家:国内应用级DBA的缺失

    作者介绍 罗敏,从事Oracle技术研究.开发和服务工作20余年,在Oracle中国公司的10多年,分别在顾问咨询部.技术服务部担任资深技术顾问.曾参与国内银行.电信.政府等多个行业大型IT系统的建设 ...

  7. oracle分片键,数据库SQL语句及性能优化

    3.阅读以下文章,回答一下问题: 3.1.什么是数据库分片技术? 3.2.数据库分片的好处有哪些? 3.3.Oracle 数据库分片技术比NoSQL的分片有哪些优势? Overview of Orac ...

  8. 12c oracle 修改内存_关于Oracle数据库12c 新特性总结

    概述 今天主要简单介绍一下Oracle12c的一些新特性,仅供参考. 参考: http://docs.oracle.com/database/121/NEWFT/chapter12102.htm#NE ...

  9. 快讯:Oracle 19c 新特性及官方文档抢鲜下载

    随着2月的春风吹拂,Oracle 19c 的第一个 Exadata 版本发布将马上发布出来,等待可测试版本的朋友们马上即可如愿了. 目前官方文档已经可以公开下载到,我为大家整理了一些重要文档,包括概念 ...

最新文章

  1. 关于android设备唯一区分device id的取得
  2. 每日一皮:男人有三宝「胡子、发型和肌肉」...
  3. c#开发中程序集调用时容易忽略的问题
  4. 在java中arraylist_在Java中将ArrayList添加到另一个ArrayList
  5. 音视频技术开发周刊 | 151
  6. JAVA 捕获异常所遇BUG
  7. leetcode300 最长上升子序列
  8. 第一章python绝对温标身体质量指数bmi
  9. pta l2-1紧急救援(Dijkstra)
  10. C#图片处理之:Gamma校正
  11. File类里的静态字段
  12. mongdb 模糊查询
  13. html + css 实现淘宝首页(静态页面)
  14. 乱码转换器在线转换_有了这几款视频下载转换软件,想看的视频都可以随意看了...
  15. php 银行卡二三四要素验证接口
  16. MATLAB colormap函数详解
  17. 支持p2p的m3u8.php,m3u8视频播放器集成p2p加速源码分享
  18. ARPG、MMORPG、MOBA、卡牌类、棋盘类游戏服务器架构图
  19. oracle 中(+) 是什么意思
  20. 10G整数中寻找中位数

热门文章

  1. LeetCode刷题(19)
  2. click事件在什么时候出发_关于JS 事件冒泡和onclick,click,on()事件触发顺序
  3. pythonwhile循环实例 其和超过10_Python While循环语句
  4. windows10资讯和兴趣怎么关闭?
  5. Teamcenter 入门开发系列问答(4)
  6. bae java乱码_BAE json 返回乱码。
  7. Ultra-QuickSort(离散化)
  8. #6281. 数列分块入门 5
  9. ESP8266的AP模式与STA模式简单测试
  10. 二叉树的遍历实验报告C语言,二叉树的建立与遍历实验报告(c语言编写,附源代码)...