一次惊心动魄的Percona XTRADB Cluster数据修复过程【MySQL】

一次惊心动魄的Percona XTRA Cluster DB数据修复过程

2014.12.27日中午约12:30,电话响起,是同事YI的电话,告之说库中出现大量死锁,用“service mysql restart”无法重启。这里我先说明下:我们在移动音乐项目中使用的是

Percona XTRA Cluster DB,在生成环境中,建议最低是3个节点。但移动移动机器紧张为由,导致数据库运行在单一节点上。虽然此前已经告之了这样导致单点故障,无法保障HA。但移动不以为然,终于导致数据库崩溃发生了。

问题发生后,先用“/etc/init.d/mysql bootstrap-pxc”启动数据库,但显示“table not exists”。分析后,判断这是数据库崩溃导致数据丢失。之后,立即投入数据恢复的紧张工作。

恢复方案为:

1、新建数据库;

2、新建表;

3、discard表空间;

4、拷贝备份的.ibd文件;

5、import表空间;

至此,在新建库上恢复正常。

但又一个新问题,程序中已经引用了之前的数据库名,必须改回原数据库名。至此,立即动手。

方案为:

1、删除原数据库;

2、用原库名新建数据库;

3、拷贝原备份目录(idbata、.ibd文件)

4、之后重复上面的恢复方案

后发现数据库无法正常启动,把my.cnf改为"innodb_force_recovery          = 4"。数据库可以启动,但无法新建、删除和更新。这种情况,一种方案是把数据dump出来,

再dump进去。为此,新建了另一个数据库。这次是采用的MySQL官方社区版。在数据DUMP的过程中,发现有的表无法dump。后采用联邦表把数据导入进去。在导入的过程中,还发生了“字段太长,导入失败”的问题,查找后把my.cnf中改为“# sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES”问题解决。

至此,这次Mysql崩溃导致的数据恢复工作完成,数据没有丢失。下面要做的就是MySQL HA了。主要脚本如下:

alter table  AUTH_USER                discard tablespace;

cp -f /data/munion_db_bak/munion_db/AUTH_USER.ibd /data/munion_db/munion_db

alter table  AUTH_USER                import tablespace;

mysqldump -u root -pmunion123  -c --default-character-set=gbk  munion_db  AUTH_USER                          > /data/dump/AUTH_USER

mysqldump -u root -pmunion123  --default-character-set=gbk  munion_db  AUTH_USER                              < /data/dump/AUTH_USER

此次Mysql数据恢复是次难得的经验,当然最好是不要出现这样的问题。这就需要把HA先做在前面了。附另一种数据恢复方案(没有实际验证过):

1. drop these tables from mysql:

innodb_index_stats      innodb_table_stats     slave_master_info
     slave_relay_log_info
     slave_worker_info

2. delete all .frm & .ibd of the tables above.

3. run this file to recreate the tables above (source five-tables.sql).

4. restart mysqld.

Cheers,    CNL

时间: 2024-08-05 23:19:49

一次惊心动魄的Percona XTRADB Cluster数据修复过程【MySQL】的相关文章

Percona XtraDB Cluster

简介 Percona XtraDB Cluster是MySQL高可用性和可扩展性的解决方案,Percona XtraDB Cluster提供的特性如下: 1.同步复制,事务要么在所有节点提交或不提交. 2.多主复制,可以在任意节点进行写操作. 3.在从服务器上并行应用事件,真正意义上的并行复制. 4.节点自动配置. 5.数据一致性,不再是异步复制. Percona XtraDB Cluster完全兼容MySQL和Percona Server,表现在: 1.数据的兼容性 2.应用程序的兼容性:无需

PXC(Percona XtraDB Cluster)集群的安装与配置

Percona XtraDB Cluster是针对MySQL用户的高可用性和扩展性解决方案,基于Percona Server .其包括了Write Set REPlication补丁,使用Galera 2.0库,这是一个针对事务性应用程序的同步多主机复制插件. Percona XtraDB Cluster特点: (1)同步复制,事务在所有集群节点要么同时提交,要么不提交. (2)多主复制,可以在任意一个节点写入. (3)从服务器上的并行应用事件,真正的“并行复制”. (4)自动配置节点. (5)

移动基于Percona XTRADB Cluster的大数据解决方案

移动基于Percona XTRADB Cluster的大数据解决方案          一.移动的去IOE之旅      最近因为"棱镜门"事件的曝光,引起了国家对信息安全问题的注意,各大行业也开展起来去"IOE"的行动.对移动而言, 一方面是对信息安全的担心,另一方面是对降低成本的考量,对开源体系架构的引入也成为一种现实的方案. 在互联网行业,MySQL的使用成为主流,但随着Oracle对Sun的收购,MySQL的控制权落入Oracle手中,对MySQL可能闭源的

MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解

Percona XtraDB Cluster简称PXC.Percona Xtradb Cluster的实现是在原mysql代码上通过Galera包将不同的mysql实例连接起来,实现了multi-master的集群架构.下图中有三个实例,组成了一个集群,而这三个节点与普通的主从架构不同,它们都可以作为主节点,三个节点是对等的,这种一般称为multi-master架构,当有客户端要写入或者读取数据时,随便连接哪个实例都是一样的,读到的数据是相同的,写入某一个节点之后,集群自己会将新数据同步到其它节

mysql高可用之PXC(Percona XtraDB Cluster)

借鉴 http://www.cnblogs.com/xiaoboluo768/p/5135619.html 服务器环境信息如下: node1    192.168.0.100 node2    192.168.0.101 node3    192.168.0.102 1.安装软件依赖包(添加repl源,再安装依赖,3台server操作一样.) [[email protected] ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64

Percona XtraDB Cluster 初探

    Percona XtraDB Cluster(下文简称PXC集群)提供了MySQL高可用的一种实现方法.PXC集群以节点组成(推荐至少3节点,后面会讨论两节点的情况),每个节点都是基于常规的 MySQL/Percona Server,意味着你可以将现有的server加入到集群中亦或从集群中分离出某节点单独使用.集群中每个节点都包含完整 的数据.     PXC集群主要由两部分组成:Percona Server with XtraDB和Write Set Replication patch

Percona XtraDB Cluster 5.6安装配置

PXC简介   Percona XtraDB Cluster(简称PXC集群)提供了MySQL高可用的一种实现方法. 1.集群是有节点组成的,推荐配置至少3个节点,但是也可以运行在2个节点上. 2.每个节点都是普通的mysql/percona服务器,可以将现有的数据库服务器组成集群,反之,也可以将集群拆分成单独的服务器. 3.每个节点都包含完整的数据副本.    PXC集群主要由两部分组成:Percona Server with XtraDB和Write Set Replication patc

Installing Percona XtraDB Cluster on CentOS

PXC简介 Percona XtraDB Cluster(简称PXC集群)提供了MySQL高可用的一种实现方法. 1.集群是有节点组成的,推荐配置至少3个节点,但是也可以运行在2个节点上. 2.每个节点都是普通的mysql/percona服务器,可以将现有的数据库服务器组成集群,反之,也可以将集群拆分成单独的服务器. 3.每个节点都包含完整的数据副本. PXC集群主要由两部分组成:Percona Server with XtraDB和Write Set Replication patches(使

如何搭建Percona XtraDB Cluster集群

一.环境准备 主机IP                     主机名               操作系统版本     PXC 192.168.244.146     node1              CentOS7.1      Percona-XtraDB-Cluster-56-5.6.30 192.168.244.147     node2              CentOS7.1      Percona-XtraDB-Cluster-56-5.6.30 192.168.244