Tbase基础积累一
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的,虽然存在小量差异,但并影响不大,具体使用如下:
- 开发同事使用桌面连接方法:使用常用navicat \ pgadmin\dbeaver等工具。
- dba同事需兼顾使用tbase自带但psql进行连接,该工具可以使用" \d+ schema.tablename"方法查看表类型、分布键、分布节点方式。
- java应用连接建议是tbase 定制但jar包(postgresql-42.2.12-TBase.jar)进行连接,具体查看附件。postgresql-42.2.12-TBase.jar
- 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 USERname
[ [ WITH ]option
[ ... ] ]whereoption
can be:SUPERUSER | NOSUPERUSER| CREATEDB | NOCREATEDB| CREATEROLE | NOCREATEROLE| INHERIT | NOINHERIT| LOGIN | NOLOGIN| REPLICATION | NOREPLICATION| BYPASSRLS | NOBYPASSRLS| CONNECTION LIMITconnlimit
| [ ENCRYPTED ] PASSWORD 'password
' | PASSWORD NULL| VALID UNTIL 'timestamp
'| IN ROLErole_name
[, ...]| IN GROUProle_name
[, ...]| ROLErole_name
[, ...]| ADMINrole_name
[, ...]| USERrole_name
[, ...]| SYSIDuid
授权
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基础积累一相关推荐
- Tbase基础积累二之数据迁移工具dbbridge
一.工具介绍 dbbridge是腾讯云提供的用于实现oracle.mysql等异构数据库迁移到Tbase.TDSQL的工具.目前只有私有化部署,要想获取安装包需要联系腾讯云的客服/技术支持. dbbr ...
- 【基础积累】目标检测NMS—精度提升篇
点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要10分钟 Follow小博主,每天更新前沿干货 作者:曲終人不散丶 知乎链接:https://zhuanlan.zhihu.com/p/151 ...
- js 计算精确度问题——基础积累
js计算精确度问题--基础积累 最近在写一个后台管理系统时,遇到一个问题. 场景:输入三个值,计算三个值的和. 然后就遇到了上图中的js精确度的问题. 然后在浏览器控制台复现了.这个是js精确度的问题 ...
- office 文档 在线预览功能实现(word,excel,pdf,ppt等多种格式)——使用https://view.xdocin.com/view 提示文档过期——基础积累
web实现office文档在线预览功能--基础积累 最近遇到一个需求,就是要实现多种文档链接的在线预览,最简单的方式就是通过window.open(url地址)的方式来实现. 但是如果要求是在一个弹窗 ...
- vue-pdf插件实现pdf文档预览(自动分页预览)——基础积累
vue-pdf插件的使用--基础积累 使用vue-pdf插件实现如下效果图: 实现功能:1.多个pdf预览,2.获取页码,每个pdf文档实现分页预览功能 实现步骤如下: 1.npm安装 在根目录下输入 ...
- java程序员从笨鸟到菜鸟_Java程序员从笨鸟到菜鸟之(十四)Html基础积累总结(上)...
[新朋友]点击标题下面(↑)蓝色字"Java那些事"关注 [老朋友]点击右上角,转发或分享本页面内容 这是我以前写的<java程序员由笨鸟到菜鸟>系列博客,每天更新一篇 ...
- Java基础积累:阻塞队列
队列 目录 队列 阻塞队列 常用方法 常用队列 实现原理 阻塞队列 阻塞队列(BlockingQueue)是一个支持如下两个附加操作的队列. A.支持阻塞的插入方法:意思是当队列满时,队列会阻塞插入元 ...
- 富文本编辑器——UEditor的使用——基础积累
富文本编辑器--UEditor的使用--基础积累 之前在做后台管理系统时,遇到了一个富文本编辑器的功能,用于新闻内容的编辑. 话不多说,直接上效果图: 全屏的效果及对应的功能菜单如下: 上面的菜单已经 ...
- Linux操作系统管理公共基础——积累
20170609 16:00 备注:本篇博文,借鉴新浪博客中用博文积累文学知识.英语词汇的好习惯的成功养成,这里同样是一篇知识积累型的博文,用于记录任何.各种关于Linux系统技术的新发现.这些技术多 ...
- 【目标检测基础积累】常用的评价指标
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]目标检测(Object Detection)是计算机视觉中四大基础任务之一 ...
最新文章
- 如何比较传统WAN与SD-WAN?有什么差别? Vecloud微云
- 前端学习(615):变量
- php 登陆微博,PHP调用微博接口实现微博登录的方法示例
- mqttnet 详解_MQTT协议详解
- 不喜欢在北京的感觉,删掉几篇北京生活的随笔。以后能忘掉这个地方就好了。...
- 改进的脱机手写体汉字细化算法
- 我的Android进阶之旅------百度地图学习:BDLocation.getLocType ( )值分析
- mac os x 系统安装 genymotion android 模拟器
- linux 极路由救砖,极路由三不死u-boot刷机方法
- UE4 Slate七 Slate本地化, UE4编辑器如何做的本地化
- SpringBoot框架下使用过滤器Filter
- CF卡显示位置不可用无法访问介质受写入保护怎么办
- 完美卸载Visual Studio2015的方法汇总
- 2022年上半年计算机技术与软件专业技术资格(水平)考试陕西考区报名须知
- MySQL——数据库锁原理
- Altium_Designer(protel_DXP)英文菜单汉化对应表表
- 2022护眼产品展,视力康复展,山东国际眼健康展会,护眼仪展
- duration缩写_关于光端机专业名词的中英文及缩写??
- htb snoopy wp记录
- python程序设计实验指导书第1版实验三十四_《python编程基础》实验指导书.doc