读写分离是中型规模应用的数据库系统常见设计方案,通过将数据从主服务器同步到其他SQL Server 服务器,提供非实时的查询功能,扩展性能并提高并发性。
数据库的读写分离的优点如下:
1.通过将“读”和“写”分离到不同的数据库服务器上,降低对主服务器的CPU、内存、存储、网络资源的争用;
2.主数据库的增删改进行时,不影响查询服务器的查询,降低阻塞的发生,提高了并发性;
3.在应用程序提交了报表请求、不合理的查询请求时,不会导致长时间的锁表;
4.建立数据副本甚至实现异地容灾,在发生灾难时,可以减少数据的损失;
作业系统的基本要求配置
序号 | 名称 | 要求 | 备注 |
1 | WINDOWS | Windows Server 2016 中文版 | |
2 | SQL版本 | SQL Server Enterprise 2017 中文版 | |
3 | Microsoft SQL Server Management Studio | 适用于SQL Server Enterprise 2017 中文版 | |
硬件基本配置要求
序号 | 名称 | 要求 | 备注 |
1 | 服务器 | 配置相同,2台或以上 | |
2 | 硬盘 | 固态硬盘 | |
3 | 阵列 | RAID5 |
备注: 硬件具体规格要求按使用场景来调整.
应用场景案例说明;
l 100+以上门店7x24小时使用ONLINE,SUNLIKE及第三方软件系统,共4台WEB应用服务器. 数据库约2TB, SQL自动计划(每天0时)自动备份到
l 由于客户端300个用户不断对WEB应用服务器访问量,造成其他应用的延迟或者超时,经常出现“宕机”.系统无法访问等现象.
l 单表数据量过大导致数据库执行sql慢,请求过多形成锁表,卡顿
l 形成数据丢失问题,同时ERP系统管理员对业务系统,数据迁移等环节增加维护成本.
业务示意图;
场景案例需求:
1. 业务系统停机时间在30分钟内.
2. 数据不能丢失.
解决方案 :
如上述问题. 利用SQL Server的AlwaysOn 将WEB应用服务数据库自动同步到备份数据库服务器.
业务系统通过后台将报表查询设置到备份服务器. 即可将数据‘写入’与‘读取’权限分开,当数据库“读”大于“写”,或查询多的情况,就可以考虑主数据负责写操作,从副数据库负责读操作,从而把数据达到读写分离效果,可以减少数据库运维的难度,降低出现故障率.
由于主数据库(‘写’权限),副数据库(‘读取’权限)虽处于不同服务器,数据却均实时同步,任何一方以由WEB应用服务器调用. 可避免数据延迟,丢失. 提升数据库的并发负载能力. 实现备份的同时也实现了数据库性能的优化,同时提升了服务器安全,减轻维护成本.