mysql 数据迁移失败原因总结
2015-07-03 00:53
716 查看
今年4月15号我们进行了一次数据库迁移,迁移的步聚如下:
4月15日做迁移时失败了,失败的原因是因为有一部分单据数据没有被记录到mysql的binlog日志中。
4月23日做了第二次迁移,通过手工导过去的。
修改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月23日做了第二次迁移,通过手工导过去的。
相关文章推荐
- MySql表、字段、库的字符集修改及查看方法
- MySQL中InnoDB的间隙锁问题
- MySQL导入sql脚本错误:2006 解决方法
- 在debian上安装mysql并远程登陆
- mysql分表与分区表
- 30多条mysql数据库优化方法,千万级数据库记录查询轻松解决
- 疑惑?实战演示疑惑 mysql insert到底加什么锁
- MySQL基础笔记(六) 存储过程与函数
- MySQL基础笔记(六) 存储过程与函数
- MySQL-内存表
- MySQL基础笔记(五) 视图
- MySQL基础笔记(五) 视图
- LAMP第四部分 mysql相关
- MySQL性能优化的最佳20+条经验
- mysql安装时报start service错。解决办法~
- mysql多列索引和最左前缀
- Mysql有效索引和无效索引的介绍
- mysql or条件可以使用索引而避免全表
- MySQL何时使用索引 何时不使用索引
- MYSQL 的使用记录(以后不断更新中)