前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TDSQL分布式数据库的安装

TDSQL分布式数据库的安装

原创
作者头像
用户7689089
发布2020-11-28 12:16:14
12.1K0
发布2020-11-28 12:16:14
举报
文章被收录于专栏:MySQL ,TDSQL, Oracle,迁移

TDSQL分布式数据库的安装和使用

TDSQL软件下载地址:

在linux中直接联网下载完整的TDSQL安装包即可,也可复制链接到浏览器中下载完整软件包。

wget https://tdsql01-1300276124.cos.ap-nanjing.myqcloud.com/TDSQL_full_install_package.zip

软件包说明:

压缩包TDSQL_full_install_package.zip包含两个部分:

1、ansible自动化部署压缩包

2、tdsql数据库组件集合压缩包

使用unzip TDSQL_full_install_package.zip将其解压出来,即可进行下列实验。

一、TDSQL分布式数据库的安装部署

1、配置root免密登录其他主机

host1 ip:10.120.109.205

host2 ip: 10.240.139.35

host3 ip:10.120.109.204

注意:实验指导书IP地址均为实验IP地址,部署时仅作为IP划分参考,

请勿在生产环境使用,生产环境请参照TDSQL官方产品手册。

选择一台主机作为主控机

并配置主控机root账户到另外两台主机的单向免密以及和自己认证。

配置免密登录

需要使用root账户

主控机就是规划中ansible模块所在的机器,其它所有机器都是受控机。

我们首先要把自动部署包上传到主控机上。

设置主控机到所有机器(包括自己)的ssh免密登录。

操作1:

ssh-keygen

ssh-copy-id x.x.x.x

如下:

ssh-copy-id -i .ssh/id\_rsa.pub 本机ip地址 ---> 输入root密码

ssh-copy-id -i .ssh/id\_rsa.pub 第二台ip地址 ---> 输入root密码

ssh-copy-id -i .ssh/id\_rsa.pub 第三台ip地址 ---> 输入root密码

PS:需要所有机器上设置yum或apt源(os安装镜像包仓库即可)

需要所有机器间设置时间同步(如有NTP服务器则指向ntp服务,没有本次实验暂时跳过)

2、初始化主机器环境

在主控机上安装ansible

上传安装包并解压(安装包的路径上不能有中文)。

操作2:

unzip ansible\_tdsql\_install.zip

unzip tdsql\_packet\_10.3.14.6.0.zip

解压完成之后有如下三个目录:

ansible\_install

tdsql\_install

tdsql\_packet

cd ansible\_install/script

1、配置yum仓库

sh init\_os\_for\_yum\_install.sh

2、安装python3

sh install\_python3\_for\_x86.sh(使用x86的cpu)

验证python3安装是否成功

source /etc/profile

python3 --version

3、安装ansible

sh install\_ansible.sh

验证ansible安装是否成功

ansible --version

3、TDSQL安装前准备

修改tdsql\_hosts文件,规划组件安装在那些主机

操作3:

cd tdsql\_install/

vim tdsql\_hosts

tdsql\_allmacforcheck <-----填入所有机器的地址,用于环境检测和初始化配置

tdsql\_mac1 ansible\_ssh\_host=10.120.109.205

tdsql\_mac2 ansible\_ssh\_host=10.240.139.35

tdsql\_mac3 ansible\_ssh\_host=10.120.109.204

tdsql\_zk <------填入zk的地址,tdsql\_zk1..5,zk的数量只能是1、3或5

tdsql\_zk1 ansible\_ssh\_host=10.240.139.35

tdsql\_zk2 ansible\_ssh\_host=10.120.109.204

tdsql\_zk3 ansible\_ssh\_host=10.120.109.205

tdsql\_scheduler <------填入scheduler地址,正式环境建议2个schedule

tdsql\_scheduler1 ansible\_ssh\_host=10.120.109.204

tdsql\_scheduler2 ansible\_ssh\_host=10.120.109.205

tdsql\_oss <---填入oss地址,正式环境建议2个oss

tdsql\_oss1 ansible\_ssh\_host=10.240.139.35

tdsql\_oss2 ansible\_ssh\_host=10.120.109.205

tdsql\_chitu <----填入chitu地址,正式环境建议2个chitu

tdsql\_chitu1 ansible\_ssh\_host=10.120.109.204

tdsql\_chitu2 ansible\_ssh\_host=10.120.109.205

tdsql\_monitor <---填入监控和采集模块的地址,正式环境建议2个monito

tdsql\_monitor1 ansible\_ssh\_host=10.120.109.204

tdsql\_monitor2 ansible\_ssh\_host=10.120.109.205

