腾讯云数据库TDSQL——极速体验tdsql私有云

目录

认识TDSQL

整体架构

组件介绍

安装部署

规划环境

简单部署

准备tdsql包

免密配置

准备数据目录

修改tdsql_hosts文件

修改group_vars配置(ansible变量)

安装ansible(主控机)

安装zk(part1_site)

初始化chitu 

再次修改ansible(主要是增加proxy及端口)

执行安装part2_site 

其他可选模块 

总结


认识TDSQL

根据百度百科的搜索信息显示,2020年12月腾讯云数据库品牌升级,腾讯云原有的TDSQL、TBase、CynosDB三大产品线将统一升级为“腾讯云企业级分布式数据库TDSQL”。全新升级后的腾讯云TDSQL涵盖分布式、分析型、云原生等多引擎融合的完整数据库产品体系。

 目前,截止到发文,笔者在官网上是看到了TDSQL MySQL版和TDSQL PostgreSQL版这两种相关产品。

 当然,其衍生的系列产品还是蛮多的。大家可以根据需求去选择合适的产品。

笔者本次主要探究的是TDSQL MySQL版(私有云),官方文档见:

TDSQL MySQL版(私有云) 10.3.16.2.x-新版本新特性-文档中心-腾讯云-腾讯云

本文使用Tencent云数据库TDSQL交流群中提供的新版本tdsql_10.3.17.3.0进行体验,目的是为了初步走入TDSQL世界。

整体架构

整体看来,和传统的通用型商用关系型数据库产品不同,更像是一个数据库+大数据的分布式解决方案(一键部署方案)。

组件介绍

组件缩写

组件名称

备注

Zookeeper

zookeeper集群

高可用和一致性集群

Keeper(manager/scheduler)

TDSQL调度模块

主备切换/扩缩容/资源管理

OSS

TDSQL操作接口

提供http的操作接口

DB

数据库模块

包含mysql和agent

proxy

网关模块

帐号鉴权/sql解析和转发

monitor

监控采集模块

从zk定期采集实例动态数据

chitu

运营平台

实例管理/告警管理/权限控制

clouddba

扁鹊系统

sql优化和诊断

HDFS

冷备存储模块

备份binlog/slowlog/errlog

LVS

负载均衡模块

提供vip,对业务透明后端proxy

kafka

消息队列

是多源同步和es的基础组件

consumer

多源同步消费者

提供mysql、tdsql和oracle之间的同步方案

es

数据检索及分析工具

用于分析网关日志,帮助定位问题

onlineddl

在线表结构变更

用于在chitu页面变更tdsql实例的表结构

安装部署

规划环境

部署方式请参考官方的手册。

由于本地环境资源不足,这里构建出三个虚拟机,使用三台虚拟机来搭建一个最小的TDSQL集群(2台用于DB、1台用于调度和运营体系部署)。

备注:虚拟机环境均为:

        2核+AMD Ryzen 5 PRO 4650U+CentOS7+2G内存,配置可以说是极低(所以可选的组件本文就不安装了)。

三台虚拟机规划如下:

组件

192.168.253.102

192.168.253.202

192.168.253.212

zookeeper

Y

Y

Y

scheduler

Y

Y

oss

Y

Y

chitu

Y

Y

monitor

Y

Y

db

Y

Y

proxy

Y

Y

hdfs

Y

...

...

...

...

Note: 值得注意的是,在本文的整个安装部署过程中,由于本地虚拟机资源实在低得让人抱歉,会出现一些意想不到的情况。笔者也只能无奈中进行解决和规避。如果在高质量环境(高配物理机)中,可以关注一下是否出现文中提及的类似问题,我想,应该会好很多。

简单部署

准备tdsql包

#下载tdsql_10.3.17.3.0.zip,解压

unzip tdsql_10.3.17.3.0.zip

免密配置

ssh-keygen -t rsa #在102机器上执行,这里不需要输入密码

ssh-copy-id 192.168.253.102

ssh-copy-id 192.168.253.202

ssh-copy-id 192.168.253.212

准备数据目录

#102机器

mkdir /data

#202和212机器

mkdir /data

mkdir /data1

修改tdsql_hosts文件

按照自己的规划去修改对应组件的配置即可。

修改group_vars配置(ansible变量)

vim group_vars/all

 按官方说明配置即可。

安装ansible(主控机)

source scripts/environment_set

sh scripts/install_ansible.sh

ansible --version

安装zk(part1_site)

ansible-playbook -i tdsql_hosts playbooks/tdsql_part1_site.yml

