天天看点

mysql单点库到集群库的迁移应用场景

应用场景

还没有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