日期:2014-05-16  浏览次数:20839 次

两个mysql服务器之间如何高效的倒数据??
需要每天凌晨把数据从A服务器倒到B服务器上,表结构是一样的。一台是linux的,一台是windows的。

用什么方法效率最高??不考虑实时同步。

如果用代码(如.net)倒的话,是生成SQL语句倒快呢?还是两个DataSet复制更新比较快?

谢谢!!

------解决方案--------------------
为什么不用master-salve架构呢 简单方便可靠
------解决方案--------------------
不要在master上做统计分析,slave到一台专门的分析服务器,不会影响到master的访问
------解决方案--------------------
探讨

写到slave上的数据,会被同步到master 和其他slave么?

------解决方案--------------------
使用数据库同步,复制。

引用

第6章:MySQL中的复制
目录

6.1. 复制介绍
6.2. 复制实施概述
6.3. 复制实施细节
6.3.1. 复制主线程状态
6.3.2. 复制从I/O线程状态
6.3.3. 复制从SQL线程状态
6.3.4. 复制传递和状态文件
6.4. 如何设置复制
6.5. 不同MySQL版本之间的复制兼容性
6.6. 升级复制设置
6.6.1. 将复制升级到5.0版
6.7. 复制特性和已知问题
6.8. 复制启动选项
6.9. 复制FAQ
6.10. 复制故障诊断与排除
6.11. 通报复制缺陷
6.12. 多服务器复制中的Auto-Increment
本章描述了MySQL提供的各种复制特性。引入了复制概念,显示如何设置复制服务器和服务以指导相应的复制选项。还提供了FAQ(以及答案) 列表,以及解决复制问题的排错建议。

关于复制相关的SQL语句的语法描述,参见13.6节,“复制语句”。

我们建议你经常访问我们的网址http://www.mysql.com,并检查对本章的修改。复制在不断地得到改进,我们用最新的信息定期更新本手册。

6.1. 复制介绍
MySQL支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。(这与同步复制可以进行对比,同步复制是MySQL簇的一个特征—参见第17章:MySQL簇)。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。

如果你想要设置链式复制服务器,从服务器本身也可以充当主服务器。

请注意当你进行复制时,所有对复制中的表的更新必须在主服务器上进行。否则,你必须要小心,以避免用户对主服务器上的表进行的更新与对从服务器上的表所进行的更新之间的冲突。

单向复制有利于健壮性、速度和系统管理:

· 主服务器/从服务器设置增加了健壮性。主服务器出现问题时,你可以切换到从服务器作为备份。

· 通过在主服务器和从服务器之间切分处理客户查询的负荷,可以得到更好的客户响应时间。SELECT查询可以发送到从服务器以降低主服务器的查询处理负荷。但修改数据的语句仍然应发送到主服务器,以便主服务器和从服务器保持同步。如果非更新查询为主,该负载均衡策略很有效,但一般是更新查询。

· 使用复制的另一个好处是可以使用一个从服务器执行备份,而不会干扰主服务器。在备份过程中主服务器可以继续处理更新。参见5.9.1节,“数据库备份”。

6.2. 复制实施概述
MySQL复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。因此,要进行复制,必须在主服务器上启用二进制日志。参见5.11.3节,“二进制日志”。

每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以便从服务器可以对其数据拷贝执行相同的更新。

认识到二进制日志只是一个从启用二进制日志的固定时间点开始的记录非常重要。任何设置的从服务器需要主服务器上的在主服务器上启用二进制日志时的数据库拷贝。如果启动从服务器时,其数据库与主服务器上的启动二进制日志时的状态不相同,从服务器很可能失败。

将主服务器的数据拷贝到从服务器的一个途径是使用LOAD DATA FROM MASTER语句。请注意LOAD DATA FROM MASTER目前只在所有表使用MyISAM存储引擎的主服务器上工作。并且,该语句将获得全局读锁定,因此当表正复制到从服务器上时,不可能在主服务器上进行更新。当我们执行表的无锁热备份时,则不再需要全局读锁定。

由于这些限制,我们建议只有主服务


------解决方案--------------------
如果担心master-slave不能用的话,
直接用load data方式应该是最快的。先把data load out, 再load in.