产品介绍:TDSQL分布式数据库是腾讯公司联合本身领取、金融等外围业务需要,紧紧抓住了国外传统集中式数据库难以适应业务规模快速增长这一事实问题,从2009年开始研制新一代分布式数据库系统TDSQL。并通过继续的产品化欠缺,实现国产分布式数据库的市场通用化,助力金融政务等行业实现数据库安全可控,并继续升高IT老本,晋升数字化经营效率,从而进一步推动普惠金融、数字政务等传统行业降级倒退。

产品特点:TDSQL作为一款具备金融级个性的分布式数据库产品,具备强统一高可用、寰球部署架构、分布式程度扩大、高性能、易运维、企业级平安等个性,同时提供智能 DBA、自动化经营、监控告警、数据多源异构同步迁徙等配套设施,为客户提供残缺的分布式数据库解决方案。凭借外围事务处理技术的冲破,以及欠缺的零碎生态,解决了国产分布式数据库市场通用化难题。

集中化治理平台:用户能够通过TDSQL的集中管控平台赤兔,进行创立TDSQL的关系型实例、分布式实例,并在实例列表页面查看、变更配置、隔离并销毁实例等操作。

以下简略例举几个性能:

\系统监控与告警:\零碎提供多种办法对数据库实例、决策与调度零碎、备份零碎、管理系统及本身的性能和运行状况进行跟踪。可配置告警策略,对异常情况进行告警,当超过阀值时提供电话、短信或邮件模式的告警。

\参数治理:\用户能够利用控制台的参数设置,治理数据库引擎配置,一组数据库参数包含一系列自定义的引擎配置值,该配置利用于实例数据库。如果用户在创立数据库实例时,如果不批改参数设置,零碎将采纳默认设置。

\接下来咱们来看下TDSQL的备份复原治理\

\\TDSQL的实例提供两种形式的实例创立和应用,一种分布式实例应用分布式表主动分片存储,另一种集中式实例兼容传统mysql,mariadb两个版本。\\

\\\\本次试验操作咱们通过赤兔平台+后端的命令配置来实现整个TDSQL 的备份和数据闪回

TDSQL的备份形式分为:1、手动备份  2、主动备份  3、增量备份(在主动备份选项中) 

备份存储形式分为:1、本地存储 2、近程HDFS形式的存储备份 3、cos腾讯对象存储形式

本次操作共分为4局部:

1、第一局部:HDFS的部署和组件接入

2、第二局部:TDSQL的备份到HDFS存储

3、第三局部: TDSQL如何备份到本地挂载存储

4、第四局部:TDSQL的主动备份和增量备份设置

首先咱们先看下TDSQL的HDFS组件是如何部署和接入应用的,本次咱们疾速的配置开源的单点HDFS来测试下TDSQL的备份复原性能。

HDFS作为分布式文件管理系统,Hadoop的根底。HDFS整体架构包含:NameNode、DataNode 等

1、Namenode:是主节点,负责存储文件的元数据,包含目录、文件、权限等信息和文件分块、正本存储等。

2、Datanode:是从节点,负责本身存储的数据块(block),依据Namenode的指令,对自身存储的文件数据块进行读写,并且对数据块进行定期自检,向Namenode上报节点与数据的衰弱状态。

3、Hadoop shell通过命令上传本地文件到HDFS的DataNode的目录中。

第一局部:HDFS的部署和组件接入

咱们申请一台新的CVM(腾讯云虚拟主机)

HDFS:IP地址:172.21.16.14 云主机的配置:内存16G(最低不能少于4G,否则可能提醒内存不足),磁盘100G,CPU8C

TDSQL主机:

1、批改tdsql\_hosts配置中的HDFS主机信息:

\vim tdsql\_install/tdsql\_hosts\

\tdsql\_hdfs\

\tdsql\_hdfs1 ansible\_ssh\_host=172.21.16.14\ <----- 本次配置单节点HDFS,此处只填方才新建的CVM的IP,其余tdsql\_hdfs2 tdsql\_hdfs3 删除即可

2、批改TDSQL中的group\_vars中all选项中HDFS的变量信息:

\vim tdsql\_install/group\_vars/all\

tdsql\_hdfs\_num: 1 ---- HDFS配置的节点数量

tdsql\_hdfs\_ssh: 36000 ----端口号

tdsql\_hdfs\_datadir: /data2/hdfs,/data3/hdfs -----HDFS应用的目录

tdsql\_hdfsdatadir\_count: 2 -------目录数量

3、应用ansible部署HDFS组件

\cd tdsql\_install\

\ansible-playbook -i tdsql\_hosts playbooks/tdsql\_hdfs\_single.yml\

以上操作均在TDSQL主机上应用原始安装包进行HDFS组件部署。

HDFS主机:

实现部署当前HDFS主机上会有tdsql用户被创立,接下来咱们在HDFS主机上进行hdfs的初始化,并启动服务

1、用tdsql用户在hdfs1机器上,格式化namenode

\su - tdsql\

\hdfs namenode -format\

2、用tdsql用户在hdfs1机器上,启动namenode和datanode

\hdfs --daemon start namenode\

\hdfs --daemon start datanode\

3、配置实现后咱们能够查看下后盾过程状态

在进行HDFS组件初始化实现后,默认会在/ 根目录下创立 \data2-data13\等多个目录,咱们能够通过\ps -ef|grep hdfs\简略查看过程运行状况。

TDSQL主机:

咱们通过赤兔平台,接入赤兔平台对HDFS的监控配置,如下图操作:

\第二局部:TDSQL的备份到HDFS存储\

