linux备份mysql需要暂停服务吗_【MySQL运维】线上MySQL数据库停服迁移流程

一、数据备份与恢复阶段,选在凌晨1点进行操作,暂停服务进行备份(允许停服2个小时)

1、首先停止Nginx服务,并且修改数据库用户密码,防止还有新的连接进来

2、杀掉某个用户所有进程

for i in `mysql -udba -pPASSWORD -ssse "show full processlist"|grep DATABAES_NAME |awk '{print $1}'`; do /usr/local/mysql/bin/mysql -udba -pPASSWORD -e "kill $i"; done

3、开发人员记录源库数据

4、采用Innodbbackup对需要的数据库做物理备份。需要备份的数据库信息:A库94G、B库460M。另还需对mysql、performance_schema这2个库做备份,此为mysql服务默认库,保存有用户权限等信息,恢复时需要用到。如果不备份这2个库,数据还原后启动服务会报错Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist。备份命令如下:

time innobackupex --defaults-file=/etc/my.cnf --databases="mysql performance_schema database_a database_b" --user=dba --password=PASSWORD /data/backup/

5、将数据传输到新服务器,这2台机器随后会部署为主从模式

scp -r /data/backup/2018-12-05_11-59-45/ root@10.3.0.224:/data/backup/

scp -r /data/backup/2018-12-05_11-59-45/ root@10.3.0.225:/data/backup/

6、暂停目标服务器已经提前搭建好的MySQL 3310实例,清空数据目录,重新初始化,准备还原

mysqladmin -udba -p -S /tmp/mysql3310.sock shutdown #停止新实例的服务

rm -rf /data/mysql3310 /data/dblog/mysql3310 /etc/my3310.cnf #删除数据和配置

/usr/local/shell/mysql_multi_install.sh #这是只是一个初始化脚本

mysql -uroot -p`cat /data/mysql3310/passwd.txt` -S /tmp/mysql3310.sock

alter user root@'localhost' identified by 'PASSWORD';

grant all privileges on *.* to 'dba'@'%' identified by 'PASSWORD' with grant option;

grant all privileges on *.* to 'dba'@'localhost' identified by 'PASSWORD' with grant option;

mysqladmin -udba -p -S /tmp/mysql3310.sock shutdown #初始化完毕后再次停止服务准备还原数据

7、备份数据还原

