Skip to content

从现有MySQL数据库迁移

Daniel Zhang edited this page Nov 26, 2016 · 7 revisions

本文档旨在提供一种不需要导出数据,从现有MySQL数据库快速迁移至PhxSQL的方法,需要数据库格式兼容。若是数据库格式不兼容的情况,则需要使用mysqldump或类似工具进行导出导入。

PhxSQL使用percona-server-5.6 (对应MySQL 5.6),参考本文档进行迁移前请先确认现有的数据库格式与该版本兼容,迁移前请做好备份工作😃。


假设你希望将PhxSQL安装在/tmp/data/,迁移流程如下:

  1. 手工新建percona工作目录mkdir -p /tmp/data/percona.workspace/{data,innodb,binlog,tmp}。

  2. 将原MySQL数据库的datadir目录中的数据拷贝至/tmp/data/percona.workspace/data,innodb_data_home_dir中的数据拷贝至/tmp/data/percona.workspace/innodb。不需要拷贝binlog文件,PhxSQL安装后会生成新的binlog。

原MySQL的datadir和innodb_data_home_dir具体位置根据你原来的my.cnf配置确认,如果innodb_data_home_dir没有设置,它默认跟datadir相等,其中innodb相关的文件一般文件名以ib或undo开头。

  1. 检查/tmp/data/percona.workspace/data/auto.cnf是否存在,若有,删除它,让PhxSQL生成新的server-uuid。

  2. 三台机都如步骤1,2拷贝了相同的数据库后,分别执行python2.7 install.py -i IP -p 54321 -g 6000 -y 11111 -P 17000 -a 8001 -f/tmp/data/ -s1,-s1表示保留现有数据库。

  3. 进入常规的PhxSQL部署流程,在其中一台机上执行./phxbinlogsvr_tools_phxrpc -f InitBinlogSvrMaster -h"ip1,ip2,ip3" -p 17000,初始化集群。

步骤5开始遇到问题可参考 部署手册。

  1. 当出现add ip IP1(IP2,IP3) to master done时,集群安装成功,可登陆PhxSQL并测试。

Clone this wiki locally