AlwaysOn怎么实现多个数据库的同步备份

AlwaysOn怎么实现多个数据库的同步备份,第1张

为了支持镜像环境的数据库交叉依赖,AlwaysOn通过可用性组实现了多个数据库的同步备份在多个副本上,故障发生时,用户应用程序通过虚拟网络名称无缝连接到另一个副本的实例上,从而确保数据的实时在线。AlwaysOn目前支持多个副本,一个主要副本(primary replica),多个辅助副本(secondary replicas),每个副本上的数据库都是可用的,在主要副本(primary replica)上的数据库用户可以进行读\写 *** 作,在辅助副本(secondary replicas)上可以进行读 *** 作,从而提高了数据库的可用性。

如果是同一个mysql服务端的两个数据库同步可考虑下触发器,如果是不同端口的两个mysql服务端跟在两台服务器同步配置上没有区别。

数据库最好不要做主从,不然性能会降低很多的。

可以采取其他的方法撒,比如分布式存储。可以考虑下memcachedb,实现持久存储。

表结构一致的话,可以考虑映射表去实现来的(shell脚本定时同步,触发器),不过shell脚本会将环境搞的复杂一点,维护也会相对麻烦映射表具体实现(在要同步的数据库下创建相同的表结构):

1

2

3

4

5

6

7

8

CREATE TABLE table_name

(

column_name column_type

key

)

ENGINE=MYISAM DEFAULT CHARSET=utf8

CONNECTION="mysql://user:pwd@ip_address/db_name/table_name";

如果是同一种数据库的话,你同步的数据表结构是否相同,如果也相同的话,完全可以利用数据库的同步复制机制来解决;(做主从)如果表结构不相同的话,如果不在应用层处理的话,有两种方式参考:1,A推数据给B;A有数据的时候,实时或非实时(采用event或trigger)将数据推到B中,B再做处理;2,B从A拉数据,用一个event(mysql中的job)定时从A中拉数据然后进行处理;另外可以选择在应用层来做,这个我就不多介绍了,根据业务逻辑coding就行了。由于不清楚你的业务特点,所以无法进一步的帮你分析。

实现两个Mysql数据库之间同步同步原理:

MySQL 为了实现replication 必须打开bin-log 项,也是打开二进制的MySQL 日志记录选项。MySQL 的bin log 二

进制日志,可以记录所有影响到数据库表中存储记录内容的sql *** 作,如insert / update / delete *** 作,而不记录

select 这样的 *** 作。因此,我们可以通过二进制日志把某一时间段内丢失的数据可以恢复到数据库中(如果二进制日

志中记录的日志项,包涵数据库表中所有数据,那么, 就可以恢复本地数据库的全部数据了)。 而这个二进制日志,

如果用作远程数据库恢复,那就是replication 了。这就是使用replication 而不用sync 的原因。这也是为什么要设

同一服务器的两个库同步数据,比如同步两个库的Name字段

  UPDATE  b

    SET     b[Name] = a[Name]

    FROM    数据库1dboNews a

            INNER JOIN 数据库2dboNews1 b ON aId = bId

不同数据库需要建立链接服务器,然后用:

UPDATE  b

    SET     b[Name] = a[Name]

    FROM    数据库1dboNews a

            INNER JOIN 链接服务器名称数据库2dboNews1 b ON aId = bId

以上就是关于AlwaysOn怎么实现多个数据库的同步备份全部的内容,包括:AlwaysOn怎么实现多个数据库的同步备份、同一个服务器上两个数据库表怎么同步、多数据库之间同步数据怎么做等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9866421.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存