如何构建数据库的主从架构?

    作者:课课家教育the更新于: 2017-05-18 10:52:12

      随着网站业务的不断发展,用户量的不断增加,数据量成倍地增长,数据库的访问量也呈线性地增长。特别是在用户访问高峰期间,并发访问量突然增大,数据库的负载压力也会增大,如果架构方案不够健壮,那么数据库服务器很有可能在高并发访问负载压力下宕机,造成数据访问服务的失效,从而导致网站的业务中断,给公司和用户造成双重损失。那么,有木有一种方案能够解决此问题,使得数据库不再因为负载压力过高而成为网站的瓶颈呢?答案肯定是有的。

      目前,大部分的主流关系型数据库都提供了主从热备功能,通过配置两台(或多台)数据库的主从关系,可以将一台数据库服务器的数据更新同步到另一台服务器上。网站可以利用数据库的这一功能,实现数据库的读写分离,从而改善数据库的负载压力。

      目前,大部分的主流关系型数据库都提供了主从热备功能,通过配置两台(或多台)数据库的主从关系,可以将一台数据库服务器的数据更新同步到另一台服务器上。网站可以利用数据库的这一功能,实现数据库的读写分离,从而改善数据库的负载压力。

      可能发展到大型成熟的公司之后,主从架构已经落伍了,取而代之的是更加复杂的数据库集群。但是作为一个小型电商公司,数据库的主从架构应该是最基础的。任何大型的系统架构,都是不断演进的。主从架构便是数据库架构中,最基础的架构。所以研究完主从架构,也就能看懂更加复杂的架构了。

      一、为什么要读写分离?

      对于一个小型网站,可能单台数据库服务器就能满足需求,但是在一些大型网站或者应用中,单台的数据库服务器难以支撑大的访问压力,升级服务器性能,成本太高,这时候就做横向扩展。单库的话,读写都是操作一个数据库,数据多了之后,读写性能就会有很大影响,同时对于数据安全性,系统稳定性也是一个挑战。

      二、数据库读写分离的好处?

      ①将读操作和写操作分离到不同的数据库上,避免主服务器出现性能瓶颈

      ②主服务器进行写操作时,不影响查询服务器的查询性能,降低阻塞,提高并发

      ③数据拥有多个容灾副本,提高数据安全性,同时当主服务器故障时,可立即切换到其他服务器,提高系统可用性

    数据库读写分离的好处?    ①将读操作和写操作分离到不同的数据库上,避免主服务器出现性能瓶颈    ②主服务器进行写操作时,不影响查询服务器的查询性能,降低阻塞,提高并发    ③数据拥有多个容灾副本,提高数据安全性,同时当主服务器故障时,可立即切换到其他服务器,提高系统可用性

      读写分离的基本原理就是让主数据库处理事务性增、改、删操作,而从数据库处理查询操作。数据库复制被用来把事务操作导致的变更同步到其他从数据库。以SQL为例,主库负责写数据、读数据。读库仅负责读数据。每次有写库操作,同步到读库。写库就一个,读库可以有多个。采用日志同步的方式实现主库和多个读库的数据同步。

      三:SqlServer读写分离的配置

      SQLServer提供了三种技术,可以用于主从架构之间的数据同步的实现:日志传送、事务复制和SQL2012中新增的功能AlwaysOn技术。

      1.日志传送:SQLServer2008R2主从数据库同步。

      2.事务复制:SQLServer复制:事务发布

    一:SqlServer读写分离的配置    SQLServer提供了三种技术,可以用于主从架构之间的数据同步的实现:日志传送、事务复制和SQL2012中新增的功能AlwaysOn技术。    1.日志传送:SQLServer2008R2主从数据库同步。    2.事务复制:SQLServer复制:事务发布

      四:C#数据库读写操作

      C#的请求数据库操作,单数据库和主从架构的数据库还是不一样的。主从架构的数据库,为了保证数据一致性,一般主库可读可写,从库只负责读,不负责写入。所以,实际C#在请求数据库的时候,还是要区别对待。

      1.最简单的就是:配置两个数据库连接,然后在各个数据库调用的位置,区分读写请求相应的数据库服务器。

      2.第二种解决方案就是判断SQL语句是写语句(insert、update、Create、Alter)还是读语句(Select)。

     二:C#数据库读写操作    C#的请求数据库操作,单数据库和主从架构的数据库还是不一样的。主从架构的数据库,为了保证数据一致性,一般主库可读可写,从库只负责读,不负责写入。所以,实际C#在请求数据库的时候,还是要区别对待。    1.最简单的就是:配置两个数据库连接,然后在各个数据库调用的位置,区分读写请求相应的数据库服务器。    2.第二种解决方案就是判断SQL语句是写语句(insert、update、Create、Alter)还是读语句(Select)。

      同时,增加相关的数据库配置

     同时,增加相关的数据库配置

      小编结语:

      更多内容尽在课课家教育!

课课家教育

未登录

1