应用场景
还没有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