加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_汕头站长网 (https://www.0754zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql灾备演练问题

发布时间:2022-09-14 15:19:15 所属栏目:MySql教程 来源:
导读:  前期写的mysql热备份脚本恢复,还没有正式用到过,但是今天演练灾备恢复,但是遇到几个问题。

  测试环境:

  搭建mysql,安装xtrabackup

  vim /etc/yum.repos.d/Percona.repo

  yum i
  前期写的mysql热备份脚本恢复,还没有正式用到过,但是今天演练灾备恢复,但是遇到几个问题。
 
  测试环境:
 
  搭建mysql,安装xtrabackup
 
  vim /etc/yum.repos.d/Percona.repo
 
  yum install percona-xtrabackup.x86_64 -y
 
  1、演练恢复数据:
 
  拿到生产环境备份数据,运行恢复数据脚本。
 
  结果运行失败,原因是全量备份日期计算错误,原脚本已修改。
 
  2、停掉mysql,删除mysql数据(移动/var/lib/mysql到/var/lib/mysql_bak)
 
  3、运行修改备份恢复脚本。
 
  4、修改权限,chown -R mysql.mysql /var/lib/mysql
 
  5、启动mysql,service mysql restart,报错:
 
  原因最好的办法是先查看下错误日志:
 
  (1 )、可能是/var/lib/mysql/mysql.pid文件没有写的权限
 
  解决方法 :给予权限,然后重新启动mysqld!
 
  (2 )、可能进程里已经存在mysql进程
 
  解决方法:用命令”ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用”kill -9 进程号”杀死,然后重新启动mysqld!
 
  (3 )、可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
 
  解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。
 
  解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data
 
  (5)、skip-federated字段问题
 
  解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。
 
  (6)、错误日志目录不存在
 
  解决方法:使用”chown” “chmod”命令赋予mysql所有者及权限
 
  (7)、selinux惹的祸,如果是centos系统,默认会开启selinux
 
  解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。 本人就是使用第三条方法解决的 !
 
  故障排除完后,启动数据库,恢复上一次备份后产生的数据变化:
 
  6、恢复二进制文件:
 
  去完全备份的目录下查看一下当时备份时候binlog的日志信息(因为增量备份是被应用到完全备份里的,当然,查看最后一次增量备份目录中的这个文件信息也可以,其实两个内容是一样的)
 
  自此,恢复OK,进入数据库可以检查数据。
 
  请注意,当脚本无法自动恢复时,请在紧急情况下手动恢复。唯一的步骤是在完全的基础上增量地恢复它:
 
  [En]
 
  Note that when the script cannot be recovered automatically, restore it manually in case of emergency. The only step is to restore it incrementally on a full basis:
 
  手动备份:
 
  全量: innobackupex
 
  xtrabackup_checkpoints : 备份类型(如完全或增量)、备份状态(如是否已经为prepared状态mysql备份,这个为准备工作,包括事务日志和数据文件,把事务日志中已提交的事务同步至数据文件,未提交的进行回滚)和LSN(日志序列号)范围信息;每个InnoDB页(通常为16k大小)都会包含一个日志序列号,即LSN。LSN是整个数据库系统的系统版本号,每个页面相关的LSN能够表明此页面最近是如何发生改变的。查看一下其内容:
 
  xtrabackup_binlog_info: mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置;
 
  xtrabackup_binary:备份中用到的xtrabackup的可执行文件;
 
  backup-my.cnf:备份命令用到的配置选项信息,也就是my.cnf配置文件中定义的相关参数
 
  Original:
 
  Author: 浮沉一梦
 
  Title: mysql灾备演练问题
 

(编辑:云计算网_汕头站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!