TDSQL分布式数据库的安装

2020-11-28 12:16:14 浏览数 (1)

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

TDSQL软件下载地址:

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

wget https://tdsql01-1300276124.cos.ap-nanjing.myzijiebao.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.点击【逻辑回档】或【物理回档】,系统弹出回档相关对话框,如下图所示。

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

0 人点赞