mysql 5.7 迁移数据方案
从一台服务器迁移至其他服务器,如何选择最短的停服时间方案
方案一、凌晨3点的全备份+停服后一天的大概一天的增备
1. 拷贝前一天的全备份至新的服务器
rsync -auzrP /Data/dbbak/db/2019-04-23/2019-04-23_03-10-11 root@172.16.1.80:/data/backup/full/
2. 解压(备份方式:innobackupex --compress,所以需要提前解压)
innobackupex --decompress /data/backup/full/2019-04-23_03-10-11
3. 停服
systemctl stop mysqld
5. 增备
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --incremental /data/backup/incr --incremental-basedir=/data/backup/full/2019-04-02_16-42-43
6. 恢复
--应用日志
innobackupex --defaults-file=/usr/local/mysql/etc/my.cnf --apply-log --redo-only /data/2019-04-18_03-10-09/
innobackupex --defaults-file=/usr/local/mysql/etc/my.cnf --apply-log --redo-only /data/2019-04-18_03-10-09/ --incremental-dir=/root/2019-04-18_19-06-43
7. 拷贝至data目录下,并授权
innobackupex --defaults-file=/usr/local/mysql/etc/my.cnf --copy-back /data/2019-04-18_03-10-09/
chown -R mysql:mysql /data/mysql-data/
chmod -R 755 /data/mysql-data/
8. 恢复完成,启动mysql
mysqld_safe --user=mysql &
方案二、当前时间全备+binglog恢复
1. 全备份(热备,物理备)
innobackupex --defaults-file=/etc/my.cnf --user=root --password='123456' --use-memory=12G --kill-long-queries-timeout=5 --ftwrl-wait-timeout=20 --compress --compress-threads=16 /data/bak/db/`date +%F`
2. 拷贝至新服务器,并恢复
rsync -auzrP /Data/dbbak/db/2019-04-23/2019-04-23_03-10-11 root@172.16.1.80:/data/backup/full/
innobackupex --decompress /data/backup/full/2019-04-23_03-10-11
innobackupex --apply-log /data/backup/full/2019-04-23_03-10-11
innobackupex --copy-back /data/backup/full/2019-04-23_03-10-11
3. 停服保证数据一致性,再将期间产生的binlog拷贝至新的服务器并执行
mysqlbinlog --start-position=1108 mysql-bin.000007 |mysql -uroot -p123456 -v
方案三、主从架构复制的方式
1.用全备份恢复
rsync -auzrP /Data/dbbak/db/2019-04-23/2019-04-23_03-10-11 root@172.16.1.80:/data/backup/full/
innobackupex --decompress /data/backup/full/2019-04-23_03-10-11
innobackupex --apply-log /data/backup/full/2019-04-23_03-10-11
innobackupex --copy-back /data/backup/full/2019-04-23_03-10-11
2. 授权新服务器复制权限
GRANT REPLICATION SLAVE ON *.* TO 'rep20'@'10.8.9.20' IDENTIFIED BY '123456';
3. 给所有表加上只读锁
flush tables with read lock;
4. 配置主从
stop slave;
change master to master_host='172.16.1.88', master_user='rep20', master_password=' 123456', master_log_file='mysql-bin.000614', master_log_pos=296235077;
start slave;
5. 查看主从状态
Master_Log_File和Relay_Master_Log_File所指向的文件必须一致
Relay_Log_Pos和Exec_Master_Log_Pos的为止也要一致才行
Slave_SQL_Running_State:显示为wait 意思是中继日志的sql语句已经全部执行完毕
6. 验证部分表的记录条数,和最后一条数据的内容
select count(*) from student;
select * from student order by create_time desc limit 1;
7. 解锁
UNLOCK TABLES;
总结: 方案一是增备的方式,步骤复杂了一些,操作失误就得重新恢复,停服的时间也需要更长,出错的概率也相对大;
方案二 停服前全备份(还是热备),真正停服的时间是拷贝binlog和恢复binlog的时间,速度快,2步骤,出错概率低;(推荐)
方案三 停服时间最短,但是相对更难校验数据的一致性,一旦数据不一致还有写入,会造成很大的麻烦。
mysql 5.7 迁移数据方案的更多相关文章
- Django更换数据库和迁移数据方案
前言 双十一光顾着买东西都没怎么写文章,现在笔记里还有十几篇半成品文章没写完- 今天来分享一下 Django 项目切换数据库和迁移数据的方案,网络上找到的文章方法不一,且使用中容易遇到各类报错,本文根 ...
- Mysql ---Sqlserver数据迁移到Mysql(Mysql建表迁移数据)
1 试用了MysqlWorkBench的数据迁移功能 以为能实现:建立跟Sqlserver一样的表结构和视图的功能,sqlserver的数据迁移到mysql 实际上发现:即使勾选了表和视图,实际上却只 ...
- Mysql使用workbench迁移数据
原文:http://jingyan.baidu.com/article/925f8cb8f3ec25c0dce05644.html 打开Mysql WorkBench,连接到数据库: 首先选中:Man ...
- mysql分库分表,做到永不迁移数据和避免热点
作者:老顾聊技术 搜云库技术团队 来源:https://www.toutiao.com/i6677459303055491597 一.前言 中大型项目中,一旦遇到数据量比较大,小伙伴应该都知道就 ...
- 从mysql向HBase+Phoenix迁移数据的心得总结
* 转载请注明出处 - yosql473 - 格物致知,经世致用 mysql -> HBase + Phoenix 1.总体方案有哪些? 1)通过Sqoop直接从服务器(JDBC方式)抽取数据到 ...
- 从MySQL到Redis 提升数据迁移的效率
场景是从MySQL中将数据导入到Redis的Hash结构中.当然,最直接的做法就是遍历MySQL数据,一条一条写入到Redis中.这样可能没什么错,但是速度会非常慢.而如果能够使MySQL的查询输出数 ...
- finedb(内置的HSQL数据库)迁移数据到MySQL
finedb(内置的HSQL数据库)迁移数据到MySQL 1. 前言 在FineBI中,决策平台的数据(用户.角色.组织机构.权限等信息)是存储在finedb数据库中的,默认情况下finedb是一个内 ...
- 从MySQL到Hive,数据迁移就这么简单
使用Sqoop能够极大简化MySQL数据迁移至Hive之流程,并降低Hadoop处理分析任务时的难度. 先决条件:安装并运行有Sqoop与Hive的Hadoop环境.为了加快处理速度,我们还将使用Cl ...
- 解决kettle在两个mysql之间迁移数据时乱码的问题 和 相关报错 及参数调整, 速度优化
1. 乱码问题 编辑目标数据库的链接: 配置编码参数即可. 2. 报错 No operations allowed after statement closed. 需要调整wait_timeout: ...
随机推荐
- bzoj 5163: 第k大斜率
5163: 第k大斜率 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 15 Solved: 4[Submit][Status][Discuss] D ...
- 【bzoj3524】【Poi2014】【Couriers】可持久化线段树(主席树)水题
[pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=62485671 向大(hei)佬(e)势力学(di ...
- [Git]Git 常用的操作命令
创建本地仓库 git init 获取远程仓库 git clone [url] 例如:git clone https://github.com/you/yourpro.git 创建远程仓库 添加一个新的 ...
- HTML基础一
正所谓温故而知新, 近期有了总结知识点的想法, 想把之前学习的知识作一个分阶段性的总结, 就从html开始吧!!! 一.浏览器与服务器 1. 浏览器 1.1 浏览器是什么 1.浏览器是一种交互软件(与 ...
- 【云计算】WAF简介、功能特性、部署方式等
之前写了一篇<WAF防御能力评测及工具>,是站在安全运维人员选型WAF产品的角度来考虑的(优先从测试角度考虑是前职业病,毕竟当过3年游戏测试?!).本篇文章从WAF产品研发的角度来YY如何 ...
- Java学习之泛型和异常
泛型 1,设计原则或目的:只要代码在编译的时候没有错误,就不会抛异常. 2,泛型通配符 :类型通配符一般是使用 ? 代替具体的类型实参.注意了,此处是类型实参,而不是类型形参!相当于(父类作用)L ...
- ECSHOP后台开发模块步骤
一.建数据库二.添加到后台导航栏并配置相关语言包三.权限配置四.添加增删查改五.增加其他功能(复制,搜索(暂时调不出来页面),排序,转移,AJAX) 以添加支付信息模块为例 第一步首先我们用phpmy ...
- MySQL时间增加、字符串拼接
MySQL时间增加.字符串拼接 SELECT DATE_ADD(startTime, INTERVAL 10 SECOND); CONCAT(string1,string2,…)
- HTML5 Canvas 描画渐开线
渐开线(evolent):在平面上,一条动直线(发生线)沿着一个固定的圆(基圆)作滚动的过程中,此直线上任意一点的轨迹,称为此基圆的一条渐开线.如果将一个圆轴固定在一个平面上,轴上缠线,拉紧一个线头, ...
- bat 同步windows系统时间
需要使用管理员权限运行 net start w32timew32tm /config /updatew32tm /resync /rediscovernet stop w32timepause