2

有没有人有在复制数据库的环境中使用 DevExpress 的 XPO 的经验?从我之前的问题和关于服务器故障的问题来看,我认为已经决定复制是要走的路。

MySQL 文档说所有写入都需要在主服务器上进行,所有读取都必须来自从服务器。这是有道理的,但现在需要将 XPO 设置为写入主设备(远距离),但从从设备(本地)读取。

我在 DevExpress 论坛上收到了关于如何做到这一点的良好回应,我打算尝试,但我想知道是否有人做过,以及他们会有的任何见解/陷阱/参考。

4

1 回答 1

3

编辑:因为你不喜欢第一种方法。

如果您还没有看到它们,这里有一些主-主复制链接。
http://forums.mysql.com/read.php?144,235807,235807
http://code.google.com/p/mysql-master-master/
http://www.mysqlperformanceblog.com/2007/04 /05/mysql-master-master-replication-manager-released/ http://www.howtoforge.com/mysql_master_master_replication

一些潜在的维基百科条目。 http://en.wikipedia.org/wiki/Replication_%28computer_science%29#Database_replication
http://en.wikipedia.org/wiki/Multi-master_replication


Mysql 复制解决方案(从 google 缓存,原始链接现在由于某种原因已失效)


你试过 DevExpress 论坛上建议的方法了吗?我就是这样做的。

来自 Alian Bismark 这里

  1. 创建会话A
  2. 调用 SessionA.Disconect() - 将 ConnectionString 设置为 SessionA 并调用 SessionA.Connect()
  3. 创建会话B
  4. 调用 SessionB.Disconect() - 将 ConnectionString 设置为 SessionB 并调用 SessionA.Connect()
  5. 从 SessionA 加载对象,使用 XPCollection auxL = new XPCollection(SessionA)
  6. 创建 SessionB 的对象,使用 B b = new B(SessionB)
  7. 将对象 A 中的字段分配给对象 b 8 保存对象 b

这种方法适用于基本对象,如果您有关系等,您需要使用会话 A 的对象信息来解决会话 B 中对象的引用。

于 2009-07-21T18:38:49.667 回答