tencent cloud

TDSQL MySQL 版

公告
告警升级公告
产品简介
产品概述
产品优势
应用场景
地域和可用区
InnoDB 引擎
购买指南
计费概述(InnoDB)
产品定价(InnoDB)
购买升级
退费说明
欠费说明
备份空间计费
快速入门
InnoDB 引擎
操作指南(InnoDB)
实例管理
灾备/只读实例
修改网络
账号管理
安全管理
慢查询分析
备份与回档
数据迁移
数据库审计
实践教程
从单机实例导入到分布式实例
从分布式实例导入到分布式实例
选择实例配置和分片配置
安全白皮书
平台侧安全设计
租户侧安全功能
开发指南
InnoDB 引擎
API 文档
History
Introduction
API Category
Security Group APIs
Other APIs
Making API Requests
TDSQL APIs
Data Types
Error Codes
常见问题
InnoDB 引擎相关
通用参考
强同步性能对比数据
词汇表
联系我们
文档TDSQL MySQL 版实践教程从单机实例导入到分布式实例

从单机实例导入到分布式实例

PDF
聚焦模式
字号
最后更新时间: 2024-01-06 12:30:03
由于分布式数据库的分布式架构对用户透明,一般情况下,只需要预先建好表结构。可以使用 mysqldump、或其他 Navicat、SQLyog 等 MySQL 客户端进行迁移。迁移步骤如下:
第一步:准备导入导出环境 第二步:导出源表的表结构和数据 第三步:修改建表语句并在目的表中创建表结构 第四步:导入数据

步骤1:准备导入导出环境

准备迁移数据前,您需要准备好如下环境:
云服务器
建议配置 CPU 2核,内存8GB,磁盘500GB以上(取决于数据量大小)
Linux
安装 MySQL 客户端
如果您迁移的数据量较小(< 10GB),也可以通过外网(互联网)直接导入,无需准备
TDSQL MySQL 版
根据预期选择大小,并根据源库字符集,表名大小写,innodb_page_size 大小进行初始化
创建账号,该账号建议开启全局所有权限
必要时开启外网 IP

步骤2:导出源表的表结构和数据

演示环境

操作库:caccts
操作表:t_acct_water_0
源库:单实例 MySQL
目标库:TDSQL for Percona、MariaDB

在源库导出表结构

通过命令mysqldump -u username -p password -d dbname tablename > tablename.sql导出表结构。
//命令实例
mysqldump -utest -ptest1234 -d -S /data/4003/prod/mysql.sock caccts t_acct_water_0 > table.sql

在源库导出表数据

通过命令mysqldump -c -u username -p password dbname tablename > tablename.sql导出表数据。
//命令实例
mysqldump -c -t -utest -ptest1234 -S /data/4003/prod/mysql.sock caccts t_acct_water_0 > data.sql
注意:
导出数据必须通过 mysqldump 工具导出,并且加上 -c 参数,因为这样导出的数据行都带有列名字段,不带列名字段的 sql 会被 TDSQL for Percona、MariaDB 拒绝掉。-t 参数的意义是不导出表结构,只导出表数据。

上传文件至云服务器某目录

上传前,您需开启 CVM 外网访问地址,并参见 Linux 系统通过 SCP 上传文件到 Linux 云服务器 上传文件,您至少需要上传刚刚导出的:
表结构 sql:table.sql
数据 sql:data.sql

步骤3:修改建表语句并在目的表中创建表结构

打开刚导出的表结构文件 table.sql,参考如下格式语句添加主键和 shardkey,并另存为 tablenew.sql。
CREATE TABLE(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
PRIMARY KEY('列名称n')
ENGINE=INNODB DEFAULT CHARSET=xxxx
shardkey=keyname
注意:
必须要设置主键,必须指定 shardkey,必须注意表名大小写问题,建议删除多余注释,否则建表可能不成功。




步骤4:导入数据

连接 TDSQL for Percona、MariaDB 实例

在 CVM 上使用mysql -u username -p password -h IP -P port 登录 MySQL 服务器,然后使用use dbname进入数据库。
注意:
您可能需要先创建库。

导入表结构

使用刚刚上传的文件,用source命令导入数据。
1. 先导入表结构:source /文件路径/tablenew.sql;
2. 再导入数据:source /文件路径/data.sql;
3. 校验导入情况:select count(*) from tablename;
注意:
需先导入建表语句,再导入数据。也可以通过 mysql 的 source 命令直接导入 sql。

其他方案

整体来说,只要能够在导入数据前,在目的表先创建对应的表结构(需指定 shardkey),就可以比较顺利的导入数据。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