我在买两台服务器怎么做到两台服务器网站数据同步?

我在买两台服务器怎么做到两台服务器网站数据同步?,第1张

不管是否是微服务架构,应用的各个模块之间都需要频繁的通信、协作、共享数据,实现系统的整体价值。区别点在于单体应用是通过本地方法调用来完成;在微服务中是通过远程API调用完成。
而共享数据最贱的方式就是采用共享数据库模式,也就是单体应用中最常用的方式,一般只有一个数据库,如图一库多服和一库一服的方式:
一库多服的架构模式通常会被认为是微服务架构下的反范式,它的问题在于:
稳定性:单点故障,一个数据库挂掉,整批服务全部停止。服务独立性被扼杀?
耦合性:数据在一起,会给贪图方便的开发或者DBA工程师编写很多数据间高度依赖的程序或者工具;
扩展性:无法针对某一个服务进行精准优化或扩展,服务会大体分为两个读多写少、写多读少,数据库优化是根据服务而来的,不是一篇而论。
所以随行付内部一般推荐的做法:是为每一个微服务准备一个单独的数据库,即一库一服模式。这种模式更加适合微服务架构,它满足每一个服务是独立开发、独立部署、独立扩展的特性。当需要对一个服务进行升级或者数据架构改动的时候,无须影响到其他的服务。需要对某个服务进行扩展的时候,也可以手术式的对某一个服务进行局部扩容。
那么问题来了,在改造中我们发现,以下问题,诞生了该项目:
报表中心和前端详细页都存在SQL Join方式,经历我们一库一服的拆分后,无法在继续使用SQL Join方式了
数据中心,做得是数据聚合,数据拆分后,给数据中心带来了很大的麻烦
微服务之后,各个应用模块对数据库的要求出现了分歧,数据库类型多元化自主选择还是统一
等等

要么做主从
要么加入一台新的主服务器
所有的写入 *** 作,都通过分服务器提交到主服务器,具体办法,可以采用SSB技术什么的
然后再主服务器,在同步链等方式,同步到分服务器用于读取。
通过这个方式实现读写分离,和同步
这样可以达到实时同步
还有个方案就是你可以考虑简历不同的库,然后主从方式互相作为主从(当然也可以考虑做事务日志传输的方式实现这一步)
分别写入各自的库,读的时候可以考虑视图方式实现统一读取
你觉得麻烦,就上cluster吧!

不同服务器数据库之间的数据 *** 作 --创建链接服务器 exec sp_addlinkedserver 'ITSV ', '', 'SQLOLEDB ', '远程服务器名或ip地址 'exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码'--查询示例 selectfrom ITSV数据库名dbo表名 --导入示例 selectinto 表from ITSV数据库名dbo表名 --以后不再使用时删除链接服务器 exec sp_dropserver 'ITSV ', 'droplogins '--连接远程/局域网数据(openrowset/openquery/opendatasource) --1、openrowset --查询示例 selectfromopenrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码',数据库名dbo表名) --生成本地表 selectinto 表fromopenrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码',数据库名dbo表名) --把本地表导入远程表 insertopenrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码',数据库名dbo表名) selectfrom 本地表 --更新本地表 update b set b列A=a列A fromopenrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码',数据库名dbo表名)as a innerjoin 本地表 b on acolumn1=bcolumn1 --openquery用法需要创建一个连接 --首先创建一个连接创建链接服务器 exec sp_addlinkedserver 'ITSV ', '', 'SQLOLEDB ', '远程服务器名或ip地址 '--查询selectFROMopenquery(ITSV, 'SELECT FROM 数据库dbo表名 ') --把本地表导入远程表 insertopenquery(ITSV, 'SELECT FROM 数据库dbo表名 ') selectfrom 本地表 --更新本地表 update b set b列B=a列B FROMopenquery(ITSV, 'SELECT FROM 数据库dbo表名 ') as a innerjoin 本地表 b on a列A=b列A --3、opendatasource/openrowset SELECTFROMopendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' )testdboroy_ta --把本地表导入远程表 insertopendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ')数据库dbo表名 selectfromSQL code 用强制订阅实现数据库同步 *** 作 大量和批量的数据可以用数据库的同步机制处理: // 说明:为方便 *** 作,所有 *** 作均在发布服务器(分发服务器)上 *** 作,并使用推模式在客户机器使用强制订阅方式。 有疑问联系作者:zlp321001@hotmailcom 测试通过 //--1:环境服务器环境: 机器名称: ZehuaDb *** 作系统:Windows 2000 Server 数据库版本:SQL 2000 Server 个人版 客户端机器名称:Zlp *** 作系统:Windows 2000 Server 数据库版本:SQL 2000 Server 个人版 --2:建用户帐号在服务器端建立域用户帐号我的电脑管理->本地用户和组->用户->建立UserName:zlp UserPwd:zlp --3:重新启动服务器MSSQLServer我的电脑->控制面版->管理工具->服务->MSSQLServer 服务 (更改为:域用户帐号,我们新建的zlp用户 /zlp,密码:zlp) --4:安装分发服务器A:配置分发服务器工具->复制->配置发布、订阅服务器和分发->下一步->下一步(所有的均采用默认配置) B:配置发布服务器工具->复制->创建和管理发布->选择要发布的数据库(SZ)->下一步->快照发布->下一步-> 选择要发布的内容->下一步->下一步->下一步->完成C:强制配置订阅服务器(推模式,拉模式与此雷同) 工具->复制->配置发布、订阅服务器和分发->订阅服务器->新建->SQL Server数据库->输入客户端服务器名称(ZLP)->使用SQL Server 身份验证(sa,空密码)->确定->应用->确定D:初始化订阅复制监视器->发布服务器(ZEHUADB)->双击订阅->强制新建->下一步->选择启用的订阅服务器->ZLP-> 下一步->下一步->下一步->下一步->完成--5:测试配置是否成功复制监视器->发布服务器(ZEHUADB)->双击SZ:SZ->点状态->点立即运行代理程序查看:复制监视器->发布服务器(ZEHUADB)->SZ:SZ->选择ZLP:SZ(类型强制)->鼠标右键->启动同步处理如果没有错误标志(红色叉),恭喜您配置成功 --6:测试数据 --在服务器执行:选择一个表,执行如下SQL insertinto WQ_NEWSGROUP_S select'测试成功',5 复制监视器->发布服务器(ZEHUADB)->SZ:SZ->快照->启动代理程序 ->ZLP:SZ(强制)->启动同步处理 去查看同步的 WQ_NEWSGROUP_S 是否插入了一条新的记录 测试完毕,通过。

你好,你可以直接在一台服务器上面做RIAD!
这样不是很省成本!
RAID系统可以使用两组硬盘同步完成镜像存储
第一张硬盘挂了,可以用第二张来用!
主板坏了?电源坏了? 主板坏了 RIAD得在重做 电源坏了 就没什么影响!
天互数据 为您解答,希望能帮到你


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13105490.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-30
下一篇 2023-05-30

发表评论

登录后才能评论

评论列表(0条)

保存