mssql数据库,数据库同步,分布式数据库,数据库集群,如何实现

diamondTears1987 2012-06-03 11:27:19
由于项目需要,产品的部署必须考虑到安全和灾难的解决办法.由于之前一直做的的小项目,基本都是单服务器,单数据库结构,但是由于一次灾难,把这个问题提上了日程.

本人资历浅薄,很多东西还不是很熟悉,最近在网上百度了一大堆相关的东西,基本有了大概的思路,

思路就是,
1..用多个服务器做集群,做压力负载均衡,这样第一可以分流,减轻每个服务器的压力,提高稳定性,再者就是,一个服务器崩溃了,其他服务器可以继续运行.提供服务.

2..做文件同步式,自动把多台服务器上的一些特殊文件夹做文件同步,比如一些图片资源文件,静态的html.这样一台服务器做更新,其他服务器可以同步更新,并且,用户上传的文件也同步在每个服务器上,即使部分服务器崩溃了,保证用户的使用不受影响.

3.就是难住我的了,也就是数据库集群,或叫数据库同步,不知道专业学名是什么,反正我要实现的功能就是,有多个数据库服务器,这些数据库上的内容是完全相同的,不同来源的访问可能会被分配到不同的数据库上.当我对A1数据库,添加,修改,删除的时候,其他所有的数据库同步更新,应用程序在运行的时候,会被自能解析到压力最小的数据库服务器上,当一个数据库服务器挂了的时候,它对应的程序就转移到别的数据库服务器上,但是关键是,数据不能丢失,即使那个服务器的硬盘烧掉了,之前的数据也不能丢失.

我查到mssql有数据库同步的功能,但是有一个大问题就是,当2个人同时对2个数据库进行添加操作的时候,会生产2个同样的自增长id,这样2个服务器就发生了并发的冲突.导致数据出现了不一致.这个问题很致命.

以上就是我的问题描述,我把帖子共享在这里,一共以后的小菜们学习,希望各位大神多多给予指导,想必这些技术已经在很多商业公司运用的很成熟了,但是还有很多像我这样的小菜没有掌握,大家多多交流一下吧,这几天我实在是太困了,我都睡了,88.
...全文
1950 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianshuyang_999 2013-07-24
  • 打赏
  • 举报
回复
楼主是菜鸟 1.分布式系统和分布式数据库 可以减轻压力 但是一般 要用代码写 首先1.ping服务器集群 连接ping值最小的 2. 验证该服务器的服务是否可用(http) 用户同样一次操作 就分给了 某1台服务器 这样其他的机器流量自然就小了 但是集群的ping多了 说你是菜鸟是因为你把主键搞成了自增的 自增的主键是不适用于分布式数据库的 把主键写成标识变量 也不要用GUID 网上好多人说GUID不会重复 错!Guid不是不会重复 是重复率小 他的重复几率是 46的32次方 既然有重复几率 就不要用
筱筱澄 2012-06-28
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

镜像数据库,可以增删查改吗
[/Quote]
不可以。。。。。。。。。。。

sql server的cluster什么的HA只是容灾,没有load balance
筱筱澄 2012-06-28
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

镜像数据库,可以增删查改吗
[/Quote]
不可以。。。。。。。。。。。
starseeker7 2012-06-28
  • 打赏
  • 举报
回复
阿对了,写压力的话
可以通过SSB实现,当然需要存储过程做独立处理,也可以自己写程序控制一致性
但实际存在写压力的情况很少,除非你的项目是大型电子商务性质
没有直接的技术可以解决写压力的分散
starseeker7 2012-06-28
  • 打赏
  • 举报
回复
用MSSQL的replication+load balance(这个买硬件吧)
实现你的压力分散需求 (关于你说的id重复问题,请注意实现读写分离,同步的目的端禁止写操作)
再用镜像实现你的防灾需求

当然上情况是你的压力非常大,并且要求数据一致性高,且安全性高情况
diamondTears1987 2012-06-28
  • 打赏
  • 举报
回复
来人啊,
diamondTears1987 2012-06-11
  • 打赏
  • 举报
回复
镜像数据库,可以增删查改吗
Q315054403 2012-06-04
  • 打赏
  • 举报
回复
简单的方案是做镜像,读写都基于主服务器。灾难时转向镜像服务器
Rotel-刘志东 2012-06-04
  • 打赏
  • 举报
回复
复制可以实现的。
mayuanf 2012-06-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

sql server的cluster什么的只是HA,没有load balance。
当然你可以比如clustering或者mirroring以后在做log shipping到另一台server,然后primary server做日常操作(OLTP),standby server用来查询报表,分担主服务器压力。
[/Quote]
说错了..sql server的cluster什么的HA只是容灾,没有load balance
mayuanf 2012-06-04
  • 打赏
  • 举报
回复
sql server的cluster什么的只是HA,没有load balance。
当然你可以比如clustering或者mirroring以后在做log shipping到另一台server,然后primary server做日常操作(OLTP),standby server用来查询报表,分担主服务器压力。
diamondTears1987 2012-06-04
  • 打赏
  • 举报
