- 浏览: 1279476 次
- 性别:
- 来自: 常州
文章分类
- 全部博客 (499)
- java (101)
- linux (82)
- mysql (30)
- javascript (45)
- Oracle (12)
- ext (14)
- 虚拟机 (1)
- 搜索引擎 (2)
- struts2 (11)
- 设计模式 (9)
- nginx (17)
- tomcat (12)
- 随想 (10)
- spring (18)
- svn (1)
- flash (3)
- UML (1)
- 数据结构 (7)
- 算法 (2)
- 网摘 (9)
- 数据库 (15)
- ibatis (3)
- jquery (31)
- lucene (1)
- hibernate (14)
- Myeclipse (4)
- 线程 (7)
- jbpm (4)
- 重构 (1)
- mantis (3)
- MediaWiki (4)
- ExtMail (1)
- MDaemon (1)
- egit (1)
- dwr (7)
- sitemesh (2)
- mybatis (1)
- ico (1)
- hadoop (5)
- jsoup (1)
- urlrewrite (2)
- jstl (1)
- spring3 (2)
- aop (2)
- 定时器 (1)
- Quartz (2)
- apache (1)
- php (1)
- security (1)
- iptables (2)
- QQ (1)
- mysqldump (1)
- vim (1)
- memcached (4)
- jad (1)
- 微博 (1)
- html5 (1)
- css3 (1)
- httpclient (10)
- google (1)
- shortUrl (1)
- json (2)
- virtualBox (1)
- mantisBT (2)
- htmlunit (1)
- selenium (2)
- mail (1)
- 正则表达式 (4)
- html (3)
- css (2)
- jatoolsPrinter (1)
- 图片处理 (1)
- hql (1)
- webservice (1)
- 分词 (3)
- 短信 (1)
- VPS (1)
- 事务 (1)
- 广告 (1)
- 画廊 (1)
- git (3)
- github (1)
- openshift (1)
- 缓存 (1)
- web (3)
- android (3)
- c3p0 (1)
- 邮箱 (1)
- memcache (2)
- windows (2)
- js (14)
- 编辑器 (1)
- 打印 (1)
- centos (5)
- boneCP (1)
- 连接池 (1)
- sql (1)
- nosql (1)
- MongoDB (1)
- 浏览器 (1)
- node (1)
- node.js (1)
- backbone.js (1)
- lazyload (1)
- Switch Off (1)
- Titanium (1)
- 网站架构 (1)
- WebDriver (1)
- APJP (1)
- 代理 (1)
- comet (1)
- kendoui (1)
- UI (2)
- 互联网 (1)
- localStorage (1)
- 记录 (1)
- 微信 (2)
- Sphinx (1)
- netty (1)
- js,mvvm,Avalon (1)
- 安卓 (1)
- Tengine (1)
- 大数据 (1)
- 手机 (1)
- paypal (1)
- SaaS (1)
- gitlab (1)
- nodejs (1)
- React (1)
- shadowsocks (0)
- vpn (0)
- 验证码 (1)
- SSL (2)
- SEO (1)
- IntelliJ (1)
- 敏捷开发 (1)
- 项目管理 (1)
- 爬虫 (1)
- 正则 (1)
- owncloud (1)
- 云存储 (1)
- ajax (1)
- pjax (1)
- jdk (1)
- zookeeper (1)
- phantomjs (1)
- ELK (1)
- springcloud (1)
- IDEA (1)
- hexo (1)
- ss (1)
- letencrypt (1)
最新评论
-
peakandyuri:
这个是有BUG的,数字小体现不出来,数字大了就不对了,但是Ja ...
java十进制转换N进制并反转换的工具类 -
ginolai:
然后是相关配置:/etc/sysconfig/iptables ...
Linux中iptables设置详细 -
bzhao:
我测试没啥区别啊!
Thread.sleep()和Thread.currentThread().sleep()区别 -
zhl549342097:
match == false
Spring Security 3.1 中功能强大的加密工具 PasswordEncoder -
hellotieye:
renzhengzhi 写道drager 写道用jsoup后解 ...
jsoup select 选择器
今天经历了一次痛苦的mysql表修复操作,感觉还是比较有意义的,写出来供大家参考
某客户的mysql出现异常,经常自动停止,err中如下记录
090614 2:47:09 [Note] D:\MySQL\bin\mysqld-nt: ready for connections.
Version: '5.0.17-nt' socket: '' port: 3306 MySQL Community Edition (GPL)
InnoDB: Error: page n:o stored in the page read in is 3755989959, should be 19641!
InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 19641.
InnoDB: You may have to recover from a backup.
由于客户对mysql不是很了解,也没有对对应的库进行过备份,所以也就没有办法从备份恢复了,之前也有碰到过,不过当时是一条记录的问题,判断方式就是用mysqldump导处数据时肯定在固定的记录上停止,这个当时简单的处理就是把对应记录删除后手动添加上去了,这次的却比较复杂,尝试先备份数据,每次mysqldump都会出错,错误点不是在同一个表,只导一个表时id也不一样,这样就怀疑库问题了,由于使用的innodb引擎,按照网上的说法“innodb表损坏,可能导致mysqld不断地crash。在用户访问到有问题数据的位置就可能导致crash。而mysql目前没有修复innodb表的工具,只能用innodb_force_recovery=1,避免在导出数据时再crash。”在my.cnf中设置好后重启库,再用mysqldump或者select *把出问题的表导出来。然后重新导入(删除原表)。如果数据量大的话,就得慢慢等了。还好比较幸运的是,增加强制修复参数后,完整地导出了数据。其他工作就是从新创建数据库并导入数据了。在增加强制修复参数后发现err日志大小飙增,比数据库本身都还大
InnoDB: See also http://dev.mysql.com/doc/mysql/en/Forcing_recovery.html
InnoDB: about forcing recovery.
InnoDB: Ending processing because of a corrupt database page.
090615 15:35:41 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
090615 15:35:42 InnoDB: Starting log scan based on checkpoint at
InnoDB: log sequence number 0 1804286759.
InnoDB: Doing recovery: scanned up to log sequence number 0 1804286759
InnoDB: Last MySQL binlog file position 0 0, file name
090615 15:35:42 InnoDB: Started; log sequence number 0 1804286759
InnoDB: !!! innodb_force_recovery is set to 1 !!!
090615 15:35:42 [Note] D:\MySQL\bin\mysqld-nt: ready for connections.
Version: '5.0.17-nt' socket: '' port: 3306 MySQL Community Edition (GPL)
这里还碰到一个问题,在加了强制修复参数后,如果对数据库进行写入参数会出现:
ERROR 1030 (HY000): Got error -1 from storage engine
不过发现高兴地过早了,新导入的数据还是有问题,这样就怀疑数据库本身故障了,由于本身只提供了一个应用程序的应用,也只有一个用户库,之前已经备份好了,卸载mysql,重新导入OK。
导入优化:
mysql恢复的导入过程是一个痛苦的过程,30多万条记录,导了2个多小时,后同事在网上找到一个方法,在导出时合理使用几个参数,可以大大加快导入的速度。
-e 使用包括几个VALUES列表的多行Insert语法;
-max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小;
-net_buffer_length=XXX TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行。
注意:max_allowed_packet和net_buffer_length不能比目标数据库的设定数值大,否则可能出错。
首先确定目标库的参数值,这个mysql版本相同的默认都相同,当然也可以在mysql.cnf中修改
mysql> show variables like 'max_allowed_packet';
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
1 row in set (0.00 sec)
mysql> show variables like 'net_buffer_length';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| net_buffer_length | 16384 |
+-------------------+-------+
1 row in set (0.00 sec)
根据参数值书写mysqldump命令,如:
C:\Documents and Settings\Administrator>mysqldump -uusername -ppassword --def
ault-character-set=gbk --opt --add-drop-table databasename -e --max_allowed_pac
ket=1048576 --net_buffer_length=16384 > D:/090615.sql
之前2个多小时才能导入的sql现在7分钟内就可以完成了。真的很惊讶!!
对于这些参数可以看看 mysqldump的帮助和以下的文章
http://www.ixdba.net/article/53/243.html
http://dev.mysql.com/doc/refman/5.1/zh/using-mysql-programs.html
发表评论
-
mysql5.5 主从热备配置
2017-12-12 15:05 938在线热备: https://www.cnblogs.co ... -
mysql配置优化
2017-08-24 17:55 984此配置是老男孩生产线上使用的配置,在培训的时候,他给的,我在 ... -
MYSQL 调优和使用必读
2015-01-04 15:48 993MYSQL 应该是最流行了 WEB 后端数据库。WEB 开 ... -
更改innodb_log_file_size, 解决InnoDB: ERROR: the ag...的问题
2015-01-04 13:19 1149在批量更新数据的时候,mysqld.err中多次出现了: ... -
MySQL性能优化的最佳20+条经验
2015-01-04 12:32 929转自:MySQL性能优化的 ... -
mysql在线更新工具简介(处理索引多的表更新慢的问题)
2014-12-20 20:53 718【MySQL】online ddl 工具之pt-onlin ... -
Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)
2014-10-11 16:15 797本文随手转自:http://josh-persistence ... -
mysql分表的方式
2014-08-11 18:00 807http://www.blogjava.net/ldd600 ... -
Sphinx与mysql
2014-08-11 17:07 924记录用: http://www.cnblogs.com/h ... -
优化mysql性能的十个参数
2013-09-25 15:03 910网上摘选内容如下: 1) ... -
用mysql表分区来优化大数据量的表
2013-09-25 14:01 9088根据公司数据库实际情况,订单表有可能会比预想中扩张速度快, ... -
MySQL表分区功能
2013-09-12 09:51 1175创建分区表 CREATE TABLE `表名` ... -
sql中位运算的妙用
2013-09-02 13:26 1550数据库采用1,2,4,8,16.....等用数字标识(2的 ... -
mysql数据库同步热备(双向以及单向)
2013-08-02 13:59 3809第一种:单向主从热备 mysql主从热备有2种配置方式, ... -
[转载]linux下配置Mysql SLOW QUERY LOG
2013-07-15 13:57 1537优化MySQL最重要的一部 ... -
MySQL事务隔离级别详解[转]
2013-03-22 09:49 1066SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定 ... -
设置mysql缓存
2013-02-07 02:41 1168MySQL query cache从4.1版本开始提供了,不 ... -
mysql中FIND_IN_SET的应用(判断某字符串是否在带逗号的字符串之中)
2012-09-21 12:16 2821测试代码: CREATE TABLE `test` ... -
linux中使用mysqldump对mysql数据库进行定时备份
2012-03-06 19:26 3255#!/bin/bash PATH=/bin:/sb ... -
MySQL内存及虚拟内存优化设置
2012-03-05 16:28 52321、 mysqld --verbose --help ...
相关推荐
MySQL报警,从库的数据库挂了,一直在不停的重启,打开错误日志,发现有张表坏了。innodb表损坏不能通过repair table 等修复myisam的命令操作。
innodb表损坏不能通过repair table 等修复myisam的命令操作。现在记录下解决过程,下次遇到就不会这么手忙脚乱了。 处理过程: 一遇到报警之后,直接打开错误日志,里面的信息:InnoDB: Database page corruption ...
InnoDB 给 MySQL 提供了具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。InnoDB 提供了行锁(locking on row level),提供与 ...
- **修复InnoDB表空间**:如果问题是由于表空间损坏导致的,可以尝试使用`mysqlcheck`工具进行修复,或者使用`innodb_force_recovery`参数设置不同的恢复级别。 - **检查权限和配置**:确保MySQL服务有足够的权限...
这个问题通常表明MySQL的InnoDB存储引擎无法获取对`ibdata1`文件的锁,`ibdata1`是InnoDB用来存储数据和系统表空间的文件。这个错误可能是由于多种原因导致的,包括但不限于以下几点: 1. **另一个mysqld进程正在...
MySQL数据库修复程序是一种技术密集型的过程,主要用于解决数据库在运行过程中遇到的各种问题,如数据丢失、表损坏、系统崩溃等。在本场景中,我们关注的是如何通过特定工具,如Navicat,来管理和修复MySQL数据库中...
在设置这个参数后,应该尽快备份或导出所有重要数据,然后关闭MySQL服务,修复底层问题,最后清除`innodb_force_recovery`,按照常规流程重新启动数据库。如果可能,最好在测试环境中先验证这种方法,避免在生产环境...
InnoDB 给 MySQL 提供了具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。InnoDB 提供了行锁(locking on row level),提供与 ...
MySQL的InnoDB存储引擎在处理表空间方面有两种模式:共享表空间和独立表空间。共享表空间模式下,所有InnoDB表的数据和索引都存储在一个或多个大文件(如ibdata1)中。而独立表空间模式,也称为文件-per-table模式,...
在MySQL数据库管理与维护的过程中,表修复是一项非常重要的工作,特别是在使用MyISAM存储引擎时。当遇到诸如数据损坏、表结构错误等问题时,能够快速有效地进行表修复至关重要。本文将详细探讨“mysql表修复的实用...
MySQL中的`innodb_data_file_path`参数是用于配置InnoDB存储引擎的数据文件路径和大小的。这个参数至关重要,因为它决定了InnoDB表空间的布局和扩展方式。在默认情况下,如果未在配置文件(如my.cnf)中指定`innodb_...
MySQL InnoDB 异常修复是一项复杂的工作,尤其是在处理版本升级或更换数据库服务器时。本文将分享一次关于MySQL InnoDB 异常修复的经验,涉及到的问题包括版本回退、InnoDB模块重装以及配置文件的调整。 首先,问题...
在MySQL数据库系统中,"ibdata1" 文件是InnoDB存储引擎的核心文件,它存储了表数据、索引以及InnoDB的系统表空间信息。当MySQL服务启动后立即关闭,通常意味着在数据库运行过程中遇到了严重问题,这可能是由于数据...
"mysql数据库修复专家"就是针对这种需求的专业工具,它覆盖了MySQL 3到6版本的错误修复,能够处理多种类型的数据库文件,包括MYD、IBD和ibdata1。 MYD、IBD和ibdata1是MySQL数据库中不同类型的数据文件: 1. MYD...
从MySQL 5.5开始,InnoDB成为默认的存储引擎,但在更早的版本中,MyISAM可能是默认的。 2. **验证引擎支持**:在MySQL命令行客户端中运行`SHOW ENGINES;`,这将列出所有可用的存储引擎及其状态。如果InnoDB显示为...
MySQL的存储引擎有InnoDB和MyISAM等,它们在处理事务、索引和数据存储方面有所不同,这在修复过程中非常重要。 当MySQL数据库出现故障时,可能的原因包括硬件故障、操作系统崩溃、文件系统错误、不正确的关闭或突然...