乐趣区

关于数据库:TDSQL分布式数据库的HDFS和LOCAL备份配置

产品介绍: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 的回档操作。

退出移动版