tdsql\_db <----填入db机器的地址

tdsql\_db1 ansible\_ssh\_host=10.240.139.35

tdsql\_db2 ansible\_ssh\_host=10.120.109.204

tdsql\_db3 ansible\_ssh\_host=10.120.109.205

tdsql\_proxy <----填入proxy机器的地址

tdsql\_proxy1 ansible\_ssh\_host=10.240.139.35

tdsql\_proxy2 ansible\_ssh\_host=10.120.109.204

tdsql\_proxy3 ansible\_ssh\_host=10.120.109.205

配置列表如下:

4、需要设置系统账号tdsql的明文密码,可自定义修改。

假定我们给tdsql账号设置的明文密码为:a+complex+password。

修改ansible变量

操作5:

vim group\_vars/all

tdsql\_env\_cpu: x86 <---x86或者arm (必须二选一)

tdsql\_env\_os: yum\_install <---yum\_install或者apt\_install (必须二选一)

tdsql\_zk\_num: 3 <---填入zk集群的数量,1、3或者5

tdsql\_sche\_netif: eth1 <---填入scheduler(ifconfig看到的)网卡的名称

tdsql\_os\_pass: new+complex+password <---填入tdsql账号的明文密码,可自定义修改

tdsql\_zk\_rootdir: /tdsqlzk <---填入tdsql系统在zk上的根路径(一般不改)

5、进行TDSQL第一部分配置的部署

sh playbooks/tdsql\_encrypt.sh <---------必须执行,更新密文密码

ansible-playbook -i tdsql\_hosts playbooks/tdsql\_part1\_site.yml

二、TDSQL分布式数据库赤兔平台的初始化

通过访问前面配置的OSS选项:

我们可以通过vim tdsql\_hosts查看到如下选项的ip:

tdsql\_oss <---填入oss地址,正式环境建议2个oss

tdsql\_oss1 ansible\_ssh\_host=xx.xx.xx.xx

网页访问安装chitu模块的机器地址,http://xx.xx.xx.xx/tdsqlpcloud进行chitu初始化,

例:

http://10.120.109.205/tdsqlpcloud

web登录tdsql安装向导界面
web登录tdsql安装向导界面
初始化赤兔平台1
初始化赤兔平台1
上报设备资源
上报设备资源
添加IDC机房名称
添加IDC机房名称
添加主机信息
添加主机信息
添加proxy主机
添加proxy主机
上报DB安装主机资源
上报DB安装主机资源
添加网关组
添加网关组
整体总览
整体总览
创建TDSQL全局配置监控库
创建TDSQL全局配置监控库
配置库信息
配置库信息
TDSQL登录界面
TDSQL登录界面
配置库信息
配置库信息

TDSQL的第二部分组件安装

接下来进行将监控库的连接参数写入到变量文件group\_vars/all中

vim group\_vars/all 修改如下参数


tdsql\_metadb\_ip: 10.120.109.204 <-----填监控库proxy的ip地址

tdsql\_metadb\_port: 15001 <-----填监控库proxy的端口

tdsql\_metadb\_ip\_bak: 10.120.109.205 <-----填监控库备份proxy的ip地址

tdsql\_metadb\_port\_bak: 15001 <-----填监控库备份proxy的端口

tdsql\_metadb\_user: hanlon <-----填监控库的访问用户名

tdsql\_metadb\_password: hanlon <-----填监控库的访问密码

sh playbooks/tdsql\_encrypt.sh <---------必须执行,更新密文密码

ansible-playbook -i tdsql\_hosts playbooks/tdsql\_part2\_site.yml

TDSQL安装部署到此完成

====================================================================

三、TDSQL分布式数据库分布式实例的创建

分布式实例的创建

  1. 在赤兔管理台主界面,点击【实例管理】,进入实例管理界面。
赤兔平台选择创建分布式实例
赤兔平台选择创建分布式实例
  1. 点击【创建分布式实例】,系统弹出【创建实例(分布式)】对话框,默认进入【实例-基础设置】子菜单,如下图所示:
配置分布式实例
配置分布式实例
  1. 在【实例-基础设置】子菜单中填写相关实例信息。
设置set数据节点选项
设置set数据节点选项
  1. 点击【下一步】,进入【子SET-基础设置】子菜单,如下图所示,设置子Set的机型和规格信息。
配置set节点的容灾
配置set节点的容灾
  1. 在赤兔管理台主界面,点击【实例管理】,进入实例管理界面。

================================================================================================

四、TDSQL分布式数据库分布式表的创建

1、我们在安装了mysql客户端的主机上,远程登录

