`
wjt276
  • 浏览: 641916 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

轻松备份mysql数据库(二)

阅读更多

--lock-tables 锁定你正在倾倒的所有表

而 --flush-logs 关闭并重新打开更新日志文件,新的更新日志将只包括从备份点起的修改数据库的查询。这将设置你的更新日志检查点位备份时间。

(然而如果你有需要执行个更新的客户,锁定所有表对备份期间的客户访问不是件好事。)如果你使用 --flush-logs 设置检查点到备份时,有可能最好是倾倒整个数据库。如果你倾倒单独的文件,较难将更新日志检查点与备份文件同步。在恢复期间,你通常按数据库为基础提取更新日志内容,对单个表没有提取更新的选择,所以你必须自己提取它们。缺省地,mysqldump 在写入前将一个表的整个内容读进内存。这通常确实不必要,并且实际上如果你有一个大表,几乎是失败的。

你可用 --quick 选项告诉 mysqldump 只要它检索出一行就写出每一行。为了进一步优化倾倒过程,使用 --opt而不是 --quick。--opt 选项打开其它选项,加速数据的倾倒和把它们读回。用 --opt 实施备份可能是最常用的方法,因为备份速度上的优势。然而,要警告你,--opt 选项确实有代价,--opt 优化的是你的备份过程,不是其他客户对数据库的访问。

--opt 选项通过一次锁定所有表阻止任何人更新你正在倾倒的任何表。你可在一般数据库访问上很容易看到其效果。当你的数据库一般非常频繁地使用,只是一天一次地调节备份。一个具有 --opt 的相反效果的选项是--dedayed。该选项使得 mysqldump 写出 INSERT DELAYED 语句而不是 INSERT 语句。如果你将数据文件装入另一个数据库并且你想是这个操作对可能出现在该数据库中的查询的影响最小,--delayed 对此很有帮助。

--compress 选项在你拷贝数据库到另一台机器上时很有帮助,因为它减少网络传输字节的数量。下面有一个例子,注意到--compress 对与远端主机上的服务器通信的程序才给出,而不是对与本地主机连接的程序:

%mysqldump --opt samp_db │ mysql --compress -h boa.snake.net samp_db

mysqldump有很多选项,详见《MySQL参考手册》。

2.使用直接拷贝数据库的备份和拷贝方法

另一种不涉及 mysqldump 备份数据库和表的方式是直接拷贝数据库表文件。典型地,这用诸如 cp、tar 或cpio 实用程序。本文的例子使用 cp。当你使用一种直接备份方法时,你必须保证表不在被使用。如果服务器在你则正在拷贝一个表时改变它,拷贝就失去意义。保证你的拷贝完整性的最好方法是关闭服务器,拷贝文件,然后重启服务器。如果你不想关闭服务器,要在执行表检查的同时锁定服务器。

如果服务器在运行,相同的制约也适用于拷贝文件,而且你应该使用相同的锁定协议让服务器“安静下来”。假设服务器关闭或你已经锁定了你想拷贝的表,下列显示如何将整个 samp_db 数据库备份到一个备份目录(DATADIR表示服务器的数据目录):

%cd DATADIR%cp -r samp_db /usr/archive/mysql

单个表可以如下备份:

%cd DATADIR/samp_db%cp member.* /usr/archive/mysql/samp_db%cp score.* /usr/archive/mysql/samp_db ....

当你完成了备份时,你可以重启服务器(如果关闭了它)或释放加在表上的锁定(如果你让服务器运行)。要用直接拷贝文件把一个数据库从一台机器拷贝到另一台机器上,只是将文件拷贝到另一台服务器主机的适当数据目录下即可。要确保文件是MyIASM 格式或两台机器有相同的硬件结构,否则你的数据库在另一台主机上有奇怪的内容。你也应该保证在另一台机器上的服务器在你正在安装数据库表时不访问它们。

3.复制数据库(Replicating Database)

复制(Replication)类似于拷贝数据库到另一台服务器上,但它的确切含义是实时地保证两个数据库的完全同步。这个功能将在 3.23 版中出现,而且还不很成熟,因此本文不作详细介绍。

4.用备份恢复数据

数据库损坏的发生有很多原因,程度也不同。如果你走运,你可能仅损坏一两个表(如掉电),如果你倒霉,你可能必须替换整个数据目录(如磁盘损坏)。在某些情况下也需要恢复,比如用户错误地删除了数据库或表。不管这些倒霉事件的原因,你将需要实施某种恢复。如果表损坏但没丢失,尝试用 myisamchk 或 isamchk 修复它们,如果这样的损坏可有修复程序修复,你可能根本不需要使用备份文件。

关于表修复的过程,见《数据库维护与修复》。恢复过程涉及两种信息源:你的备份文件和个更新日志。备份文件将表恢复到实施备份时的状态,然而一般表在备份与发生问题之间的时间内已经被修改,更新日志包含了用于进行这些修改的查询。你可以使用日志文件作为mysql的输入来重复查询。这已正是为什么要启用更新日志的原因。恢复过程视你必须恢复的信息多少而不同。实际上,恢复整个数据库比单个表跟容易,因为对于数据库运用更新日志比单个表容易。

4.1 恢复整个数据库

首先,如果你想恢复的数据库是包含授权表的 mysql 数据库,你需要用 --skip-grant-table 选项运行服务器。否则,它会抱怨不能找到授权表。在你已经恢复表后,执行 mysqladmin flush-privileges 告诉服务器装载授权标并使用它们。将数据库目录内容拷贝到其它某个地方,如果你在以后需要它们。用最新的备份文件重装数据库。如果你用 mysqldump 产生的文件,将它作为 mysql 的输入。

如果你用直接从数据库拷贝来的文件,将它们直接拷回数据库目录,然而,此时你需要在拷贝文件之前关闭数据库,然后重启它。使用更新日志重复做备份以后的修改数据库表的查询。对于任何可适用的更新日志,将它们作为 mysql 的输入。指定 --one-database 选项使得 mysql 只执行你有兴趣恢复的数据库的查询。如果你知道你需要运用所有更新日志文件,你可以在包含日志的目录下使用这条命令:

% ls -t -r -1 update.[0-9]* │ xargs cat │ mysql --one-database db_name

ls命令生成更新日志文件的一个单列列表,根据服务器产生它们的次序排序(主意:如果你修改任何一个文件,你将改变排序次序,这导致更新日志一错误的次序被运用。)很可能你会是运用某几个更新日志。例如,自从你备份以来产生的更新日志被命名为 update.392、update.393 等等,你可以这样重新运行:

 %mysql --one-database db_name < update.392
%mysql --one-database db_name < update.393
....

 

如果你正在实施恢复且使用更新日志恢复由于一个错误建议的 DROP DATABASE、DROP TABLE 或 DELETE 语句造成丢失的信息,在运用更新日志之前,要保证从其中删除这些语句。

4.2 恢复单个表

恢复单个表较为复杂。如果你用一个由 mysqldump 生成的备份文件,并且它不包含你感兴趣的表的数据,你需要从相关行中提取它们并将它们用作 mysql 的输入。

这是容易的部分。难的部分是从只运用于该表的更新日志中拉出片断。你会发觉 mysql_find_rows 实用程序对此很有帮助,它从更新日志中提取多行查询。另一个可能性是使用另一台服务器恢复整个数据库,然后拷贝你想要的表文件到原数据库中。这可能真的很容易!当你将文件拷回数据库目录时,要确保原数据库的服务器关闭。

分享到:
评论

相关推荐

    远程mysql数据库管理工具

    远程mysql数据库管理工具 轻松备份数据库

    Mysql数据库管理工具-GPH N11

    GPH N11是一款基于Mysql数据库的管理工具,它支持多种操作系统平台,如Windows、Linux和MacOS等,能够提供简单易用、高效便捷的数据库管理平台。 该工具具备图形化管理界面,使用户可以更加直观地浏览、管理和编辑...

    MySql备份还原系统

    在使用虚拟主机的情况下,MYSQL数据库备份真是个大麻烦。如果数据库的数据量略大,用PHPMYADMIN根本无法下载备份。而且由于添加数据库时,可能存在部分非法字符没有过滤的情况,下载后的数据库无法进行还原。 ...

    MySQL数据库管理工具(SQLyog Ultimate) v9.62破解版

    MySQL数据库管理工具(SQLyog Ultimate)一款图形化界面的MySQL数据库管理工具,可以让你轻松的远程维护数据库。 该工具主要包含以下功能: (1)小巧的自动完成。 (2)HTTP/HTTPS和SSH通道。 (3)向导化的汇入工具...

    文件备份系统-源码&数据库

    一个基于Java GUI、MySQL和TimerTask实现的文件备份系统,提供了文件备份、文件夹备份、定时备份以及将备份数据存储到MySQL数据库的功能。通过用户友好的GUI界面,用户可以轻松选择要备份的文件或文件夹。系统使用...

    计算机专业的程序员学好MySQL数据库有什么意义?和其他数据库相比,MySQL的优点分析.docx

    MySQL是一种广泛使用的关系型数据库管理系统,被广泛应用于Web应用程序的数据管理。 MySQL具有许多优点,使其成为数据管理的首选。 首先,MySQL是可扩展的。它可以处理大量的数据,并且可以轻松地扩展以处理更多的...

    MySQL可以运用在哪些项目场景中?MySQL数据库开发过程说明.docx

    例如,MySQL的事务支持可以确保数据在多个操作中的一致性,数据备份和恢复功能可以保护数据免受意外损坏或数据泄漏的影响,性能优化功能可以提高数据库的性能和响应速度。 综上所述,MySQL是一种功能强大、灵活可靠...

    db-rotator:轻松进行MySQL数据库旋转和修剪

    轻松进行MySQL数据库轮换和修剪-下载并导入mysql转储,然后删除除N个数据库之外的所有数据库,仅保留最新的数据库。 该工具旨在将已完成MySQL备份转移到本地开发环境。 因此,当您拥有最新MySQL备份作为每晚更新的...

    mysql 备份还原指令脚本

    完整的 mysql 备份还原指令脚本;轻松实现mysql备份和恢复;在sqL等环境下测试通过。绝对可用

    Linux VPS/服务器上轻松导入、导出MySQL数据库的几种方法

    MySQL数据库导出 方法1:mysqldump命令 执行命令: /usr/local/mysql/bin/mysqldump -u 用户名 -p 数据库名 》 文件名 如果数据库用户名有密码密码,执行后会提示输入密码。如果数据库用户名没有密码,就将命令中的...

    Navicat for MySQL 10.1.7中文注册版

    Navicat for MySQL软件可以让数据库管理员可以方便轻松的管理mysql数据库,比如创建数据表、触发器、存储过程、函数、视图等。友好的gui界面为数据库管理人员节约了大量的时间,降低了企业的开发成本。 新版本...

    MySQL_backup_SecureString:使用哈希密码进行MySQL备份的Powershell脚本

    使用哈希密码进行MySQL数据库备份的Powershell脚本 该脚本的目的是从MySQL数据库执行备份,而无需透露备份用户帐户的明文密码。 另外,该脚本使用7zip压缩和加密备份。 脚本使用Powershell提供的SecureString函数...

    护卫神·好备份系统 v3.3.zip

    护卫神·好备份系统是四川万象更新网络通信有限公司开发的一款服务器数据备份软件,可以备份sql server2000/2005/2008、文件数据、MySQL数据库等,免费授权大家使用。 护卫神·好备份系统功能 1.定时计划任务 ...

    MySQL是一款开源的关系型数据库管理系统,能够解决许多数据存储和管理方面的问题

    数据备份和恢复:MySQL允许用户定期备份数据以避免数据丢失,并且可以轻松地将备份文件用于数据恢复。高可用性:MySQL支持主从复制和集群配置等多种高可用性方案,以确保数据库始终处于可用状态。性能优化:MySQL...

    mysql管理工具-SQLyog图形化管理数据库工具

    SQLyog中文版是一款专业的图形管理软件,SQLyog操作简单,功能强大,能够帮助用户轻松管理自己的MYSQL数据库,SQLyog中文版支持多种数据格式导出,可以快速帮助用户备份.mysql管理工具.SQLyog图形化管理数据库工具....

    【最新版】navicat150_premium_en.dmg navicat-premium: 15.0.14【亲测可用】最好的MySQL数据库开发工具

    Navicat Premium是一个数据库开发工具,可让您从单个应用程序同时连接到MySQL,MariaDB,MongoDB,SQL Server,Oracle,PostgreSQL和SQLite数据库。与Amazon RDS,Amazon Aurora,Amazon Redshift,Microsoft Azure...

    六大步保护MySQL数据库中重要数据

    多数数据库都自带有内置的工具 自动完成整个过程,所以这方面的工作相对轻松,也不会出错。但麻烦却来自另一面:阻止外来黑客入侵窃取或破坏数据库中的信息。不幸的是,一般没有自动工具 解决这一问题;而且,这需要...

    最新SQLyog MySQL GUI x86 11.2.0-4 Ultimate 多语言版本 带序列号

    一款图形化界面的MySQL数据库管理工具,可以让你轻松的远程维护数据库。该工具主要包含以下功能: (1)小巧的自动完成。 (2)HTTP/HTTPS和SSH通道。 (3)向导化的汇入工具包。 (4)结构化的同步,可以设定任务...

    数据库灾难性恢复(数据库技术;灾难性;恢复;数据备份)

    简单备份适合于只读数据库或由能轻松重新创建的批处理作业填充的数据库,或者在备份之间不必维护数据库更改的情况下。 表 1.简单备份的优缺点 优点: 缺点: 保护级别: 数据库备份可以转移到外部位置,以...

    网站备份软件-多备份客户端 v2.2

    多备份是一款高效、专业的企业文件备份,网站备份,服务器备份和数据库备份和还原工具,是目前国内...2、新增本地备份功能,可在本地直接备份文件和mysql、mssql、oracle等数据库3、新增混合备份功能,既可选择本地

Global site tag (gtag.js) - Google Analytics