rm -rf /data/mysql3310/*

innobackupex --defaults-file=/etc/my3310.cnf --apply-log /data/backup/2018-12-05_11-59-45/

innobackupex --defaults-file=/etc/my3310.cnf --copy-back /data/backup/2018-12-xx_xx-xx-xx/

chown -R mysql. /data/mysql3310

8、启动服务

mysqld_safe --defaults-file=/etc/my3310.cnf &

二、主从部署阶段(主节点:10.3.0.224;从节点:10.3.0.225)

1、登录SQLYOG删除原有repl账户信息,两台均操作

2、在224上授权并获取binlog的位置信息

mysql -udba -p -S /tmp/mysql3310.sock

mysql > GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO repl@'10.3.0.225' IDENTIFIED BY 'PASSWORD';

mysql > show master status \G

3、在225从库同步

mysql -udba -p -S /tmp/mysql3310.sock

CHANGE MASTER TO MASTER_HOST='10.3.0.224',MASTER_PORT=3310,MASTER_USER='repl',MASTER_PASSWORD='PASSWORD',MASTER_LOG_FILE='mysql-bin.xxxxx',MASTER_LOG_POS=xxx;

start slave;

三、域名切换

服务前移后使用了新域名,只需要做好解析即可,然后启动Nginx观察服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277546.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

免费下载!5本阿里技术好书,带你看更大的世界

共享、开源是互联网技术发展的重要精神。在过去,25000多万名阿里工程师,撰写了一系列精品技术丛书,从算法、研发到职业人生随笔,应有尽有。目前该系列丛书已全部开放下载,供技术人免费阅读。 今天小编整理了其中的五本…

python3安装mysqlclient_Python3 安装mysqlclient错误处理(MAC版)

在使用django的时候需要安装mysqlclient库,很多时候会出现以下报错:running installrunning bdist_eggrunning egg_infowriting mysqlclient.egg-info/PKG-INFOwriting dependency_links to mysqlclient.egg-info/dependency_links.txtwriting top-level names to mysqlclient.…

React绑定事件处理函数this的几种方法

在以类继承的方式定义的组件中,为了能方便地调用当前组件的其他成员方法或属性(如:this.state),通常需要将事件处理函数运行时的 this 指向当前组件实例。 绑定事件处理函数this的几种方法: 第一种方法&…

乌班图系统16.04安装

本例jiyu基于Ubuntu16.04 64位版本为例进行安装,安装的方式有多种,本文使用光盘进行安装安装前应准备好,将Ubuntu的镜像文件刻成光盘,然后将光盘放入光驱,并设置服务器从光盘启动,开机到如下界面:按Enter键到下一步,如…

python做游戏用什么软件_用Python自制谷歌小游戏

谷歌流量器中有个很有名的彩蛋:当你网络出现问题时,就会出现一个“小恐龙游戏”。(如果想要直接进行游戏,可以在地址栏输入:chrome://dino)今天我们就来给大家演示下,用Python来自己做一个仿制的“小恐龙游戏”&#x…

使用maven构建项目候,jar包错误的解决办法

1、删除架包,重新下载,右键项目点击"run as"中的“maven clean”,然后再maven中找到Update Project 2、可以在代码中,把鼠标放到报错的架包上 点击划红线部分,进行安装 转载于:https://www.cnblogs.com/qingqian/p/1099…

MySQL——通过EXPLAIN分析SQL的执行计划

在MySQL中,我们可以通过EXPLAIN命令获取MySQL如何执行SELECT语句的信息,包括在SELECT语句执行过程中表如何连接和连接的顺序。下面分别对EXPLAIN命令结果的每一列进行说明:select_type:表示SELECT的类型,常见的取值有:…

python将argv作为参数_在jupyter / ipython notebook中将命令行参数传递给argv

经过大量的环顾后,我发现了非常繁琐的自定义库,但是用几行代码解决了它,我认为这些代码很漂亮.我使用nbconvert最终得到一个html报告作为输出,包含笔记本中的所有图形和降价,但是通过最小的python包装器接受命令行参数:python文件test_args.py(正常执行命令行参数)&…

模拟输入(ADC-A0)

ESP8266具有内置的10位ADC,只有一个ADC通道(A0引脚),即只有一个ADC输入引脚可读取来自外部器件的模拟电压 ESP8266上的ADC通道和芯片供电电压复用,也就是说我们可以将其设置为测量系统电压或者外部电压 测量外部电压: analogRead(…

SQL Server 连接超时案例一则

原文:SQL Server 连接超时案例一则上周六,一工厂系统管理员反馈一数据库连接不上,SSMS连接数据库报“连接超时时间已到。在尝试使用预登录握手确认时超过了此超时时间.......”, 如下截图所示: 另外远程连接也连接不上,系统管理员…

mysql 删除5天前 备份_mysql自动备份删除5天前的备份

1、查看磁盘空间情况:df -h2、创建备份目录:上面我们使用命令看出/home下空间比较充足,所以可以考虑在/home保存备份文件;cd /homemkdir backupcd backup3、创建备份Shell脚本:注意把以下命令中的DatabaseName换为实际的数据库名称…

个人作业-Alpha项目测试

这个作业属于哪个课程https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2作业地址https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/3340团队名称脑阔疼https://www.cnblogs.com/chaserFF/p/10994338.html这个作业的目标完成班级项目互评…

深入理解brew link命令

来源:https://newsn.net/say/brew-link-php71.html brew是mac机上面程序猿非常常用的软件包安装方式,其中有两组命令是需要大家知晓的。分别是:第一组:brew install和brew uninstall。第二组,brew link和brew unlink。…

scss2css vscode设置_VSCode下让CSS文件完美支持SCSS或SASS语法方法

VSCode下让CSS文件完美支持SCSS或SASS语法方法习惯Webpack PostCSS后, 通常PostCSS都是直接对CSS文件进行处理, 但是大部分习惯SCSS/SASS/LESS的朋友也许不适应了. 我专门研究了一下, 在Visual Studio Code编辑器下如果配置相关代码和设置达到CSS文件完美编写SCSS的办法, 其他…

第5章 初识JQuery

JQuery是对JavaScript的封装,简化了JS代码,是主流框架的基础(VUE,EasyUI,Bootstrap) 它是2006年推出的JQuery的优势: 体积小,压缩后只有100KB左右 强大的选择器 出色的DOM封装 可靠的事件处理机制 出色的浏览器兼容性 使用隐式迭代…

Jenkins的Pipeline脚本在美团餐饮SaaS中的实践

2019独角兽企业重金招聘Python工程师标准>>> 一、背景 在日常开发中,我们经常会有发布需求,而且还会遇到各种环境,比如:线上环境(Online),模拟环境(Staging)&…

6.12交流

czy bzoj5424烧桥计划 f[i][j]暴力,可以分两段转移,更近的一段单调队列 发现,最多分成sqrt(n)段。 因为如果只有一段,ansn*2000 而如果多段,至少是∑i*1000,那么,i的上界是sqrt(n)级别的。 所以…

java椭圆_如何用java画椭圆

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼利用java画出椭圆。也就是鼠标一边移动一边显示出椭圆,如何做到请大神指教这是我写的(没有达到我自己的要求):import java.awt.*;import java.awt.Graphics;import java.awt.event.*;import javax.swing.*;i…

【springboot+easypoi】一行代码搞定excel导入导出

原文:https://www.jianshu.com/p/5d67fb720ece 开发中经常会遇到excel的处理,导入导出解析等等,java中比较流行的用poi,但是每次都要写大段工具类来搞定这事儿,此处推荐一个别人造好的轮子【easypoi】,下面…

用java编写一个计算器_用java程序编写一个计算器

展开全部给你一个参考,希望不62616964757a686964616fe58685e5aeb931333330343261要被百度吞了当晚餐import java.awt.BorderLayout;import java.awt.GridLayout;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.text.DecimalFor…