TA的每日心情 | 开心 2021-12-13 21:45 |
---|
签到天数: 15 天 [LV.4]偶尔看看III
|
应用场景
还没有mysql集群的时候,可能应用生产数据库是单节点的mysql,现在生产环境放到了mysql集群上,那么之前mysql单节点的数据,都要搬到mysql集群中,改怎么操作呢?
Mysql单点库到集群库的迁移,可以通过两种方式:
1.
单点数据库新建备份,生成备份.psc文件,然后通过navicat还原到集群数据库中。
2.
单点数据库生成.sql文件,然后到sql节点执行sql语句。两种方法都可行,但是针对数据量较大时,.sql文件会非常庞大,而不像.psc进行过压缩,传递较困难。
1. 迁移.psc
- [code]把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;
复制代码 [/code]
注:需要转换引擎的数据库名。
通过上面语句,生成的一系列ALTER语句,然后将这些ALTER语句再执行一遍。
2. 迁移.sql
- [code]导出整个数据库中的所有数据:
- # /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
复制代码 [/code]
|
|