文章目录
1 分布式数据库 TDSQL简介
1.1 TDSQL
分布式数据库(Tencent Distributed SQL,以下简称 TDSQL)是腾讯打造的一款企业级数据库产品,具备强一致高可用、全球部署架构、高 SQL 兼容度、分布式水平扩展、高性能、完整的分布式事务支持、企业级安全等特性,同时提供智能 DBA、自动化运营、监控告警等配套设施,为客户提供完整的分布式数据库解决方案。
1.1.1 TDSQL分类
- 兼容MySQL的TDSQL
- MySQL 5.6
- MySQL 5.7
- MySQL 8.0
- MariaDB 10.1
- 兼容PostgreSQL的TDSQL
- PostgreSQL 10
1.1.2 TDSQL特性
- 自动水平拆分
- 领先的分布式架构
- 不停机弹性扩展
- 强同步复制
- 超高性能
- 提供公有云和专有云部署
- 企业级的数据安全
- 兼容多种数据库引擎
- 专有云集群扩展能力
1.1.3 TDSQL应用场景
实时高并发事务系统**:互联网、移动互联网、电商等业务的蓬勃发展,使客户量不断增长,业务核心系统需经受高并发访问的考验。TDSQL 的 share nothing 架构可以在线平滑地扩展实例规模,从容应对此类场景;同时,TDSQL 提供的分布式事务一致性能力能保证高并发场景下的分布式系统事务一致性。
金融级核心交易系统:随着手机银行、网上理财、区块链等等具有互联网特色的金融业务兴起,单笔交易变小,交易次数变多等情况;传统架构逐渐不足以支撑业务发展,网络安全风险逐渐增加; TDSQL 不仅在性能容易扩展,强同步能力也确保数据不错不丢,是国内第一个将分布式事务应用于金融系统的产品,同时支持部署在腾讯金融云,支持物理独享,加密,审计等系列安全方案。
HTAP 业务系统:在数据库系统应用中,OLTP 场景涉及数据量小,但对返回实时性要求高,OLAP 类场景涉及的数据量和计算量大,但是对实时性要求不高,一套系统里能同时覆盖 OLTP 以及 OLAP 场景是业务对数据库系统的一个很强烈的诉求。TDSQL 特有的架构设计,可同时覆盖 OLTP 和 OLAP 的需求。
物联网类应用系统:TDSQL MySQL 版支持 JSON 让开发者用自己熟悉的协议开发系统;同时可扩展 RocksDB,让数据压缩率低至20%以下,二级分区让冷热数据有效快速的分离处理,极大的降低了数据存储成本和冷数据处理效率。PostgreSQL 版支持先进的开源地理信息引擎 PostGIS,结合位置信息和已有的地理信息进行关联分析,可以快速得到具有分析价值的数据结果。
1.2 TDSQL MYSQL版
TDSQL MySQL版(TDSQL for MySQL)是部署在腾讯云上的一种支持自动水平拆分、Shared Nothing 架构的分布式数据库。TDSQL MySQL版 即业务获取的是完整的逻辑库表,而后端会将库表均匀的拆分到多个物理分片节点。
TDSQL MySQL版 默认部署主备架构,提供容灾、备份、恢复、监控、迁移等全套解决方案,适用于 TB 或 PB 级的海量数据库场景。
TDSQL MySQL版 提供不同的引擎供用户选择,两者均兼容 MySQL 标准协议:
- InnoDB 版采用 InnoDB 作为数据存储引擎,是 MySQL 的默认存储引擎。
- TDStore 版采用腾讯云自研的新敏态引擎 TDstore 作为数据存储引擎,该引擎可以有效解决客户业务发展过程中业务形态、业务量的不可预知性,适配金融敏态业务。
1.2.1 水平分表
水平拆分方案是 TDSQL MySQL版 的基础原理,它的每个节点都参与计算和数据存储,且每个节点都仅计算和存储一部分数据。因此,无论业务的规模如何增长,我们仅需要在分布式集群中不断的添加设备,用新设备去应对增长的计算和存储需要即可。
1.2.2 读写分离
当处理大数据量读请求的压力大、要求高时,可以通过读写分离功能将读的压力分布到各个从节点上。
TDSQL MySQL版 默认支持读写分离功能,架构中的每个从机都能支持只读能力,如果配置有多个从机,将由网关集群(TProxy)自动分配到低负载从机上,以支撑大型应用程序的读取流量。
1.2.3 弹性扩展
TDSQL MySQL版 支持在线实时扩容,扩容方式分为新增分片和现有分片扩容两种方式,整个扩容过程对业务完全透明,无需业务停机。扩容时仅部分分片存在秒级的只读或中断,整个集群不会受影响。
1.2.4 强同步
MAR 强同步复制方案是腾讯自主研发的基于 MySQL 协议的并行多线程强同步复制方案,只有当备机数据完全同步(日志)后,才由主机给予应用事务应答,保障数据正确安全。
2 环境准备
登录腾讯云TDSQL MySQL控制台,打开实例列表,查看TDSQL MySQL实例。
开放互联网访问策略,本地用Navicat连接TDSQL MySQL。
3 数据迁移实践
选中原MySQL数据库,右键,转储SQL文件,结构和数据,将原数据库导出为sql文件
在TDSQL中创建数据库newoa:
选中TDSQL中的数据库newoa,右键,运行SQL文件,选中上面导出的sql文件,点击开始:
运行结束即可。
4 备份恢复实践
在Navicat中打卡TDSQL数据库,点备份,新建备份,开始:
等待备份完成,即可在备份列表中看到备份信息:
选中要还原的备份,右键,还原备份,点击开始:
等待完成即可
Navicat中备份还原与mysqldump备份还原是一样的,只是界面化操作,更方便一些。
也可以导出sql文件备份还原,和迁移流程类似。