使用MYSQL备份数据恢复

mysql|备份|恢复|数据

   数据库毁坏发生的原因有许多,且程度各不相同。如果幸运的话,可能是一两个表的小毁坏(例如,如果您的机器由于断电而暂时停机)。如果不是这样,可能需要置换整个的数据目录(例如,如果某个磁盘瘫痪而且数据目录在它上)。在其他情况下也需要恢复操作,例如,当用户错误地删除数据库或表时,或者错误地删除表的内容时。不论这些不幸的事件发生是由于什么原因,都需要恢复它们。
    如果表被毁坏但没有丢失,可试着用myisamchk 或isamchk 来修复它们。如果修复实用程序能修复它们,就根本挥斜匾褂帽阜菸募1淼男薷垂探诘?3 章讨论。如果表被丢失或不能修复,则需要恢复它们。
    恢复过程包括两个信息源:备份文件和更新日志。备份文件将表恢复到进行该备份时的状态。但是,在备份和故障发生这段时间中,表通常已经被修改。更新日志包含了用来完成这些修改的查询。可以通过将更新日志作为对mysql的输入来重复这些查询(这就是为什么
应该允许更新日志的原因。如果您还没有使更新日志有效,现在赶快做,并在进一步读取之前生成一个新的备份)。
    恢复过程根据必须恢复的信息的多少而变化。事实上,恢复整个数据库比恢复单个的表要容易,因为对数据库应用更新日志比对表要容易。

恢复整个数据库

    首先,如果要恢复的数据库是含有授权表的mysql数据库,将需要使用- - s k i p - g r a n t - tables选项运行服务器。否则,服务器将抱怨无法找到授权表。在恢复表之后,执行mysqla d m i n flush-privileges 来告诉服务器加载授权表,并用它们启动。
    将原数据库目录的内容拷贝到其他的地方。例如,您可能会在稍后用它们进行崩溃表的事后分析检查(post-mortem examination)。
    用最新的备份文件重新加载数据库。如果您打算使用由mysqldump 加载的文件,则需要将它们作为mysql的输入。如果打算使用从数据库中直接拷贝的文件(如,用tar 或c p),则将它们直接拷贝回到该数据库目录中。但是,在这种情况下,应该在拷贝这些文件之前关闭服务器,然后再重新启动它。
    用更新日志重做在进行备份后又修改了数据库表的查询。对于所有可用的更新日志,可使用它作为mysql的输入。指定--one-database 选项,使mysql只对想要恢复的数据库执行查询。如果您知道需要使用所有的更新日志文件,可在包含日志的目录中使用
下列命令:
    % ls -t -r -l update.(0-9)* | xargs cat | mysql--one-database db_name
    ls 命令产生更新日志文件的单列列表,更新日志文件根据服务器生成的顺序进行排序(要知道,如果您修改了其中的任何文件,排序的顺序都将改变,这将导致更新日志按错误的顺序使用)。
    您很可能必须使用某些更新日志。例如,如果自备份以来所产生的日志命名为up date . 3 9 2、update.393 等等,可以重新运行它们中的命令:
    % mysql--one-database db_name < updata.392
    % mysql--one-database db_name < updata.393
    。。。
    如果正在运行恢复并打算使用更新日志恢复由于失策的DROP DATA B A S E、D R O P TABLE 或DELETE 语句而丢失的信息,应确保先从更新日志中删除这些语句。

恢复单个的表

    恢复单个表是很困难的。如果有通过mysqldump 生成的备份文件并且它恰好不包含您想要的表数据,则需要抽取相关的行并用它们作为mysql的输入,这部分较容易。困难的是抽取应用于该表的更新日志的片段。您会发现: mysql_find_rows 实用程序对这方面有帮助,它可以从更新日志中抽取多行查询。
    另一种可能性是用另一个服务器恢复整个数据库,然后将所要的该表的文件拷贝到原始数据库中。这实际很容易!在将文件拷贝回数据库目录时,应确保原始数据库的服务器关闭。

时间: 2024-11-15 20:59:42

