首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysqlhotcopy块是否选择来自不同客户端的语句?

mysqlhotcopy块是否选择来自不同客户端的语句?
EN

Database Administration用户
提问于 2011-12-24 17:28:46
回答 2查看 478关注 0票数 2

我想使用mysqlhotcopy在服务器上创建一个不同MyISAM表的备份。这些表的大小约为6GB。我想知道,mysqlhotcopy是否在备份时阻止用户从SELECTing (读取)表中读取数据?

提前谢谢你,蒂姆

EN

回答 2

Database Administration用户

发布于 2011-12-24 20:01:49

文档并不像应该的那样清晰,但我想说没有,mysqlhotcopy不会阻止SELECT查询。

这就是为什么

原因#1:“‘mysqlhotcopy”

上的MySQL文档

mysqlhotcopy是一个Perl脚本,最初由Tim编写和贡献。它使用刷新表、锁表和cp或scp来进行数据库备份。它是对数据库或单个表进行备份的一种快速方法,但只能在数据库目录所在的同一台计算机上运行。mysqlhotcopy只用于备份MyISAM和归档表。它运行在Unix和NetWare上。若要使用mysqlhotcopy,必须具有对要备份的表的文件的读取权限、对这些表的SELECT特权、RELOAD权限(能够执行同花顺表)和锁表特权(能够锁定表)。

原因2:“锁表”限制

上的MySQL文档

如果将表用于非事务性存储引擎,则如果要确保没有其他会话修改SELECT和UPDATE之间的表,则必须使用锁表。这里显示的示例要求锁表安全执行:锁表trans、customer that;从trans customer_id=some_id中选择SUM(value);在customer_id=some_id中更新customer SET total_value=sum_from_previous_statement;在没有锁表的情况下,另一个会话可能在SELECT语句和UPDATE语句的执行之间插入一个新行。

总之,由于mysqlhotcopy启动了LOCK TABLES,显然仍然允许SELECT查询。

票数 1
EN

Database Administration用户

发布于 2018-08-21 10:09:15

我你绝对不想阻止用户的任何动作,设置一个复制从。您可以在不影响最终用户的情况下热复制这些表。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/9702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档