1、概述

Tbase 是在开源数据库postgresql的基础进行开发的高度兼容oracle语法的分布式数据库

具体查看:https://github.com/Tencent/TBase/wiki

2、架构图

Coordinator:协调节点(简称 CN),对外提供接口,负责数据的分发和查询规划,多 个节点位置对等,每个节点都提供相同的数据库视图;在功能上 CN 上只存储系统的全 局元数据,并不存储实际的业务数据。

Datanode:处理存储本节点相关的元数据,每个节点还存储业务数据的分片,简称 DN。 在功能上,DN 节点负责完成执行协调节点分发的执行请求。

GTM:全局事务管理器(Global Transaction Manager),负责管理集群事务信息,同时管 理集群的全局对象,比如序列等。

在这个架构下,TBase 集群具有下面几个能力:
多活/多主:每个 coordinator 提供相同的集群视图,可以从任何一个 CN 进行写入,业

务无需感知集群拓扑;

读/写扩展:数据被分片存储在了不同的 DN,集群的读/写能力,随着集群规模的扩大做 而得到提升;

集群写一致:业务在一个 CN 节点发生的写事务会一致性的呈现在其他的 CN 节点,就 像这些事务是本 CN 节点发生的一样;

集群结构透明:数据位于不同的数据库节点中,当查询数据时,不必关心数据位于具体 的节点;

TBase 的 share nothing 集群架构方便了业务接入,降低了业务接入的门槛。

3、测试环境

3.1 组件列表

目前安装的是分布式Tbase V5版本。

角色

ip

配置

备注

cn1_主

  8core 16g 500g db读写连接ip
cn1_备   8core 16g 500g db只读连接ip
cn2_主   8core 16g 500g db读写连接ip
cn2_备   8core 16g 500g db只读连接ip
gtm_主   8core 16g 500g 全局事务
gtm_备   8core 16g 500g 全局事务
dn1_主   16core 64g 3.7t 数据分片存储节点
dn1_备   16core 64g 3.7t 数据分片存储节点
dn2_主   16core 64g 3.7t 数据分片存储节点
dn2_备   16core 64g 3.7t 数据分片存储节点
dn3_主   16core 64g 3.7t 数据分片存储节点
dn3_备   16core 64g 3.7t 数据分片存储节点
oss   8core 16g 500g

http://10.94.140.14:8080/

tbase集群管理平台

dbbridge   8core 16g 500

http://10.94.140.9:31030/

数据迁移

3.2  测试数据说明

staging 环境o下的所有业务表和视图。默认分布键采用主键的第一关键字。

3.3 连接信息

ip:10.94.

port:11345

database:

user:

3.4 连接工具

Tbase是基于postgresql开发的,目前postgresql的连接工具都是可以直接连接tbase的,虽然存在小量差异,但并影响不大,具体使用如下:

  1. 开发同事使用桌面连接方法:使用常用navicat \ pgadmin\dbeaver等工具。
  2. dba同事需兼顾使用tbase自带但psql进行连接,该工具可以使用" \d+ schema.tablename"方法查看表类型、分布键、分布节点方式。
  3. java应用连接建议是tbase 定制但jar包(postgresql-42.2.12-TBase.jar)进行连接,具体查看附件。postgresql-42.2.12-TBase.jar
  4. python连接,使用现有pg库就可以了。

参考:https://github.com/Tencent/TBase/wiki/4%E3%80%81TBase%E5%BA%94%E7%94%A8%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97

4、开启oracle 特性

grant all on schema pg_oracle to cbs;

相关参数设置:

name

value

enable_oracle_compatible

on  
orafce.nls_date_format    
orafce.timezone PRC  
orafce.varchar2_null_safe_concat off  
support_oracle_compatible on  

参数修改方法:建议使用oss的【运维管理】-->【配置管理】

修改参数语法

alter system set support_oracle_compatible=on;

5、创建数据库和schema

5.1 创建数据库

create database CBS ENCODING UTF8 lc_collate 'zh_CN.utf8';

