网站规模到了一定程度之后,该分的也分了,该优化的也做了优化,但是还是不能满足业务上对性能的要求;这时候我们可以考虑使用主从库。主从库是两台服务器上的两个数据库,主库以最快的速度做增删改操作+最新数据的查询操作;从库负责查询较旧数据,做一些对实效性要求较小的分析,报表生成的工作。这样做将数据库的压力分担到两台服务器上从而保证整个系统响应的及时性。如果还无法满足业务需求,我们就要考虑创建服务器群,这里我们不做考虑!

1. 打开sql server企业管理器,在对象资源管理器里面选择复制à本地发布,右键选择新建发布

  2. 打开新建发布向导,点下一步,选择发布数据的数据库

3. 我们选择Test数据库,并点击下一步,选择发布类型

4. 点击下一步,选择要发布的对象,这里我们只对表进行发布

5. 点击下一步进入筛选数据设置,这里我们要复制表的所有数据所以不做设置

6. 点击下一步,指定何时运行快照,我们选择初始话数据,并选择默认的运行快照频率

7. 继续下一步,设置快照代理的运行账户,我们选择sql server agent账户

8. 点击下一步选择创建发布,再次点击下一步设置发布的名称

9. 点击完成,完成发布的设置,并创建发布,现在在本地发布出新添加了我们创建的发布

现在成功创建了发布,我们还需要创建订阅:在本地订阅文件夹上右击新建订阅,通过向导可以很容易的创建订阅,创建订阅时可以选择以发布者推送或者订阅者主动的方式创建。具体步骤如下:

1. 通过右键菜单打开新建订阅,点击下一步,选择我们刚刚创建的发布作为订阅源

2. 选择是以推送还是以主动请求的方式同步数据,我们选择主动订阅

3. 设置执行分发代理的账户

4. 设置代理请求同步的频率

5. 设定是否立即做数据的初始化操作

6. 完成创建订阅

创建完成之后,我们可以通过在主库表中插入n条数据,然后在从库中查询的方式验证复制是否成功。

在Sql server2005中的复制创建起来很简单,我们需要根据业务需要设定复制的类型和同步的频率。

下面我们具体看下主从库的几个使用场景和一个简单的小例子。

主从库之间是一种发布订阅的关系,发布者和订阅者之间并非实时同步的,通常会有几分钟的延时,更有甚者会有几个小时的延时。所以我们需要通过合理的使用来避开有延时这个问题。我们希望主库尽可能的少参与查询,来提高写的及时性;同时要让从库在不影响读出数据的准确及时的前提下尽可能的分担主库的压力。主从两个库需要在配置文件中配置两个连接字符串,CONN_Master和CONN_Slave。我们需要设定一些规则决定当前的查询应该从主库查还是需要从从库查。这个规则没有定式,只能根据业务需要来确定。下面我举几个例子来说明:

1. 以豆瓣读书书的详细页为假定场景,你可以点击这里看下页面的结构(我不是豆瓣的技术,在这里只是拿这个页面举例)

我们来分析呈现这个页面需要的数据和这些数据的实效性要求

1) 书的详细信息 时效性要求:要求及时

2) 豆瓣成员的常用标签 实效性:不需要很及时

3) 喜欢读这本书的人也喜欢读的书 属于分析数据,不需要很及时

4) 最新书评 要求及时

5) 读这本书的几个用户 及时性不高

6) 喜欢这本书的人常去的小组 属于分析数据不需要很及时

从上面的分析可以看出只有1),4)两项数据需要从主库读,而2),3),5),6)为非及时数据从从库读取即可。当然我们可以对这些实效性不高的数据做缓存处理。

2. 以论坛帖子列表页面为假定场景,玩论坛的人都喜欢顶贴,把自己的帖子顶到第一页让更多的人关注,而对于50页之后的帖子则反读的人很少;我们可以根据这个业务逻辑特征来决定在用户访问前50页帖子列表数据时从主库读,而当用户访问超过50页之后的数据时则从从库进行查询。

3. 以订单为例,通常超过三个月的订单就不会再有变化了,假定我们把订单号设计为日期格式时,根据订单号去查询订单时就可以根据订单号来决定该访问主库还是从库。

举了几个适用的场景,我们以第三个场景为例,写一段简单的示意代码看下

