先来了解一下一个基本的关于复制的概念。
什么是复制?
复制就是把数据的多个拷贝(复制品)分发到公司中的各个服务器中,通过复制为多台服务器提供相同的数据。这样用户就可以在不同服务器中访问同样的信息。
对于一个拥有大量用户的企业,复制可以分散用户访问服务器的负载。
什么是复制模型?
定义了服务器和数据副本之间的关系。
在复制模型里有三种角色,他们的任务各不相同。
1、 发布服务器:提供数据以便复制到其他服务器。
2、 分发服务器:作为发布和订阅之间的存储区。
3、 订阅服务器:接收复制数据。
一个数据库服务器实例可以充当发布服务器和分发服务器两个角色。
什么是复制类型?
复制类型有以下三种:
1、 快照复制:由发布服务器进行数据的更新和修改,周期性地复制到其他服务器。缺点是可能引起流量的增加。
2、 事务性复制:由发布服务器进行数据的更新和修改,但是复制是实时性的,即当有数据的改变的时候才触发复制的行为,优点是可以减少数据复制的流量。
3、 合并复制:发布服务器和订阅服务器都可以对数据进行更新和修改。复制是实时性的。当数据同步同时发生时,那么发布服务器的修改和订阅服务器的修改被合并在一起。
下面通过一个案例来详解复制的实现方式,本次以合并复制为例。
需求:
需求:现在随着玩家数量剧增,“moshou1”有些不堪重负,于是增加了一个SQL Server2005服务器,默认实例“moshou2”。现在希望将moshou1中的“player”数据库中的“玩家信息表”同步到“moshou2”中的player数据库中的玩家信息表,并要实现玩家无论登录哪个服务器更改个人信息都会同步到另一台服务器。如何实现?
需求分析:使用SQLserver 2005的数据复制功能,实现负载均衡数据库之间的数据同步和更新。本例采用“合并复制”数据的修改由发布服务器和订阅服务器共同来完成。并且数据的修改是实时的。合并复制自动创建初始快照。
备注:本例为了演示的方便,就在同一个服务器两个不同的实例中做这个实验,跟实际情况没有太多的出入。注意截图中的默认实例模拟moshou1,命名实例cool模拟moshou2
(一)、首先要启动SQL server agent的代理服务,moshou1、moshou2这两个实例的服务都必须启动
登录到SQL server的SSMS界面
(二)、定义“玩家信息表”的主键,如果不定义的话,那么在发布服务器的时候会出错
(三)、moshou1上新建发布
打开新建发布向导
选择自己作为分发服务器,即该服务器即是发布服务器也是分发服务器
将SQL server 代理配置为自动启动
设置快照文件夹的位置
选择要发布的数据库
选择发布类型为“合并发布”
订阅服务器类型保存默认
要发布的项目,选择玩家信息表
项目问题保持默认
快照代理,勾选“立即创建快照”
点击快照代理的安全设置按钮,设置快照代理的安全性
创建发布
给该发布起一个名字
下图是创建好的本地发布
(四)、moshou2上新建订阅
查找发布服务器
选择发布服务器
设置合并代理的位置
在订阅服务器上新建订阅数据库
点击右边的按钮,设置合并代理安全性
设置完成后,如图所示
同步计划设置为连续运行
立即初始化订阅
订阅类型保持默认
勾选在向导结束后,创建订阅
(五)、验证一下
打开cool实例下的player数据库,展开表,可以看到同步过来的玩家信息表
在默认实例的player数据库中对玩家信息表进行修改,可以同步到cool的player数据库的玩家信息表中
我们在默认实例的玩家信息表中添加一个列eee,然后可以看到马上就同步到了cool实例的表中