字符集只能继承db 模版(template0/template1)的字符集。

查看命令

psql>/l

5.2 创建schema

建立用户

create role toubao with login password 'toubao@123';

建立用户对应的模式

create schema toubao AUTHORIZATION toubao;

这样使用用户toubao连接数据库,就不需要指定模式的情况下直接访问toubao模式下的数据表。

特别提醒

在tbase和postgresql中模式与用户不存在必要的对应关系,而且一个用户可以拥有多个模式

5.3 访问用户和权限授予参考pg模式

CREATE USER name [ [ WITH ] option [ ... ] ]where option can be:SUPERUSER | NOSUPERUSER| CREATEDB | NOCREATEDB| CREATEROLE | NOCREATEROLE| INHERIT | NOINHERIT| LOGIN | NOLOGIN| REPLICATION | NOREPLICATION| BYPASSRLS | NOBYPASSRLS| CONNECTION LIMIT connlimit| [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL| VALID UNTIL 'timestamp'| IN ROLE role_name [, ...]| IN GROUP role_name [, ...]| ROLE role_name [, ...]| ADMIN role_name [, ...]| USER role_name [, ...]| SYSID uid

授权

grant select on book to hqq;

grant all on all tables in schema cbs to cbs;

alter table s02.t02 owner to schema_owner_01;

grant all on schema pg_oracle to cbs

5.4 应用登陆后免schema前缀的设置

配置数据库的默认搜索路径

alter database postgres set search_path to "$user", public,user1,user2;

配置用户的默认搜索路径

alter role user1 set search_path to "$user";

配置session的搜索路径

set search_path to public;

参数优先级别

session > 用户 > 数据库 > 系统默认

6 Tbase的表类型

Tbase的表类型可以分为分布式和复制表两类型。具体说明如下:

6.1 分布表

shared key必须为主键的一部分,如果不指定则使用主键的第一个关键字作为分布键。

创建语法:

--普通分布表

create table public.t1

(

f1 int not null,

f2 varchar(20),

primary key(f1)

)

distribute by shard(f1)

to group default_group

;

--分布分区表

create table public.t1_pt

(

f1 int not null,

f2 timestamp not null,

f3 varchar(20),

primary key(f1)

)

partition by range (f2)

begin (timestamp without time zone '2019-01-01 0:0:0')

step (interval '1 month') partitions (3)

distribute by shard(f1)

to group default_group;

--冷热分区表

create table public.t1_cold_hot

(

f1 int not null,

f2 timestamp not null,

f3 varchar(20),

primary key(f1)

)

partition by range (f2)

begin (timestamp without time zone '2019-01-01 0:0:0')

step (interval '1 month') partitions (3)

distribute by shard(f1,f2)

to group default_group cold_group;

6.2 复制表

create table public.t1_rep

(

f1 int not null,

f2 varchar(20),

primary key(f1)

)

distribute by replication

to group default_group;

Tbase基础积累一相关推荐

  1. Tbase基础积累二之数据迁移工具dbbridge

    一.工具介绍 dbbridge是腾讯云提供的用于实现oracle.mysql等异构数据库迁移到Tbase.TDSQL的工具.目前只有私有化部署,要想获取安装包需要联系腾讯云的客服/技术支持. dbbr ...

  2. 【基础积累】目标检测NMS—精度提升篇

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要10分钟 Follow小博主,每天更新前沿干货 作者:曲終人不散丶 知乎链接:https://zhuanlan.zhihu.com/p/151 ...

  3. js 计算精确度问题——基础积累

    js计算精确度问题--基础积累 最近在写一个后台管理系统时,遇到一个问题. 场景:输入三个值,计算三个值的和. 然后就遇到了上图中的js精确度的问题. 然后在浏览器控制台复现了.这个是js精确度的问题 ...

  4. office 文档 在线预览功能实现(word,excel,pdf,ppt等多种格式)——使用https://view.xdocin.com/view 提示文档过期——基础积累

    web实现office文档在线预览功能--基础积累 最近遇到一个需求,就是要实现多种文档链接的在线预览,最简单的方式就是通过window.open(url地址)的方式来实现. 但是如果要求是在一个弹窗 ...

  5. vue-pdf插件实现pdf文档预览(自动分页预览)——基础积累

    vue-pdf插件的使用--基础积累 使用vue-pdf插件实现如下效果图: 实现功能:1.多个pdf预览,2.获取页码,每个pdf文档实现分页预览功能 实现步骤如下: 1.npm安装 在根目录下输入 ...

  6. java程序员从笨鸟到菜鸟_Java程序员从笨鸟到菜鸟之(十四)Html基础积累总结(上)...

    [新朋友]点击标题下面(↑)蓝色字"Java那些事"关注 [老朋友]点击右上角,转发或分享本页面内容 这是我以前写的<java程序员由笨鸟到菜鸟>系列博客,每天更新一篇 ...

  7. Java基础积累:阻塞队列

    队列 目录 队列 阻塞队列 常用方法 常用队列 实现原理 阻塞队列 阻塞队列(BlockingQueue)是一个支持如下两个附加操作的队列. A.支持阻塞的插入方法:意思是当队列满时,队列会阻塞插入元 ...

  8. 富文本编辑器——UEditor的使用——基础积累

    富文本编辑器--UEditor的使用--基础积累 之前在做后台管理系统时,遇到了一个富文本编辑器的功能,用于新闻内容的编辑. 话不多说,直接上效果图: 全屏的效果及对应的功能菜单如下: 上面的菜单已经 ...

  9. Linux操作系统管理公共基础——积累

    20170609 16:00 备注:本篇博文,借鉴新浪博客中用博文积累文学知识.英语词汇的好习惯的成功养成,这里同样是一篇知识积累型的博文,用于记录任何.各种关于Linux系统技术的新发现.这些技术多 ...

  10. 【目标检测基础积累】常用的评价指标

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]目标检测(Object Detection)是计算机视觉中四大基础任务之一 ...

