mysql 数据迁移失败原因总结

今年4月15号我们进行了一次数据库迁移,迁移的步聚如下:

修改mysql配置,开启binlog
并设置保留日志15天
直接修改配置文件/usr/my.cnf 
binlog_cache_size=4M
log-bin=master-bin.log
log-bin-index=master-bin.index
max_binlog_size=1G
max_binlog_cache_size=2G
expire_logs_days=15
binlog_format=mixed
server-id=1
binlog-do-db=wewe
log-short-format
binlog-row-image=minimal
master-info-repository=TABLE
relay-log-info-repository=TABLE
sync-master-info=1
关闭所有数据库事件
停止所有应用服务 209wewe服务器
service tomcatwewe1 stop
service tomcatwewe2 stop
service tomcatwewe3 stop
service tomcatwewebatch stop
service tomcatwewereport stop
service tomcatweweapp3 stop
service tomcatweweapp stop
service httpd stop

121商城服务器
service tomcatweixin restart
service tomcatqy stop
service tomcatoa stop

203代理服务器
tomcatwmall
tomcat6

27.154.54.202商城前端
tomcatwewecity
tomcatwewemall
Apache2.2
重启数据库,记录首日志文件 service mysql stop
service mysql start
开启不含报表中心的全备份
观察并确保启动备份
检查备份情况并启动所有服务
检查备份中主要业务数据的数据量是否完全一致
与还原后需一致
select count(1) from smm_sale_invoice where CREATE_TIME <='2015-04-09';
select count(1) from smm_sale_invoice_dtl where CREATE_TIME <='2015-04-09';
select count(1) from pss_invoice where CREATE_TIME <='2015-04-09';
select count(1) from pss_invoice_dtl where CREATE_TIME <='2015-04-09';
select count(1) from imm_stock_total where CREATE_TIME <='2015-04-09';
select count(1) from imm_stock_detail where CREATE_TIME <='2015-04-09';
上传(FTP)备份至阿里云 ftp://120.55.98.156/db/
还原备份至阿里云数据库(去掉事务) navicate
还原后数据核对
阿里云RDS进行物理备份
关闭报表中心抽数,并开启报表中心备份
手动增量同步binlog数据 mysqlbinlog --start-datetime="2015-04-09 00:00:00" --stop-datetime="2015-04-10 00:00:00" "/home/wewe/mysql/data/master-bin.?" -s -r "/home/wewe/qydata/?.sql";
D:\data\mysql -h rdsjmnyi3jmnyi3.mysql.rds.aliyuncs.com -u pssmis -ptofanepos wewe;
source D:\data\bin.000352.sql;
source D:\data\master-bin.000353.sql;
mysql -h rdsjmnyi3jmnyi3.mysql.rds.aliyuncs.com -u pssmis -ptofanepos wewe < /home/date/master-bin.000353.sql
手动增量同步binlog数据 mysqlbinlog  "/home/wewe/mysql/data/master-bin.000353" -s -r "/home/wewe/qydata/master-bin.000353.sql";
重启数据库 service mysql stop
service mysql start
同步最后一个binlog数据(注意检查中文乱码) mysqlbinlog  "/home/wewe/mysql/data/master-bin.000360" |sed -n -e '/^update/I,/;/p' -e '/^insert/I,/;/p' -e '/^delete/I,/;/p' -e '/^alter/I,/;/p' -e '/^drop/I,/;/p' -e '/^create/I,/;/p' >"/home/wewe/qydata/60.sql";
服务发布 e服宝:wewe
e服宝:wewegs
服务地址修改
邮件通知用户访问地址切换

4月15日做迁移时失败了,失败的原因是因为有一部分单据数据没有被记录到mysql的binlog日志中。

4月23日做了第二次迁移,通过手工导过去的。

你可能感兴趣的:(mysql,binlog,迁移)