接下来咱们应用命令形式登录连贯TDSQL,而后简略的创立一些数据,来测试TDSQL的备份,包含物理备份和逻辑备份。

查看proxy的ip地址,通过proxy网关ip,端口,用户名,连贯分布式实例。

登录:mysql -h172.21.16.4 -P15005 -uzhao -p

过程形容:

咱们创立test\_recover数据库------->而后创立分布式表test,t1,t2 并插入数据---------->通过平台在线手动备份--------->备份存储指定HDFS形式-------->而后咱们drop表 ----------》进行数据回档------------>验证被删除的表是否可能找回。

操作如下:

1、创立测试数据库test\_recove

MySQL (none)> create database test\_recover;

Query OK, 1 row affected (0.01 sec)

2、创立分布式表,并插入数据

MySQL (none)> use test\_recover;

Database changed

MySQL test\_recover> create table test (id int primary key ,name varchar(20),time1 timestamp default now()) shardkey=id;

Query OK, 0 rows affected (1.61 sec)

留神:分布式表创立时,须要满足以下条件:1、表中必须有主键 2、必须显式的指定shardkey分片列

MySQL test\_recover> insert into test(id,name,time1) values(111,'TDSQL1',now()),(222,'TDSQL2',now()),(333,'TDSQL3',now());

Query OK, 3 rows affected (0.01 sec)

Records: 3 Duplicates: 0 Warnings: 0

留神: 数据插入时,必须蕴含shardkey分片列,如果不指定shardkey的id列数据无奈插入做分片,SQL会间接报错。

MySQL test\_recover> select * from test;

| id | name | time1 |

| 222 | TDSQL2 | 2020-11-03 18:44:28 |

| 333 | TDSQL3 | 2020-11-03 18:44:28 |

| 111 | TDSQL1 | 2020-11-03 18:44:28 |

3 rows in set (0.00 sec)

MySQL test\_recover>

MySQL test\_recover>

MySQL test\_recover> create table t1 like test;

Query OK, 0 rows affected (1.52 sec)

MySQL test\_recover> create table t2 like test;

Query OK, 0 rows affected (1.52 sec)

MySQL test\_recover> insert into t1 select * from test;

Query OK, 3 rows affected (0.03 sec)

MySQL test\_recover> insert into t2 select * from test;

Query OK, 3 rows affected (0.01 sec)

MySQL test\_recover>

接下来通过赤兔平台进行实例的物理备份:

3、第三局部: TDSQL如何备份到本地挂载存储*

备份到local有两点要求:

1、须要在备机节点中确认是否有/tdsqlbackup目录,如果没有须要创立,并且授予读写权限。如图下图

2、/tdsqlbackup目录作为挂载点存在,须要挂载网络文件系统NFS的形式才可应用。

留神:tdsql会检测本地是否有/tdsqlbackup门路,如果有的话会主动备份到/tdsqlbackup目录下,这个/tdsqlbakcup目录必须是网络文件系统的挂载点。

咱们在172.21.16.14主机上再配置NFS服务,而后创立NFS共享的目录

简称近程NFS服务器为:NFS,TDSQL备份节点简称:TDSQL\_BK

NFS配置如下:

yum -y install nfs-utils.x86\_64

systemctl restart nfs.service

systemctl restart rpcbind.service

编辑NFS配置文件

vim /etc/exports

/local100 172.21.16.0/24(rw,sync)

/local200 172.21.16.0/24(rw,sync)

mkdir -p /local100

mkdir -p /local200

chmod 777 /local100

chmod 777 /local200

TDSQL\_BK上:

在tdsql的备份节点端同样装置nfs,而后创立目录

mkdir -p /tdsqlbackup

chmod 777 /tdsqlbackup

showmount -e 172.21.16.14

Export list for 172.21.16.14:

/local200 172.21.16.0/24

/local100 172.21.16.0/24

挂载NFS共享文件到TDSQL /tdsqlbackup

mount 172.21.16.14:/local100 /tdsqlbackup

df -Th

172.21.16.14:/local100 nfs4 99G 6.8G 88G 8% /tdsqlbackup

通过赤兔平台,物理备份到local存储

查看备份目录生成的文件:

root@VM-16-4-centos tdsqlzk# pwd

/tdsqlbackup/tdsqlzk

root@VM-16-4-centos tdsqlzk# ls

autocoldbackup group\_1604464738\_156 group\_1604467395\_162 group\_1604468462\_164

第四局部:TDSQL的主动备份和增量备份设置

默认状况下,TDSQL实例申请后将主动开启物理备份,每天业务低谷期(凌晨00:00~06:00)将主动全量备份数据;如果存在binlog文件,则每5分钟主动备份binlog文件。可通过实例详情页和备份&复原界面进行备份设置。主动备份的地址将依据用户须要进行配置。

(1) 默认会开启全量物理备份,敞开全量逻辑备份,开启Binlog实时增量备份。

(2) 全量物理备份反对增量备份,能够设置增量备份距离天数。

(3) 备份周期:默认每天做一个全量备份。

(4) 备份保留工夫:默认保留30天,能够再经营前台批改保留工夫。

(5) 反对手工执行全量备份,在经营前台手工提交。

TDSQL的备份与复原:\TDSQL提供将数据库定时备份到指定存储地位的能力,备份计划反对物理备份、逻辑备份、增量备份等多种计划。备份零碎可反对HDFS,NAS,COS(腾讯对象存储)等计划。如果不慎将数据删除、写乱,零碎还提供一键复原到指定工夫的“回档”性能,这里下次咱们在介绍TDSQL的回档操作。