mysql数据恢复工具
很多同学在进行编程学习时缺乏系统学习的资料。本页面基于mysql数据恢复工具内容,从基础理论到综合实战,通过实用的知识类文章,标准的编程教程,丰富的视频课程,为您在mysql数据恢复工具相关知识领域提供全面立体的资料补充。同时还包含 machine_start、macox、magellan 的知识内容,欢迎查阅!
mysql数据恢复工具相关知识
-
MySQL数据库InnoDB数据恢复工具的使用小结详解 本文从实际使用经验出发,介绍一款开源的MySQL数据库InnoDB数据恢复工具:innodb-tools,它通过从原始数据文件中提取表的行记录,实现从丢失的或者被毁坏的MySQL表中恢复数据。例如,当你不小心执行DROP TABLE、TRUNCATE TABLE或者DROP DATABASE之后,可以通过以下方式恢复数据。以下内容大部分参考自:Percona Data Recovery Tool for InnoDB,文档是英文的,而且写的比较晦涩,这里是个人的实战经验总结,供大家参考学习。在介绍innodb-tools工具进行数据恢复之前,首先明确以下几点:1、这个工具只能对InnoDB/XtraDB表有效,而无法恢复MyISAM表(注: Percona号称有一套用于恢复MyISAM表的工具,但是本人未做尝试)。2、这个工具是以保存的MySQL数据文件进行恢复的,而不用MySQL Server运行。3、不能保证数据总一定可被
-
MySQL异常恢复之无主键情况下innodb数据恢复的方法本文讲述了MySQL异常恢复之无主键情况下innodb数据恢复的方法。分享给大家供大家参考,具体如下:在mysql的innodb引擎的数据库异常恢复中,一般都要求有主键或者唯一index,其实这个不是必须的,当没有index信息之时,可以在整个表级别的index_id进行恢复创建模拟表—无主键?mysql> CREATE TABLE `t1` ( -> `messageId` varchar(30) character set utf8 NOT NULL, -> `tokenId` varchar(20) character set utf8 NOT NULL, -> `mobile` varchar(14) character set utf8 default NULL, -> `msgFormat` int(1) NOT NULL,&nbs
-
教你自动恢复MySQL数据库的日志文件(binlog)如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据。“mysqlbinlog:用于处理二进制日志文件的实用工具”。 要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名。一般可以从选项文件(即my.cnf or my.ini,取决于你的系统)中找到路径。如果未包含在选项文件中,当服务器启动时,可以在命令行中以选项的形式给出。启用二进制日志的选项为 --log-bin。要想确定当前的二进制日志文件的文件名,输入下面的MySQL语句:SHOW BINLOG EVENTS \G你还可以从命令行输入下面的内容: mysql --user=root -pmy_pwd -e 'SHOW BINLOG EVENTS \G'将密码my_pwd替换为服务器的root密码。1. 指定恢复时间 对于MySQL 4.1.4,可以在mysqlbinlog语句中通过--start-date和--
-
如何恢复MySQL主从数据一致性最近被告知,MySQL主从数据库的数据不一致,猜测备库在同步过程中出现了问题,于是,登上备库,使用 mysql> show slave status\G查看,果然,备库在insert语句中因违反主键约束,导致备库停止了同步。现在的问题很明确,就是如何恢复主从库数据的一致性。可选方案如下:一、查看Master最新的Position,将其作为Slave复制的起点。这种思路体现的是过去的不一致既往不咎,现在保持同步即可。看起来,这个思路和恢复主从库数据的一致性的初衷有所违背,但这种方法,简单,高效,在测试环境,对历史数据要求不高的场景中可使用。二、必须严格的恢复主从库数据的一致性。在这里,也有两种思路:1. 备份主库数据,并在从库上恢复,在历史数据一致性的基础上开启同步,但这种方法比较麻烦,必须在主库上执行锁表操作,阻止客户端对于表数据的更新操作,而且在数据量大的情况下,备份也是个耗时的工程。其实,这种方法在实际生产环境中也很少用。2. Skip掉相关错误其实,这个说活不是很严谨,准备的说,是跳过相关的事务
mysql数据恢复工具相关课程
-
MySQL提升课程 全面讲解MySQL架构设计 如何获得MySQL最优性能?如何建立MySQL高可用集群?如何搭建稳定高效的MySQL环境?国内顶级电商公司数据库专家带你成为一名优秀的DBA。
讲师:sqlercn 中级 4050人正在学习
mysql数据恢复工具相关教程
- MySQL 数据库的备份与恢复 数据库的备份与恢复,一直都是DBA最为重要的工作,任何生产环境的数据库都必须有完整的备份方案与恢复测试。本小节将主要介绍MySQL的备份与恢复。
- MySQL 的逻辑恢复 逻辑恢复通常支持两种恢复方式:完全恢复、不完全恢复,本小节结合 mysqldump 和 mysqlbinlog 工具,介绍这两种恢复方式的操作步骤。
- MySQL 的物理恢复 跟逻辑恢复一样,物理恢复通常也支持两种恢复方式:完全恢复、不完全恢复,本小节结合xtrabackup开源工具,介绍这两种恢复方式的操作步骤。
- 1. 完全恢复 MySQL 中,逻辑备份的完全恢复相对比较简单,一般包含两个步骤:恢复最新的全备文件shell> mysql -uroot -p < backup.sql恢复日志文件shell> mysqlbinlog binlog-file | mysql -uroot -p实际案例:完整的mysqldump备份与恢复1. 中午12点,备份数据库[mysql@localhost ~]$ mysqldump --single-transaction -F -uroot -p --databases tempdb > /tmp/db_tempdb.sqlEnter password: [mysql@localhost ~]$ ls -lrt db_tempdb.sql -rw-r--r-- 1 mysql mysql 19602842 Jul 23 12:01 db_tempdb.sql参数 --single-transaction 表示给 InnoDB 表生成快照,保持数据一致性参数 -F 表示生成一个新的日志文件此时表 customer 的数据如下:mysql> select * from customer;+----+-----------+------------+------------+--------+---------+| id | last_name | first_name | birth_date | gender | balance |+----+-----------+------------+------------+--------+---------+| 1 | 111 | 111 | 1998-01-25 | 1 | 10 || 2 | 222 | 222 | 2020-07-15 | 1 | 20 |+----+-----------+------------+------------+--------+---------+2 rows in set (0.00 sec)2. 13点,表 customer 插入新的数据:mysql> insert into customer(id,last_name,first_name,birth_date,gender,balance) values(3,333,333,'2020-08-10',1,30);Query OK, 1 row affected (0.00 sec)mysql> insert into customer(id,last_name,first_name,birth_date,gender,balance) values(4,444,444,'2020-09-10',1,40);Query OK, 1 row affected (0.00 sec)3. 14点,数据库故障,需要恢复数据:[mysql@localhost ~]$ mysql -uroot -p tempdb < /tmp/db_tempdb.sqlEnter password: 恢复后表 customer 的数据如下:mysql> select * from customer;+----+-----------+------------+------------+--------+---------+| id | last_name | first_name | birth_date | gender | balance |+----+-----------+------------+------------+--------+---------+| 1 | 111 | 111 | 1998-01-25 | 1 | 10 || 2 | 222 | 222 | 2020-07-15 | 1 | 20 |+----+-----------+------------+------------+--------+---------+2 rows in set (0.00 sec)4. 从 binlog 日志恢复 12 点备份以来的数据(mysql-bin.000021 为 12 点备份后产生的新的 binlog 日志):[mysql@localhost ~]$ mysqlbinlog mysql-bin.000021 | mysql -uroot -p tempdbEnter password: 恢复日志后,表 customer 的数据如下:mysql> select * from customer;+----+-----------+------------+------------+--------+---------+| id | last_name | first_name | birth_date | gender | balance |+----+-----------+------------+------------+--------+---------+| 1 | 111 | 111 | 1998-01-25 | 1 | 10 || 2 | 222 | 222 | 2020-07-15 | 1 | 20 || 3 | 333 | 333 | 2020-08-10 | 1 | 30 || 4 | 444 | 444 | 2020-09-10 | 1 | 40 |+----+-----------+------------+------------+--------+---------+4 rows in set (0.00 sec)表 customer 的数据全部恢复。
- 1. 完全恢复 MySQL 中,物理备份的完全恢复相对比较简单,下面来看个案例:实际案例:全量备份恢复恢复数据一致性, 通过回滚未提交的事务及同步已经提交的事务至数据文件,使用得数据文件处于一致性状态。 innobackupex 通常还可以使用 --user-memory 选项来指定其可以使用的内存的大小,如果有足够的内存空间可用,可以多划分一些内存给 prepare 的过程,以提高其完成备份的速度。[root@localhost ~]# innobackupex --apply-log /mysql/dbbackup/200824 06:29:44 innobackupex: Starting the apply-log operationIMPORTANT: Please check that the apply-log run completes successfully. At the end of a successful apply-log run innobackupex prints "completed OK!".innobackupex version 2.4.9 based on MySQL server 5.7.13 Linux (x86_64) (revision id: a467167cdd4)xtrabackup: cd to /mysql/dbbackup/xtrabackup: This target seems to be not prepared yet.InnoDB: Number of pools: 1xtrabackup: xtrabackup_logfile detected: size=8388608, start_lsn=(14533834254)......InnoDB: 5.7.13 started; log sequence number 14533834773xtrabackup: starting shutdown with innodb_fast_shutdown = 1InnoDB: FTS optimize thread exiting.InnoDB: Starting shutdown...InnoDB: Shutdown completed; log sequence number 14533834792200824 06:30:35 completed OK!恢复备份文件至数据目录:[root@localhost ~]# service mysqld stopShutting down MySQL.... SUCCESS![root@localhost ~]# mv /mysql/data/ /mysql/data_bak[root@localhost ~]# mkdir /mysql/data[root@localhost ~]# innobackupex --default-file=/etc/my.cnf --copy-back --rsync /mysql/dbbackup/200824 06:44:20 innobackupex: Starting the copy-back operationIMPORTANT: Please check that the copy-back run completes successfully. At the end of a successful copy-back run innobackupex prints "completed OK!".innobackupex version 2.4.9 based on MySQL server 5.7.13 Linux (x86_64) (revision id: a467167cdd4)200824 06:44:20 [01] Copying ib_logfile0 to /mysql/data/ib_logfile0200824 06:44:28 [01] ...done......200824 06:44:59 [01] Creating directory /mysql/data/2020-09-01_06-42-14200824 06:44:59 [01] ...done.200901 06:44:59 completed OK![root@localhost ~]# chown -R mysql:mysql /mysql/data[root@localhost ~]# service mysqld startStarting MySQL.. SUCCESS! 恢复后检查数据一致性:mysql> use tempdbDatabase changedmysql> select * from customer;+----+-----------+------------+------------+--------+---------+| id | last_name | first_name | birth_date | gender | balance |+----+-----------+------------+------------+--------+---------+| 1 | 111 | 111 | NULL | 1 | 10 || 2 | 222 | 222 | 2020-07-15 | 1 | 20 |+----+-----------+------------+------------+--------+---------+2 rows in set (0.01 sec)
- 2. 不完全恢复 逻辑恢复中,mysqlbinlog 的不完全恢复方法,同样适用于物理备份的不完全恢复。1.13 点,运维人员误删除表 customer,可以用备份和 binlog 日志恢复到故障前(中午12点,物理备份数据库)从备份文件目录找到 binlog 位置文件 xtrabackup_binlog_info,查看备份结束时 binlog 的位置:[root@localhost ~]# cd /mysql/dbbackup[root@localhost ~]# ls -l-rw-r----- 1 root root 433 Aug 24 12:11 backup-my.cnf-rw-r----- 1 root root 42884 Aug 24 12:11 ib_buffer_pool-rw-r----- 1 root root 104857600 Aug 24 12:11 ibdata1-rw-r----- 1 root root 1048576000 Aug 24 12:11 ib_logfile0-rw-r----- 1 root root 1048576000 Aug 24 12:11 ib_logfile1-rw-r----- 1 root root 1048576000 Aug 24 12:11 ib_logfile2-rw-r----- 1 root root 12582912 Aug 24 12:11 ibtmp1drwxr-x--- 2 root root 4096 Aug 24 12:11 mysqldrwxr-x--- 2 root root 4096 Aug 24 12:11 performance_schemadrwxr-x--- 2 root root 12288 Aug 24 12:11 sysdrwxr-x--- 2 root root 4096 Aug 24 12:11 tempdb-rw-r----- 1 root root 166 Aug 24 12:11 xtrabackup_binlog_info-rw-r--r-- 1 root root 21 Aug 24 12:11 xtrabackup_binlog_pos_innodb-rw-r----- 1 root root 121 Aug 24 12:11 xtrabackup_checkpoints-rw-r----- 1 root root 703 Aug 24 12:11 xtrabackup_info-rw-r----- 1 root root 8388608 Aug 24 12:11 xtrabackup_logfile[root@localhost ~]# cat xtrabackup_binlog_info mysql-bin.000022 190查看当前的 binlog 文件mysql> show master logs;+------------------+-----------+| Log_name | File_size |+------------------+-----------+| mysql-bin.000018 | 245704317 || mysql-bin.000019 | 1078 || mysql-bin.000020 | 781 || mysql-bin.000021 | 483 || mysql-bin.000022 | 757 || mysql-bin.000023 | 190 |+------------------+-----------+6 rows in set (0.00 sec)恢复备份文件(参考完全备份步骤),然后使用 binlog 日志跳过故障时间点,完成恢复-- 恢复备份文件(参考完全备份步骤)完全恢复-- 使用binlog日志恢复到故障前[mysql@localhost ~]$ mysqlbinlog --start-position="190" --stop-datetime="2020-08-24 12:59:59" mysql-bin.000022 mysql-bin.000023 | mysql -uroot -p tempdbEnter password:-- 使用binlog日志跳过故障时间点[mysql@localhost ~]$ mysqlbinlog --start-datetime="2020-08-24 13:01:00" mysql-bin.000022 mysql-bin.000023 | mysql -uroot -p tempdbEnter password:
mysql数据恢复工具相关搜索
-
mac osx
machine_start
macox
magellan
malloc
manifest
manifest文件
map
map 遍历
mapreduce编程
maps google com
margin
margin bottom
margin left
margin right
margin top
marginbottom
marginheight
marginleft
margintop