public OrderInfo GetOrder(string orderNo) {string connString = ConnStringGetter.GetForOrder(orderNo);using (SqlConnection conn = new SqlConnection(connString)){...}}public class ConnStringGetter{public static string GetForOrder(string orderNo) {int year = int.Parse(orderNo.Substring(0,4)); int money = int.Parse(orderNo.Substring(4,2)); int date = int.Parse(orderNo.Substring(6,2)); DateTime orderTime = new DateTime(year, money, date); TimeSpan ts = DateTime.Now - orderTime; //根据订单的时间决定使用主库还是从库 if (ts.TotalDays > 30) return ConfigurationManager.ConnectionStrings["CONN_Slave"].ConnectionString; return ConfigurationManager.ConnectionStrings["CONN_Master"].ConnectionString; } }

转载:http://blog.csdn.net/wanmdb/article/details/7515277

正确的使用主从库,可以很好的提升系统的性能。使用主库还是从库的选择权决定在业务逻辑的手里。

SQL Server 2008 R2 主从数据库同步设置:http://www.cnblogs.com/webapi/p/5283866.html

转载于:https://www.cnblogs.com/webapi/p/5669082.html

sql2005主从数据库同步配置相关推荐

  1. .net 同步mysql_MySQL服务器主从数据库同步配置

    首先需要在同一个局域网内的两台机器(当然也可以用一台机器虚拟两台机器出来),都安装上mysql服务. 主机A: 192.168.1.100 从机B: 192.168.1.101 可以有多台从机. 1. ...

  2. MySQL主从数据库同步延迟问题解决

    MySQL主从数据库同步延迟问题 摘要: MySQL的主从同步是一个很成熟的架构,优点为:①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力;②在从主服务器进行备份,避免备份期间影响 ...

  3. php mysql主从延迟_如何解决主从数据库同步延迟问题?php连接 mysql 数据库如何添加一个公共的配置文件50...

    在上一篇文章中,小编为您详细介绍了关于<图上属标注的什么样元器件?火车购票明明显示无座为什么样乘车后却发现有很多空座>相关知识.本篇中小编将再为您讲解标题如何解决主从数据库同步延迟问题?p ...

  4. Django主从数据库分离配置

    数据库主从配置,django 发表时间:2020-08-25 对网站的数据库作读写分离(Read/Write Splitting)可以提高性能,在Django中对此提供了支持,下面我们来简单看一下.注 ...

  5. mysql 备库同步_MYSQL主从库同步配置过程

    MYSQL主从库同步配置过程 为了实现网站数据库的异地备份,采用了MySQL数据库主从同步配置,需要两台服务器分别作为主从库,当主库发生增删改等操作,会实时反映到从库,我的个人服务器配置如下: 主库为 ...

  6. 阿里云mysql主从有延迟怎么办_MySQL主从数据库同步延迟问题解决

    MySQL主从数据库同步延迟问题 摘要:MySQL的主从同步是一个很成熟的架构,优点为:①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力;②在从主服务器进行备份,避免备份期间影响主 ...

  7. Oracle数据库DG实现主从数据库同步

    Oracle数据库DG实现主从数据库同步 概述 前提:本文档基于已经创建了oracle数据库,两台服务器网络可以互相访问, 主库 备库 OS系统 Centos 7.5 x64 Centos 7.5 x ...

  8. SQL Server主从数据库同步方式及同步问题解决方案总结

    SQL Server主从数据库同步方式及同步问题解决方案总结 参考文章: (1)SQL Server主从数据库同步方式及同步问题解决方案总结 (2)https://www.cnblogs.com/zh ...

  9. 《Netkiller Spring Cloud 手札》之 Master / Slave 主从数据库数据源配置

    2019独角兽企业重金招聘Python工程师标准>>> Netkiller Spring Cloud 手札 Spring Cloud Cookbook Mr. Neo Chan, 陈 ...

最新文章

  1. 人群密度估计--Structured Inhomogeneous Density Map Learning for Crowd Counting
  2. c#加粗代码_RichTextBox,怎么用c#代码根据Index和Length指定的范围的内容进行变色或加粗处理?...
  3. 量子计算机混战:新贵离子 vs 老派超导体
  4. 2、Reactive Extensions for .NET(译)
  5. java android 服务器_Android/Java从服务器端下载图片
  6. 20200327:最大矩形(leetcode85)
  7. Zabbix Windos agent 安装
  8. 11G新特性 -- ASM Fast Mirror Resync
  9. Tp nginx.conf 配置(Linux)
  10. WinEdt编译重新生成PDF以及找到模板tex对应的论文树形结构
  11. 深入理解Nginx:模块开发与架构解析阅读--Nginx架构设计简介
  12. 照片编辑工具 Affinity Photo for Mac 1.7.1
  13. 背单词App-单词播放器10.31版本的原理
  14. 实用供热空调设计手册_空调水系统管路设计与施工,全是最实用的现场经验!...
  15. Git在dev分支获取master分支最新代码
  16. Flink 统计页面点击量
  17. pytho_抓取下载音乐歌曲
  18. 二十九-使用RealSenseD435进行ORBSLAM2实时三维重建
  19. Unity3D中如何调用序列帧图片为动画
  20. 《费马大定理》个人笔记整理

热门文章

  1. android的窗口机制分析------UI管理系统
  2. saslauthd mysql_启用MemCached的SASL认证
  3. python数据分析第七章实训3_《利用Python进行数据分析·第2版》第7章 数据清洗和准备7.1 处理缺失数据7.2 数据转换7.3 字符串操作7.4 总结...
  4. python字符串注释_python字符串注释_Python学习笔记-字符串与注释
  5. Linux 中的驱动开发的初学者体会
  6. webstorm怎么跑项目_怎么跑Mint-UI的实例,你知道吗?
  7. jprofiler分析dump文件_内存溢出+CPU占用过高:问题排查+解决方案+复盘(超详细分析教程)...
  8. hdu5446(2015长春网络赛J题)
  9. 线段树什么的最讨厌了
  10. c语言recv函数返回值,谈谈recv()函数的返回值