市面上存在两种数据库负载均衡的思路:1
基于数据库连接的负载均衡:例如总共有100个数据库连接,50个连接登录到数据库机器A,另外50个连接登录到数据库机器B,这样每个连接中接下来的所有请求全都是发往同一台数据库机器的
这种数据库负载均衡的思路模拟了WEB上的负载均衡方法,但是由于WEB连接是短时间连接(连接建立后,获取需要的HTML等资源后,连接马上被关闭),而数据库连接是长时间连接(连接建立后,可长时间保持,客户可不停向数据库发送SQL请求,数据库做出回答,如此不断循环直到连接被人为或因错而断开为止),因此这种数据库负载均衡思路存在着明显的缺点:有可能会发生绝大部分的请求压力都集中到某台数据库机器上去,从而使得负载均衡效果失效
2
基于批处理请求的负载均衡:在建立数据库连接的时候,会同时与每台数据库服务器建立连接,之后针对客户端的每次请求,都会根据负载均衡算法,独立地选出某个数据库节点来执行这个请求
此种思路符合数据库长时间连接的特征,不存在上面所述的基于连接的负载均衡方法的缺点
市面上的负载均衡厂商,既有基于连接的,也有基于批处理请求的,用户需仔细辨别才能找到自己想要的合适产品
一个数据库可以由多个实例打开,但任何时刻一个实例只能打开一个数据库。多个实例可以同时运行在同一个机器上,它们彼此访问各自独立的物理数据库。
对于一个数据库里的多个表空间,是享用RAC功能的,在应用程序配置数据库连接池的时候,用“用户”区分开就可以了。
先学习至少一个能运行数据库的主机环境(如linux)把系统方面的东西都搞明白,然后再学习oracle数据库,体系结构、sqlPL/sql、调优等,然后会搭建各种高可用的数据库服务例如dataguardrac集群中的dataguard等
关闭:
srvctl stop instance -d orcl -i orcl1
srvctl stop instance -d orcl -i orcl2
启动:
srvctl start instance -d orcl -i orcl1
srvctl start instance -d orcl -i orcl2
以上命令假设你的数据库名为orcl,实例名分别为orcl1,orcl2
2台X3850+1台DS系列存储阵列,配合网络设备等,组成数据库的集群;两台主机可以组成数据库的并发像Oracle的RAC;也可以是双机热备模式,一台运行数据库一台运行应用,并互作热备。
磁盘阵列作为主机数据共享应用。
与一般的集群产品一样,ORACLE RAC实现需要考虑以下几个问题:
1,并发管理,当集群中多个节点同时接受外部客户端访问,如何使每个客户端得到的数据一样,这就需要保证在集群中每个节点看到的数据都要一样的,这就是在节点中如何保持数据一致性的问题。ORACLE RAC主要是使用DLM(分布式锁管理器)来保证集群节点之间的数据一致性
2,健忘症,如我们需要修改集群配置时,只是在集中一台节点上修改,这一台节点会自动把配置信息分发到其他的节点。考虑一种这样的情形,在节点A上修改了集群配置,而这时候节点B处理关机状态。当节点B开始的时候,并不知道配置已经发生了改变,这种情形称为健忘症,在ORACLE RAC中,主要通过把SPFILE存放在共享存储上来解决配置丢失的问题。
3,脑裂症,在一个共享存储的集群中,当集群中hearbeat丢失时,如果各节点还是同时对共享存储去进行 *** 作,那么在这种情况下所引发的情况是灾难的。ORACLE RAC采用投票算法来解决这个问题,思想是这样的:每个节点都有一票,考虑有A,B,C三个节点的集群情形,当A节点由于各种原因不能与B,C节点通信时,那么这集群分成了两个DOMAIN,A节点成为一个DOMAIN,拥有一票;B,C节点成为一个DOMAIN拥有两票,那么这种情况B,C节点拥有对集群的控制权,从而把A节点踢出集群,对要是通IO FENCING来实现。如果是两节点集群
,则引入了仲裁磁盘,当两个节点不能通信时,请求最先到达仲裁磁盘的节点拥用对集群的控制权。
以上就是关于SQLSERVER怎么搭建服务器集群实现负载均衡(服务器负载均衡如何实现)全部的内容,包括:SQLSERVER怎么搭建服务器集群实现负载均衡(服务器负载均衡如何实现)、一个rac 集群中可否有两个以上的数据库、如何成为一名成功的数据库运维工程师等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)