科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道教你如何备份和拷贝 MYSQL 数据库(3)

教你如何备份和拷贝 MYSQL 数据库(3)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

重要的是在表丢失和毁坏时备份数据库。如果系统发生崩溃,您就能够将表恢复到崩溃时刻的状态,并尽可能不丢失数据。

作者:小飞龙 来源:赛迪网技术社区 2007年9月11日

关键字: 备份和拷贝 数据库 SQL Server SQL Server 各版本

  • 评论
  • 分享微博
  • 分享邮件
 

稍后,如果想要在boa.snake.net 中再次刷新该数据库,可跳过mysqladmin 命令,但要将--add-drop-table增加到mysqldump 中,以避免得到有关“表已经存在”的错误:









% mysqldump --add-drop-table samp_db | mysql-h boa-snake.net samp_db

mysqldump 的其他选项包括如下所示的几个:

--flush-log 和--lock-tables 的结合有助于检查数据库。--lock-table锁定所有正在转储的表,而--flush-log关闭并重新打开更新日志文件。如果正在产生后续的更新日志,则新的更新日志将只包含从备份的那一点开始修改数据库的查询。这时检查对于该备份时间的更新日志的检查点(然而,锁定所有的表对于备份期间客户机访问来说不太好,如果您有需要执行更新操作的客户机的话)。

如果用--flush-logs检查对于备份时间的更新日志检查点,最好转储整个数据库。如果转储单个文件,则将更新日志的检查点与备份文件同步是比较难的。在恢复操作中,您通常在总数据库(per- database)的基础上抽取更新日志的内容。对于抽取单个表的更新日志来说没有选项,因此您必须自己抽取它们。

缺省设置时,mysqldump将表的全部内容在写之前读到内存中。这实际上不是必须的,事实上,如果您真的有大型表的话,这几乎是一个失败的方法。可以用--quick选项告诉mysqldump 写每一行(只要是被检索的)。要想进一步优化该转储过程,可用- - opt来代替- - quick。-- opt 选项开启其他的选项,这些选项将加快转储数据和读回数据的速度。由于快速备份的好处,使得用--opt 执行备份成为最常用的方法。但是,要当心, - -opt 选项有一个代价: --opt所优化的是您的备份过程,而不是由其他客户机对数据库的访问。--opt 选项可防止任何人更新被锁定的正在转储的任何表。您会很容易地发现在常规数据库访问中在这一点上所做的努力。试着在一天中数据库通常最繁忙的时刻运行一个备份。这不会花费太多的时间。

与--opt 作用有点相反的选项是- delayed。该选项导致mysqldump 写INSERT DELAYED语句而非INSERT语句。如果您将一个数据文件加载到另一个数据库中并且想要使该操作对其他查询(这些查询可能正在数据库中发生)造成的影响最小,则- -delayed将有助于达到这个目的。

--compress选项有助于将数据库拷贝到另一台机器上,因为它可以减少网络传输中的字节数量。这里有一个例子,请注意,为了使程序与远程主机上的服务器进行通信(而不是与本地主机通信),给出了--compress选项:

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

mysqldump 有许多选项,详细信息请参考附录E。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章