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
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分布式数据库分布式实例的创建
分布式实例的创建
- 在赤兔管理台主界面,点击【实例管理】,进入实例管理界面。
- 点击【创建分布式实例】,系统弹出【创建实例(分布式)】对话框,默认进入【实例-基础设置】子菜单,如下图所示:
- 在【实例-基础设置】子菜单中填写相关实例信息。
- 点击【下一步】,进入【子SET-基础设置】子菜单,如下图所示,设置子Set的机型和规格信息。
- 在赤兔管理台主界面,点击【实例管理】,进入实例管理界面。
================================================================================================
四、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通过赤兔平台进行备份和回档方法
第一种方式:手动备份数据
- 在赤兔管理台主界面,点击【实例详情】>点击所需实例ID>【DB监控】>【备份&恢复】,进入备份列表界面。
- 点击【手动备份】,系统弹出【手动备份】对话框,如下图所示。
注意:
如果手动备份选择本地tdsql 会检测本地目录中是否有/tdsqlbackup 路径,如果有的话会自动备份到/tdsqlbackup 目录下,这
个/tdsqlbakcup 目录必须是网络文件系统的挂载点,但是这个路径有一些限制如下:
手动备份到本地磁盘需要有一个挂载点到/tdsqlbackup
agent 会检查这个目录是否是挂载点(挂载本地磁盘或 nfs 之类的都可以),如果不是或没有则通过赤兔平台
执行手动备份会报错。
另外如何使用HDFS方式进行备份则需要进行配置HDFS组件才可以进行使用。
自动备份设置
1.进入备份设置界面。
通过实例详情页,进入备份设置界面。
对于非分布式实例:点击【实例管理】>选择所需非分布式实例ID>【DB监控】>【实例详情】>【备份设置】。
对于分布式实例:点击【实例管理】>选择所需分布式实例ID>【DB监控】>【Set管理】>选择所需SetID>【实例详情】>【备份设置】。
通过备份&恢复界面,进入备份设置界面。
点击【实例管理】>点击所需实例ID>【DB监控】>【备份&恢复】>【备份设置】。
2.点击【备份设置】,进入备份设置界面,如下图所示。
数据恢复回档
存在物理备份时,支持实例级数据回档。
存在逻辑备份时,可以支持库表级数据回档。
1.在赤兔管理台主界面,点击【实例详情】>点击所需实例ID>【DB监控】>【备份&恢复】,进入备份列表界面。
2.点击【逻辑回档】或【物理回档】,系统弹出回档相关对话框,如下图所示。