等待一段时间后,报错了。

CPU数必须大于=2,调整cpu为2核后,又报错: 

内存必须大于5G。

好吧,我的虚拟机根本不足以支撑这个环境检查。

那没办法了,为了体验下安装,只好修改检查的脚本了,看看后续能不能继续运行吧,毕竟我又不准备装kafka。

vim roles/tdsql_env_check/files/checkenv/docheck.sh

注释掉检查项。

后面检查其他机器时,也会报类似检查错误,如法炮制,修改脚本。

然后再执行zk安装。

资源不足的情况下,在注释掉CPU和MEM的检查后,是可以安装zk成功的。(在此,请提前准备好足够资源的部署环境吧,毕竟咱要处理的可是海量数据。笔者不在公司,手头的破笔记本也只能呜呼了。)

由于虚拟机配置实在差劲,等了N久之后,终于再次报错了。

我去看了一下./roles/tdsql_chitu/files/shell_scripts/install_php.sh脚本,发现安装PHP的步骤没有成功,也没有将对应的php源码包拷贝到/data/tools目录下,因此导致没有安装成功。 (哪块脚本没拷贝过去?还得上班,没时间去查了,就这样吧。)

决定手动编译一下。

将./group_files/tdsql_php/php.tar.gz拷贝到/data/tools下,按照tdsql脚本的configure进行编译安装。

cp  ./group_files/tdsql_php/php.tar.gz /data/tools/

cd /data/tools/

tar xvfp php.tar.gz

cd php

./configure --prefix=/usr/local/php --enable-fpm \

--with-fpm-user=nginx \

--with-fpm-group=nginx \

--with-libxml-dir \

--with-gd \

--with-jpeg-dir \

--with-png-dir \

--with-zlib-dir \

--enable-gd-jis-conv \

--enable-mysqlnd \

--enable-mbstring \

--with-mysqli=mysqlnd \

--with-pdo-mysql=mysqlnd \

--enable-sockets \

--enable-soap \

--with-curl \

--with-openssl

make && make install

弄好php后,再安装zk试试,没有问题了。

最后显示failed任务数为0表示安装成功。

初始化chitu 

网页访问安装chitu模块的机器地址,初始化chitu。

http://192.168.253.202/tdsqlpcloud

1)进入安装向导页面

这边我得吐槽一下,用QQ浏览器腾讯自家的浏览器居然显示不出来页面。(如下)

 

 2)环境检测

3)集群接入

 

 4)集群初始化

逐一配置IDC、机型规格、设备资源、网关组等信息,然后创建分布式实例。

为方便,这块建了一个一主零备,请实际用多节点吧。(这块没显示出来网关?

5)初始化非分布式实例

 

6)为系统配置数据库

这块遇到一个问题。

如果使用TDSQL实例,测试数据库连接会报错。如果使用普通数据库实例,则可以测试成功。

 

然后,开始安装。

7)进入软件授权管理

默认跳过此步骤即可。

 

完成安装,进入运营页面。 

 

登录成功。

我这块看不到网关,很奇怪。(初步看,似乎是前面执行install proxy port脚本的时候发生了core,导致最后一步网关设置没完成)

但是同样是可以成功连接数据库的。

mysql -utdsqlpcloud -h192.168.253.202 -P14003 -p'password'

再次修改ansible(主要是增加proxy及端口)

 示例:

执行安装part2_site 

ansible-playbook -i tdsql_hosts playbooks/tdsql_part2_site.yml

没多久,就完成了。

其他可选模块 

如hdfs,lvs,kafka,consumer,es等可选组件,由于时间以及资源的关系,本文就不再安装了。

总结

通过本文,熟悉了TDSQL的各组件模块和一键部署流程,基本完成了TDSQL私有云的本地部署,并可以成功访问数据库,达到了体验的目的。

最后,以一条SQL语句结尾吧。

[root@tdsql_test_zk2 tdsqlinstall]# mysql -utdsqlpcloud -h192.168.253.202 -P14003 -p'password'

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MySQL connection id is 15743

Server version: 5.7.35-V2.0R681D005-v17-20210125-2105-log Source distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]>

MySQL [(none)]> select version() from dual;

+-------------------------------------------+

| version()                                 |

+-------------------------------------------+

| 5.7.35-V2.0R681D005-v17-20210125-2105-log |

+-------------------------------------------+

1 row in set (0.00 sec)

MySQL [(none)]>

猜你喜欢

转载自blog.csdn.net/xiemouxx/article/details/124597596