利用SQL server 的复制功能分散用户访问服务器的负载的更多相关文章

  1. 利用 SQL Server Audit 审核哪些用户添加删除更新SQL Agent Job

    有的时候我们需要下放权限给不用的用户,让他们自己能管理一部分SQL Agent Job,此时需要详细记录谁在什么时间修改了Job 甚至删除了Job, 我们可以使用SQL Server 的Audit帮助 ...

  2. 利用SQL Server Management Studio(SSMS)复制数据库

    利用SQL Server Management Studio(SSMS)复制数据库 标签(空格分隔): SQLServer 前言 今天由于客户购买的软件版本确认了,而之前进行开发的本地数据库版本较低, ...

  3. 利用SQL Server 2008 R2创建自动备份计划

    本文主要利用SQL Server 2008 R2自带的"维护计划"创建一个自动备份数据的任务. 首先,启动 Sql Management studio,确保"SQL Se ...

  4. [转]在 SQL Server 2008 中新建用户登录并指定该用户的数据库

    提要:我在 SQL Server 中新建用户登录时,出现了三种错误,错误代码分别是 18456.15128.4064 -----------------------------------  正 文 ...

  5. SQL Server 2008 查询所有用户表

    SQL Server 2008 查询所有用户表的T-SQL语句是: SELECT * FROM sysobjects WHERE [xtype] = 'U' 或者是: SELECT * FROM sy ...

  6. ASP.net(C#)利用SQL Server实现注册和登陆功能

    说说我现在吧,楼主现在从事的事IT行业,主攻DotNet技术:当然这次上博客园我也是有备而来,所有再次奉献鄙人拙作,以飨诸位,望诸位不吝赐教. 世界上大多数的工作都是熟练性的工种,编程也不例外,做久了 ...

  7. 【转载】SQL Server 2008 中新建用户登录并指定该用户的数据库

    提要:我在 SQL Server 中新建用户登录时,出现了三种错误,错误代码分别是 18456.15128.4064 -----------------------------------  正 文 ...

  8. Sql Server 修改表所属用户

    Sql Server 修改表所属用户 exec sp_changeobjectowner 'tablename','dbo' tablename--所要修改的表明 dbo--是表所属的用户,默认是db ...

  9. 四、利用SQL Server 2008 R2创建自动备份计划

    (转) 本文主要利用SQL Server 2008 R2自带的"维护计划"创建一个自动备份数据的任务. 首先,启动 Sql Management studio,确保"SQ ...

随机推荐

  1. Codeforces 825E - Minimal Labels

    825E - Minimal Labels 题意 给出 m 条有向边,组成有向无环图,输出一个 1 到 n 组成的排列,每个数只能出现一次,表示每个点的标号.如果有边 \((u, v)\) 那么 \( ...

  2. #420 Div2 D

    #420 Div2 D 题意 给出一个方格矩阵,其中存在亮着的方格,只能在亮着的方格上行走,可以在初始亮的方格上花费一枚硬币临时点亮任意一行或一列,地图上同一时间只能存在一个这样的行或列,问走到终点最 ...

  3. Codeforces 1010D Mars rover

    题目大意:对于一个不完全二分图,根节点为1,叶节点值为0或1,非叶节点包含一个操作(and,or,xor,not),求改变各个叶节点的值时(即0改为1,1改为0),根节点的值是多少 解法:遍历图求各节 ...

  4. Sum of bit differences among all pairs

    This article was found from Geeksforgeeks.org. Click here to see the original article. Given an inte ...

  5. [P2023][AHOI2009]维护序列(线段树)

    题目描述 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成. 有长为N的数列,不妨设为a1,a2,…,aN .有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2)把数列中的一 ...

  6. Unity定制 Image、Text的对象生成

    2016.4.14 昨天看到 雨凇的 Unity3D研究院之UGUI一个优化效率小技巧:  http://www.xuanyusong.com/archives/4006 完好了他所说的代码: usi ...

  7. ylbtech_dbs_article_五大主流数据库模型

    ylbtech_dbs_article 摘要:什么是数据模型? 访问数据库中的数据取决于数据库实现的数据模型.数据模型会影响客户端通过API对数据的操作.不同的数据模型可能会提供或多或少的功能.一般而 ...

  8. python scrapy简单爬虫记录(实现简单爬取知乎)

    之前写了个scrapy的学习记录,只是简单的介绍了下scrapy的一些内容,并没有实际的例子,现在开始记录例子 使用的环境是python2.7, scrapy1.2.0 首先创建项目 在要建立项目的目 ...

  9. ES6中关于数据类型的拓展:Symbol类型

    ES5中包含5种原始类型:字符串.数值.布尔值.null.undefined.ES6引入了第6种原始类型——Symbol. ES5的对象属性名都是字符串,很容易造成属性名冲突.比如,使用了一个他人提供 ...

  10. ES里关于对象的拓展

    一.对象类别 在浏览器这样的执行环境中,对象没有统一的标准,在标准中又使用不同的术语描述对象,ES6规范清晰定义了每一个类别的对象,对象的类别如下 1.普通(Ordinary)对象:具有JS对象所有的 ...