我看到网上一些资料上,在还原数据备份的时候,都用类似下面的语句mysql < backup.sql 这个在还原过程中如果其他人正在操作表,不是会产生冲突吗?
mysql是采用怎样的策略来防止这种问题发生的?
在手册中什么地方可以找到相关的信息?

解决方案 »

  1.   

    这个在还原过程中如果其他人正在操作表,不是会产生冲突吗?
    mysql是采用怎样的策略来防止这种问题发生的?
    在手册中什么地方可以找到相关的信息?还原过程就是执行一些SQL语句的过程,当其人用户给表加了锁后,还原进程就要等待锁释放。不会产生冲突。
      

  2.   

    加锁定还原语句该怎么写?
    mysql还原命令似乎没有提供相应的锁选项吧?
      

  3.   

    不需要你去指定锁。其他人正在操作表的时候,对表加没加锁,不需要你去控制,MYSQL自己会处理。
      

  4.   

    mysqldump有选项 --lock-tables, --lock-all-tables,默认情况前者是true, 后者是false
    会自动在备份文档里加上语句lock table xxx read
      

  5.   

    ....这个命令的意思是执行这个脚本,其实就是按顺序执行sql语句。。
    所以它的过程跟你拿出来单独执行一个样子...
    会有冲突。.
    不是你等待就是别人等待,看谁先拿到锁..
      

  6.   

    不会加锁的,其他人操作时没有对数据库加锁,不需要处理。mysql会处理的
      

  7.   

    mysql < backup.sql   这个方法等同于你直接操作数据库执行一系列SQL语句,MYSQL会加锁。 如果此刻其它人已经锁住了表,你自然要等待解锁。不过,都需要恢复数据库全部了,为什么还有其它用户在操作表?