使用MYSQL备份数据恢复的相关文章

MySQL 备份和恢复

MySQL 备份和恢复 本文讨论 MySQL 的备份和恢复机制,以及如何维护数据表,包括最主要的两种表类型:MyISAM 和 Innodb 目前 MySQL 支持的免费备份工具有:mysqldump.mysqlhotcopy,还可以用 SQL 语法进行备份:BACKUP TABLE 或者 SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件.MyISAM 表是保存成文件的形式,因此相对比较容易备份,上面提到的几种方法都可以使用.I

MySQL备份与还原几种实用方法总结

总结下几种常用的mysql备份方法: 一.直接拷贝数据库文件 首先把内存中的数据都刷新到磁盘中,同时锁定数据表,以保证拷贝过程中不会有新的数据写入: mysql>FLUSH TABLES WITH READ LOCK; 使用tar或cp等命令备份数据库文件,这里使用tar: tar zcvf /backup/mysql_$(date "+%Y%m%d").tar.gz /var/lib/mysql c.备份完后解锁数据表 mysql> unlock tables; 这种方法

几种MySQL备份常用方法整理

总结下几种常用的mysql备份方法: 一.直接拷贝数据库文件 首先把内存中的数据都刷新到磁盘中,同时锁定数据表,以保证拷贝过程中不会有新的数据写入:  代码如下 复制代码 mysql>FLUSH TABLES WITH READ LOCK; 使用tar或cp等命令备份数据库文件,这里使用tar: tar zcvf /backup/mysql_$(date "+%Y%m%d").tar.gz /var/lib/mysql c.备份完后解锁数据表 mysql> unlock t

mysql备份脚本

mysql|备份|脚本 操作系统:windows2000 professional 数据库:mysql server4.0.18 首先创建一个批处理文件,在这里名为dbBackup.bat 然后在文件中添加如下内容: rem 判断mysql服务是否启动,然后将查询结果输出到server.log文件里netstat -na | (find "0.0.0.0:3306" & find "LISTENING")>server.logrem 手工建立一个空的文

mysql备份恢复中的常见错误

从A主机备份到B主机 mysqldump -uroot  -p vw>vw.sql 现备份数据库文件,需要恢复到目标机B,B的数据库版本为5.5.23,A机器的mysql版本为5.0.22 mysql>source /root/vw.sql; -------------------- Query OK, 6748 rows affected (0.13 sec) Records: 6748 Duplicates: 0 Warnings: 0 Query OK, 6807 rows affect

MySQL备份和同步时使用LVM

If someone asks me about MySQL Backup advice my first question would be if they have LVM installed or have some systems with similar features set for other operation systems. Veritas File System can do it for Solaris. Most SAN systems would work as w

mysql备份方案

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://kerry.blog.51cto.com/172631/158476 数据库备份方案 一.主从同步 可以参考http://kerry.blog.51cto.com/172631/110206 二.增量备份: 每天中午12点和晚上12点做一次全备,每隔一小时备份binlog,也就是增量备份,具体操作如下: Linux下开启binlog /etc/my.cnf中的mysqld部分加入

新手教程:MySQL备份数据库命令

MySQL备份数据库命令 1.导出整个数据库 导出文件默认是存在mysql\bin目录下 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u user_name -p123456 database_name > outfile_name.sql 2.导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 mysqldump -u user_name -p database_name table_name > ou

RDS中的MYSQL备份恢复

RDS使用mysqldump对 MySQL 数据库进行逻辑全量备份,使用开源软件Xtrabackup进行物理全量备份,是实例级别的备份. 用户登录RDS控制台,可以下载备份文件.按照 利用逻辑备份文件恢复到自建数据库-MySQL和利用物理备份文件恢复到自建数据库-MySQL中的操作步骤,实现数据的恢复. 本文主要从原理的角度来介绍MySQL数据库的备份和恢复,希望能让用户更加了解RDS的备份恢复机制.   一.备份类型介绍 1. 按备份操作方式:物理备份和逻辑备份 备份方式 优点 缺点 逻辑备份