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观察服务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值