mysql单点库到集群库的迁移-阿里云开发者社区

开发者社区> 数据库> 正文

mysql单点库到集群库的迁移

简介: 应用场景 还没有mysql集群的时候,可能应用生产数据库是单节点的mysql,现在生产环境放到了mysql集群上,那么之前mysql单节点的数据,都要搬到mysql集群中,改怎么操作呢? Mysql单点库到集群库的迁移,可以通过两种方式: 1.单点数据库新建备份,生成备份.psc文件,然后通过navicat还原到集群数据库中。

应用场景

还没有mysql集群的时候,可能应用生产数据库是单节点的mysql,现在生产环境放到了mysql集群上,那么之前mysql单节点的数据,都要搬到mysql集群中,改怎么操作呢?

Mysql单点库到集群库的迁移,可以通过两种方式:
1.单点数据库新建备份,生成备份.psc文件,然后通过navicat还原到集群数据库中。
2.单点数据库生成.sql文件,然后到sql节点执行sql语句。两种方法都可行,但是针对数据量较大时,.sql文件会非常庞大,而不像.psc进行过压缩,传递较困难。

1. 迁移.psc

把mysql集群数据库当成单点数据库一样,直接用.psc文件进行还原备份。还原备份完后,需要转换它们的引擎为ndbcluster,具体步骤如下:

SELECT  CONCAT('ALTER TABLE `', table_name, '` ENGINE=ndbcluster;') AS sql_statements
FROM    information_schema.tables AS tb
WHERE   table_schema = 'epointjweb4_0'    
AND     `TABLE_TYPE` = 'BASE TABLE'
ORDER BY table_name;

注:需要转换引擎的数据库名。
通过上面语句,生成的一系列ALTER语句,然后将这些ALTER语句再执行一遍。

2. 迁移.sql

导出整个数据库中的所有数据:
 # /usr/local/src/mysql/bin/mysqldump -u root -p  dabaseName  > fileName.sql
注:fileName.sql最好加上路径名,否则导出文件都不知道在哪儿了

导出数据库中的某个表的数据:
 # /usr/local/src/mysql/bin/mysqldump -u root  -p  dabaseName  tableName > fileName.sql

导入sql方法一:
 # /usr/local/src/mysql/bin/mysql -uroot -p11111
 # mysql> source /usr/local/src/fileName.sql
注:fileName.sql要有路径名。

导入sql方法二:
 # mysql -uroot -p database < fileName.sql

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章