多活Oracle异地多活:实现双冗余高可用(oracle异地)
active-active,active-passive双活是Oracle数据库中异地多活最为经典的实现方式,能满足企业针对数据库的高可用性方面的需求,也是非常重要的灾备技术。
数据库异地多活本质上就是实现一台主服务器与一台从服务器在多个地点互相备份,其中从服务器负责备份数据库,实现数据同步,一旦主服务器出现故障,能够及时切换到从服务器上实现故障的恢复,从而实现高可用的目标。
active-active模式即主备多个点同时运行,它有利于将数据库的访问更均匀的分布到多个服务器,同时也能完成差错控制,防止双方的数据之间出现不一致;active-passive是主从模式,在活动中,主服务器负责承担所有的数据库服务,当发生故障时,从服务器会被切换到活动状态,担任主机的工作。
实现双活高可用,首先要确保主从服务器之间能够实时进行数据的同步和互拷台的可行性,其次要能做到节点的容错、检测和故障切换,这需要建立心跳机制与切换机制,可以基于oracle streams api实现。
实现oracle streams api,通过两台服务器间消息传递,同步等方式,保证数据的一致性,在保存到磁盘或其他物理介质后,利用专用硬件设备来进行相关操作。
例如,可以利用F5 load balancer来实现注册机制,当故障发生时,可以自动识别,然后进行故障切换以保证高可用:
F5_config = “””
ltm pool oracle_pool {
members {
10.0.0.20:1521
10.0.0.30:1521
}
monitor oracle_node
}
monitor oracle_node {
monitor_type oracle
agent-type tcp
timeout 10
interval 5
send “select 1 from dual;\r\n”
receive “1”
send_disable “show errors\r\n”
receive_disable “command”
}
“””
通过这些配置,当发生故障时,就能实现故障的发现、调度,进行节点的故障切换,保证双活的高可用。
因此,Oracle异地多活实现双活高可用,不仅要保证数据穿梭、通讯、存储等技术,还需要做好心跳机制与切换机制的实现,这样才能保证双活高可用的目标。