回复
有没有类似的案例
昵称被占用了 2012-06-04
  • 打赏
  • 举报
回复
如果只考虑容灾,,可考虑自动切换的订阅复制,需要增加一个见证服务器,具体可查看联机帮助。
haitao 2012-06-04
  • 打赏
  • 举报
回复
【文件同步式】
如果是web服务,可以使用nginx做反向代理,可配置得很好
haitao 2012-06-04
  • 打赏
  • 举报
回复
【用多个服务器做集群,做压力负载均衡】
mssql这个比较难,最多是:
先加重 主服务器 的负担,把主服务器的记录同步到 只读服务器,
分流读的用户到此服务器来读,减轻主服务器的读压力
写压力基本是没办法简单分流,除非是应用自行规划
diamondTears1987 2012-06-04
  • 打赏
  • 举报
回复
顶一顶啊,别沉了,这是个好贴啊.
单机也可安装。 泛转发集群版本分为三部分: 1.数据库服务器(1台或多台同步)。 2.泛转发器服务器(可阔容多台)。 3.注册站点(可阔容多台)。 所需运行环境:IIS5(IIS6)、MSSQL2000、ASP 即可。 单机经过压力测试(实测)可以承载至少10万IP,可承载平均时刻在线5000个以上连接。 多机集群承载能力可翻倍,达到几十万上百万用户几千万甚至上亿的访问量肯定是不会有问题的。(多机翻倍这里是计算得出的 因为时间关系并未进行实际测试。我没那么多时间用来发展用户。) (简单的计算方法 一个域名几百的访问量 100个域名就有几万的访问量,而一个用户可以免费注册2个域名……花半年时间来好好做 达到1000个域名的注册应该是很容易的 而1000个域名就意味着几十万的访问量,到这里就需要多机集群来做服务了。) 所实现功能: 1.用户以邮箱注册登陆后可以免费注册两个域名的泛转发服务。(可自行调整免费个数) 2.每个域名可以指定一个泛转发目甑刂芬约傲礁鲋付??频街付?勘甑刂罚ㄈ鐆ww、blog、*、可以分别到不同的三个目标地址) 3.用户密码采用MD5加密保存,有取回密码功能。用户新注册发送随机密码到邮箱。 4.整合支付宝在线支付功能,用户如果需要续费或者注册两个以上的域名可以方便支付。(默认设定50元/个/年)随机生成长达18位交易定单号以保证决不重复。支付宝接口可以设定指定接入IP以保证交易安全。 5.后台管理查看前台访问日志(具体访问URL以及来访IP,访问来源)、支付宝交易日志(连接接口IP合法性判断并记录)。(日志分两套分别在两个目录中 以.txt格式记录) 6.分布式集群系统 可以安装在多机集群中(可以无限扩展服务器数量),建站初期也可以将所有功能集中安装在一台服务器上。 基本想到的就是上面那些比较大的功能了,小的功能就不多做介绍了。 由于老猫手上的服务器数量有限已经停了几台服务器原先所提供的大部分服务如社区、网摘、博客、免费泛转发服务等。将手上的服务器资源集中用来建设新近开发的搜索引擎(Search.7xm.net)。因此就不提供泛转发服务的演示了。有意购买请直接联系QQ 876520(加好友请注明“泛转发系统”) ============================================================= 先到支付宝注册一个帐号。然后按照下面的安装步骤做即可: ============================================================= 安装前请注意: GLOBAL.ASA文件(站点配置文件)有多个, 转发器上的默认站点根目录有一个,多个转发器就有多个。 注册站点上的根目录也有一个,多个注册站就有多个。 泛转发集群版本分为三部分: 1.数据库服务器(1台或多台同步)。 2.泛转发器服务器(可阔容多台)。 3.注册站点(可阔容多台)。 ============================================================= 系统安装说明: 一、建立数据库服务器:(这是最重要的机器所以安全请做好哦!) 1.打开企业管理器 新建一个数据库(比如数据库名叫domain) 2.在企业管理器中选中新建立的数据库后打开工具中的查询分析器 3.将domain.sql脚本执行 脚本执行后你将看到数据库中的表已经建立了。 二、建立泛转发器:(注意 默认文档要以default.asp为先) 1.用记事本打开GLOBAL.ASA将里面的所有参数设置为你自己的。(内容要与所有的GLOBAL.ASA一样) 2.在IIS中建立默认站点(主机头为空),将“默认站点”文件夹中的所有文件与文件夹放入默认站点中。 (可以多台服务器集群提供服务 所需要的就是将默认站点建立到各台服务器上即可) 三、建立注册站点:(注意 默认文档要以index.asp为先) 1.用记事本打开GLOBAL.ASA将里面的所有参数设置为你自己的。(内容要与所有的GLOBAL.ASA一样) 2.像建立普通站点那样在IIS中建立站点后将本程序放入即可。 好了恭喜你!到这里 整套泛转发服务系统已经建立完成!

34,836

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