最新文章

  1. 如何比较传统WAN与SD-WAN?有什么差别? Vecloud微云
  2. 前端学习(615):变量
  3. php 登陆微博,PHP调用微博接口实现微博登录的方法示例
  4. mqttnet 详解_MQTT协议详解
  5. 不喜欢在北京的感觉,删掉几篇北京生活的随笔。以后能忘掉这个地方就好了。...
  6. 改进的脱机手写体汉字细化算法
  7. 我的Android进阶之旅------百度地图学习:BDLocation.getLocType ( )值分析
  8. mac os x 系统安装 genymotion android 模拟器
  9. linux 极路由救砖,极路由三不死u-boot刷机方法
  10. UE4 Slate七 Slate本地化, UE4编辑器如何做的本地化
  11. SpringBoot框架下使用过滤器Filter
  12. CF卡显示位置不可用无法访问介质受写入保护怎么办
  13. 完美卸载Visual Studio2015的方法汇总
  14. 2022年上半年计算机技术与软件专业技术资格(水平)考试陕西考区报名须知
  15. MySQL——数据库锁原理
  16. Altium_Designer(protel_DXP)英文菜单汉化对应表表
  17. 2022护眼产品展,视力康复展,山东国际眼健康展会,护眼仪展
  18. duration缩写_关于光端机专业名词的中英文及缩写??
  19. htb snoopy wp记录
  20. python程序设计实验指导书第1版实验三十四_《python编程基础》实验指导书.doc

热门文章

  1. google gflags使用指南
  2. 二建 机电工程常用材料及工程设备
  3. 线性表的链式存储结构(C语言实现)
  4. 企业数字化信息化运营管理规划方案
  5. 乌班图 修改ip_【转】ubuntu修改IP地址和网关的方法
  6. 阿里云分布式架构云平台解决方案
  7. 责任链模式实现及在Filter中的应用
  8. unity替换鼠标图标
  9. 卸载cad专用软件工具箱 一键安装卸载,安全可靠
  10. 人工智能/机器学习/深度学习 经典必看书籍【附百度网盘链接】