mysql -u分布式实例名 -h实例proxy的IP -P端口号 -p

例:mysql -utestuser -h172.21.16.2 -P15001 -p'Test\_password'

2、TDSQL分布式实例在创建表的时候使用主键,在分布式表中要求SQL语句中显示指定拆分建Shardkey,

例:create table tb1 ( user\_id int not null,age int not null,

place char(20) not null,primary key(user\_id, age) ,

unique key(user\_id, place)) shardkey= user\_id;

在进行数据插入式,只需要像使用普通的mysql集中式一样使用即可。

但不能对shardkey所指定的user\_id列进行数据更新,因为这样会影响

到SQL数据路由的变更。

3、事务的执行

我们可以使用:

begin;

commit/rollback;

去执行事务,默认情况下TDSQL事务隔离级别采用read commit。

例:MySQL test> show variables like '%idso%';

Empty set (0.00 sec)

MySQL test> show variables like '%iso%';

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

| Variable\_name | Value |

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

| transaction\_isolation | READ-COMMITTED |

| tx\_isolation | READ-COMMITTED |

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

2 rows in set (0.00 sec)

MySQL test>

MySQL test> select \*from tab1;

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

| id | name |

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

| 1 | TDSQL1 |

| 2 | TDSQL2 |

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

2 rows in set (0.00 sec)

MySQL test> begin;

Query OK, 0 rows affected (0.00 sec)

MySQL test> insert into tab1(id,name) values(3,'TDSQL1'),(4,'TDSQL2');

Query OK, 2 rows affected (0.00 sec)

Records: 2 Duplicates: 0 Warnings: 0

MySQL test> rollback;

Query OK, 0 rows affected (0.00 sec)

MySQL test> select \*from tab1;

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

| id | name |

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

| 1 | TDSQL1 |

| 2 | TDSQL2 |

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

2 rows in set (0.00 sec)

MySQL test>

================================================================================================

五、TDSQL通过赤兔平台进行备份和回档方法

第一种方式:手动备份数据

  1. 在赤兔管理台主界面,点击【实例详情】>点击所需实例ID>【DB监控】>【备份&恢复】,进入备份列表界面。
在赤兔平台选择手动备份
在赤兔平台选择手动备份
  1. 点击【手动备份】,系统弹出【手动备份】对话框,如下图所示。
手动备份选项设置
手动备份选项设置

注意:

如果手动备份选择本地tdsql 会检测本地目录中是否有/tdsqlbackup 路径,如果有的话会自动备份到/tdsqlbackup 目录下,这

个/tdsqlbakcup 目录必须是网络文件系统的挂载点,但是这个路径有一些限制如下:

手动备份到本地磁盘需要有一个挂载点到/tdsqlbackup

agent 会检查这个目录是否是挂载点(挂载本地磁盘或 nfs 之类的都可以),如果不是或没有则通过赤兔平台

执行手动备份会报错。

手动备份挂载远程NFS到本地/tdsqlbackup目录
手动备份挂载远程NFS到本地/tdsqlbackup目录
TDSQL手动备份文件列表
TDSQL手动备份文件列表

另外如何使用HDFS方式进行备份则需要进行配置HDFS组件才可以进行使用。

自动备份设置

1.进入备份设置界面。

通过实例详情页,进入备份设置界面。

对于非分布式实例:点击【实例管理】>选择所需非分布式实例ID>【DB监控】>【实例详情】>【备份设置】。

对于分布式实例:点击【实例管理】>选择所需分布式实例ID>【DB监控】>【Set管理】>选择所需SetID>【实例详情】>【备份设置】。

通过备份&恢复界面,进入备份设置界面。

点击【实例管理】>点击所需实例ID>【DB监控】>【备份&恢复】>【备份设置】。

2.点击【备份设置】,进入备份设置界面,如下图所示。

自动备份配置项
自动备份配置项

数据恢复回档

存在物理备份时,支持实例级数据回档。

存在逻辑备份时,可以支持库表级数据回档。

1.在赤兔管理台主界面,点击【实例详情】>点击所需实例ID>【DB监控】>【备份&恢复】,进入备份列表界面。

2.点击【逻辑回档】或【物理回档】,系统弹出回档相关对话框,如下图所示。

实例的恢复回档
实例的恢复回档

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
TDSQL MySQL 版
TDSQL MySQL 版(TDSQL for MySQL)是腾讯打造的一款分布式数据库产品,具备强一致高可用、全球部署架构、分布式水平扩展、高性能、企业级安全等特性,同时提供智能 DBA、自动化运营、监控告警等配套设施,为客户提供完整的分布式数据库解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档