我对MySQL复制可以做的事情有一个相当不错的感觉.我想知道其他数据库支持复制,以及它们与MySQL和其他数据库的比较?
我会遇到的一些问题是:
是内置复制,还是附加/插件?
复制如何工作(高级)?MySQL提供基于语句的复制(以及5.1中基于行的复制).我对其他数据库的比较感兴趣.什么通过电线发货?如何将更改应用于副本?
检查主站和从站之间的一致性是否容易?
将失败的副本与主服务器同步恢复是多么容易?
性能?我讨厌MySQL复制的一件事是它是单线程的,并且副本经常无法跟上,因为master可以并行运行许多更新,但副本必须以串行方式运行它们.在其他数据库中有没有这样的问题?
任何其他有趣的功能......
Charles Duff.. 8
MySQL的复制很弱,因为需要牺牲其他功能来获得完全的主/主支持(由于受支持的后端的限制).
PostgreSQL的复制很弱,因为只有内置支持主/备用(使用日志传送); 更强大的解决方案(如Slony或Londiste)需要附加功能.存档日志段通过线路传送,这些记录与用于确保独立数据库在不干净启动时处于工作,一致状态的记录相同.这就是我目前正在使用的,我们完全自动化了重新同步(和设置,以及其他功能).这些方法都不是完全同步的.从PostgreSQL 8.5开始,将构建更完整的支持.日志传送不允许数据库不同步,因此不需要进程来测试同步状态; 使两个数据库重新同步涉及在主服务器上设置备份标志,rsyncing到slave(数据库仍在运行;这是安全的),并且使用备份过程中生成的存档日志取消设置备份标志(并重新启动从属进程); 我的商店有自动化这个过程(像所有其他管理任务一样).性能是一个非问题,因为除了做其他工作之外,主人必须在内部重播日志段.因此,奴隶的负荷总是低于船长.
Oracle的RAC(没有正确复制,因为只有一个存储后端 - 但是你有多个前端共享负载,并且可以在共享存储后端本身构建冗余,所以这里值得一提)是一个多主机方法远比其他解决方案更全面,但是非常昂贵.数据库内容不是"通过网络发送"; 相反,它们被存储到共享后端,所涉及的所有系统都可以访问该后端.因为只有一个后端,系统不能不同步.
Continuent提供第三方解决方案,可完全同步语句级复制,并支持上述所有三个数据库; 然而,他们产品的商业支持版本并不是特别便宜(虽然价格便宜得多.上次我管理它时,Continuent的解决方案需要手动干预才能使群集恢复同步.
MySQL的复制很弱,因为需要牺牲其他功能来获得完全的主/主支持(由于受支持的后端的限制).
PostgreSQL的复制很弱,因为只有内置支持主/备用(使用日志传送); 更强大的解决方案(如Slony或Londiste)需要附加功能.存档日志段通过线路传送,这些记录与用于确保独立数据库在不干净启动时处于工作,一致状态的记录相同.这就是我目前正在使用的,我们完全自动化了重新同步(和设置,以及其他功能).这些方法都不是完全同步的.从PostgreSQL 8.5开始,将构建更完整的支持.日志传送不允许数据库不同步,因此不需要进程来测试同步状态; 使两个数据库重新同步涉及在主服务器上设置备份标志,rsyncing到slave(数据库仍在运行;这是安全的),并且使用备份过程中生成的存档日志取消设置备份标志(并重新启动从属进程); 我的商店有自动化这个过程(像所有其他管理任务一样).性能是一个非问题,因为除了做其他工作之外,主人必须在内部重播日志段.因此,奴隶的负荷总是低于船长.
Oracle的RAC(没有正确复制,因为只有一个存储后端 - 但是你有多个前端共享负载,并且可以在共享存储后端本身构建冗余,所以这里值得一提)是一个多主机方法远比其他解决方案更全面,但是非常昂贵.数据库内容不是"通过网络发送"; 相反,它们被存储到共享后端,所涉及的所有系统都可以访问该后端.因为只有一个后端,系统不能不同步.
Continuent提供第三方解决方案,可完全同步语句级复制,并支持上述所有三个数据库; 然而,他们产品的商业支持版本并不是特别便宜(虽然价格便宜得多.上次我管理它时,Continuent的解决方案需要手动干预才能使群集恢复同步.
我对MS-SQL 2005(发布者)和SQLEXPRESS(订阅者)有一些海外合并复制的经验.以下是我的评论:
1 - 内置复制,还是附加/插件?
内置
2 - 复制如何工作(高级)?
从快照(在订户级别提供静态数据)到事务复制(每个INSERT/DELETE/UPDATE指令在所有服务器上执行)的不同复制方式.合并复制仅复制最终更改(复制期间将立即在同一记录上成功更新).
3 - 检查主站和从站之间的一致性是否容易?
我从未做过的事......
4 - 将失败的副本与主服务器同步恢复是多么容易?
基本的重新同步过程只需双击即可....但如果你有4Go数据重新初始化64 Kb连接,除非你自定义它,否则它将是一个漫长的过程.
5 - 表现?
那么......你当然会遇到瓶颈,包括你的连接性能,数据量,或者最后你的服务器性能.在我的配置中,用户只写入订阅者,这些订阅者都使用main database = publisher进行复制.然后,该服务器永远不会被最终用户所吸引,并且其CPU严格专用于数据复制(到多个服务器)和备份.订阅者专注于客户端和一个复制(发布者),这为最终用户的数据可用性提供了非常有趣的结果.发布者和订阅者之间的复制可以一起启动.
6 - 任何其他有趣的功能......
有一些预期,可以继续开发数据库,甚至不用停止复制过程....表(以间接方式),字段和规则可以添加并复制到您的订阅者.
主发布者和多个嫌疑人的配置非常便宜(与其他人相比......),因为即使在运行合并或事务复制时,您也可以在suscriber一侧使用免费的SQLEXPRESS