正在登陆游戏服务器器为什么要做镜像呢?

酷勤网 C 程序员的那点事!
浏览次数:次
作者:孤狼彦
为了要保证网站的正常访问,在电信放一台服务器,在铁通放一台服务器,让这两台服务器之间做成镜象,内容实施同步,如果电信的服务器或线路出现问题,用户访问的时候能自动转到铁通的服务器上来,等电信的服务器恢复正常后在跳转到电信的服务器,再使铁通服务器上更改的内容与电信的服务器上的内容再同步。&需要用哪些技术来实现,哪位兄弟做过,或有这方面的实现方案&,望能赐教。
&temporary 回复于: 17:40:18
似乎在DNS做文章是最便宜的方案
&hcchenhao 回复于: 17:44:39
想来也是。问题还有一个就是远程数据镜像的问题。
&lhw0895 回复于: 17:46:19
你可以在公司里做一台服务器,利用软件把网站的内容同时上传到电信的和铁通的服务器上,这样也可以保证两者内容一致。
&不能成水的杯子 回复于: 18:35:44
用个双机软件就可以了吧
&孤狼彦 回复于: 14:36:40
问题是里面有许多内容是实施变动的,如用户注册的信息等,需要保持两台服务器内容的同步&用&DNS做不能保证一台服务器出问题就不去访问他&,会存在访问错误的问题
&yddll 回复于: 19:56:19
用复制软件加上dns配合
&音速刺猬 回复于: 20:35:06
用ROSE行吗?不一定机器要离的远啊,主要是线可以都拉到一个地方的啊
&AGG 回复于: 01:00:07
EMC(Legato&Costandby&Server)
&孤狼彦 回复于: 08:52:25
要实现这个确实需要两种方案结合在一起使用,但是具体用什么样的技术能使两个有机的结合在一起,能够实现上述提供的需求,才是最主要的
&seagles 回复于: 16:18:33
可能用原来Legato的软件,costandby可以实现
&老邱 回复于: 15:13:15
引用:原帖由&"yddll"&发表:用复制软件加上dns配合同意。看是什么OS。windows的复制软件很多,unix少一些。
&tompuer 回复于: 10:02:34
引用:原帖由&"孤狼彦"]为了要保证网站的正常访问,在电信放一台服务器,在铁通放一台服务器,让这两台服务器之间做成镜象,内容实施同步,如果电信的服务器或线路出现问题,用户访问的时候能自动转到铁通的服务器上来,等电信的服务器恢复?.........&发表:远程的双机应该可以实现你的要求,只是会占用一定的网络资源!
&xulee 回复于: 11:26:26
让两台机器的数据存储在一个盘阵上
&斜晖 回复于: 11:31:28
距离远的话用Replistor不远用costandby
&寂寞走荒野 回复于: 14:26:23
不知道你是拿电信和铁通打比方,还是真要给他们做。按你的要求,我认为不应该从存储方面进行解决,不管多快的网络在数据同步上肯定会产生延迟,有延迟就会有数据差异。如果两个服务器所提供的服务对实时性要求特别高的话,这种数据差异是不能忽略不计的。&对于你的要求,中心内容有两点,一是数据同步,二是容灾。&针对数据同步可以这样做:在电信或铁通建立后台主服务器,在电信和铁通两处分别建立前置机。两台前置机响应用户请求,将信息反馈给主服务器进行读写操作。&针对容灾可以这样做:通过DNS或编辑本地的LMHOST文件。
&onceway 回复于: 11:23:02
如果是在微软平台,又是不同的isp,你还是用legato的replistor吧,它可以通过公网异步复制,配置信息一并复制过去了
&skylove 回复于: 14:12:14
&mmhh516 回复于: 16:18:47
我也遇到拉,这个问题,请各位能不能说的明白一点啊!我的两台服务器是放在一起的,跑不同的web站,如果一台机器出问题,另一台抛全部的站点,怎么样才能实现如果一台机器坏啦,另一台自动的替代原来的web站点服务阿!想马儿快点跑,不想马儿多吃草,公司不同意买设备啊!
&NTO 回复于: 09:58:13
veritas的vvr可以实现这个功能,就是比较贵
&squall_wb 回复于: 10:23:52
survive&it2000应该可以满足你的要求。
&yidou 回复于: 14:03:31
存在一个盘阵上不妥,实际还是只有一个物理实体,没有冗错功能,发生问题数据不可挽回
&斜晖 回复于: 15:51:15
引用:原帖由&"mmhh516"&发表:我也遇到拉,这个问题,请各位能不能说的明白一点啊!我的两台服务器是放在一起的,跑不同的web站,如果一台机器出问题,另一台抛全部的站点,怎么样才能实现如果一台机器坏啦,另一台自动的替代原来的web站点服务..........Legato&Co-Standby5.0
&cofly 回复于: 16:15:34
可以使用Steeleye公司的SDRS系统做成本地双机+远程灾难恢复的形式,可靠性更高。
&cofly 回复于: 17:22:46
可以使用Steeleye公司的SDRS系统做成本地双机+远程灾难恢复的形式,可靠性更高。
&lvd123456 回复于: 13:01:09
OCTOPUS,REPLISTOR,COSTANDBY应该都可以的,
&AnEagle 回复于: 14:39:36
Cofly&said"可以使用Steeleye公司的SDRS系统做成本地双机+远程灾难恢复的形式,可靠性更高。"什么是SDRS?讲一讲
&redinfosec 回复于: 17:53:02
首先,你需要判别你要解决的是网络冗余问题还是主机冗余问题还是存储冗余问题,网络冗余用cisco或netscreen来解决,主机冗余很简单用advance&windows&2000&就可以了,存储冗余只需要在主机冗余的情况下不使用同一个存储介质就可以了&:mrgreen:
&Nicole Chan 回复于: 00:12:57
但楼主也要考虑到是不是应该也做个备份。毕竟这行业,他们的数据都比较重要,用双机的话,会有误删除的问题。
&冰凌晓雨 回复于: 18:58:19
首先要保证所有的更改都在其中的一台服务器上做,然后购买一个suresync的软件,象你这种情况需要买一个服务器版和一个agent版。
&ffunix 回复于: 19:51:51
&mrcenter 回复于: 22:02:54
这个可以这样来做的,两端选择ibm存储,emc存储或者hp,hds的存储都可以做容灾,同步模式的。对于应用可以选择我们公司带来的f5产品。谢谢mrcenter
&ask2you 回复于: 11:24:56
看是什么具体情况,对于容灾,采用快照+远程复制的方式最好,NAS是最好的解决方式,如果价格的问题,在windows下,Octopus和replistor是个好选择,在UNIX下,VCS和LAAM不错
& 相关主题:DELL服务器增加硬盘如何做镜像_百度知道
DELL服务器增加硬盘如何做镜像
我有一台DELL 2900的老服务器,是双硬盘硬阵列,是镜像盘,可是现在镜像盘挂了,只好重购一个,以前镜像盘是在系统中看不到的,可是新买的硬盘插进去后可看到未分区的磁盘,现在面临的问题就是,在现有的windows2003做镜像盘,而且还要不影响现在的系统,谢谢
我已经找到答案了,谢谢
我有更好的答案
按默认排序
数据拷出来
然后新硬盘挂上做RAID 重新做系统
数据再拷进去。
raid5 可以直接挂上不用管
其他类似问题
dell服务器的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁数据库_【SQL Server高可用性】数据库镜像:同一台机器的两个不同实例上配置数据库镜像 + 另一台见证服务器_软件世界网
【SQL Server高可用性】数据库镜像:同一台机器的两个不同实例上配置数据库镜像 + 另一台见证服务器
在上一篇文章中:
【SQL Server高可用性】数据库镜像:在SQL Server 2008R2上的配置数据库镜像&
讲到了用3台笔记本电脑来配置数据库镜像,这个主要是用来模拟生产环境中,在多台服务器上的配置情况。
这次主要考虑到大家都没那么多的笔记本电脑,所以下面要讲的方法,只需要2台笔记本就可以了
1、基本的信息
本文主要是在2台笔记本上配置数据库镜像,通过证书来实现验证,而不是用域账户来实现。另外,本文配置的是高安全性的数据库镜像,能实现自动秒级切换,需要2台机器。
注意:主体、镜像实在同一台服务器上的两个实例上的。
主体服务器ip:192.168.1.101 实例:MSSQLSERVER & 文件目录:c:\share
镜像服务器ip:192.168.1.101
实例:SQL2008R2 & & & & &文件目录:e:\share
见证服务器ip:192.168.1.102 & & & & & & & & & & & & & & & & & & & & &文件目录:c:\
注意:下面所有的代码,都需要按照(编号)的顺序,在相应的服务器上执行。
比如:(1)是在主体服务器上执行的,(2)是在镜像服务器上执行的,(3)又是在主体服务器执行的,所有的操作必须要按照(编号)中的编号的顺序来执行。
2、主体服务器的配置
需要把数据库备份文件c:\share\DB_Mirror.bak&复制到到e:\share\DB_Mirror.bak:
-- ===========================================
-- 无论是主体服务器、镜像服务器, 还是见证服务器
-- 除特别说明外,均需要保证下面的操作在master库中执行
USE master
-- ===========================================
建立镜像主体数据库
-- 此操作主体服务器上执行
-- a. 建立测试数据库
CREATE DATABASE DB_Mirror
NAME = DB_Mirror_DATA,
FILENAME = N'c:\share\DB_Mirror.mdf'
NAME = DB_Mirror_LOG,
FILENAME = N'c:\share\DB_Mirror.ldf'
--设置数据库的恢复模式是完全模式
ALTER DATABASE DB_Mirror SET
RECOVERY FULL
-- b. 完全备份,需要把这个完全备份文件,传输到镜像服务器上
BACKUP DATABASE DB_Mirror
TO DISK = N'c:\share\DB_Mirror.bak'
WITH FORMAT
执行代码后,需要把c:\share\CT_Mirror_SrvA.cer证书文件,复制到e:\share\CT_Mirror_SrvA.cer:
-- ===========================================
主体服务器上的数据库镜像端点及身份验证用的证书
-- 此操作主体服务器上执行
-- a. 用于数据库镜像端点身份验证的证书
IF NOT EXISTS(
-- 使用数据库主密钥加密证书
SELECT * FROM sys.symmetric_keys
WHERE name = N'##MS_DatabaseMasterKey##')
CREATE MASTER KEY
ENCRYPTION BY PASSWORD = N'wcis123'
--drop certificate ct_mirror_srva
CREATE CERTIFICATE CT_Mirror_SrvA
SUBJECT = N'certificate for database mirror',
START_DATE = '',
EXPIRY_DATE = ''
-- b. 备份证书, 以便在与此端点通信的另一端建立此证书
BACKUP CERTIFICATE CT_Mirror_SrvA
TO FILE = 'c:\share\CT_Mirror_SrvA.cer'
--drop endpoint edp_mirror
-- c. 数据库镜像端点
CREATE ENDPOINT EDP_Mirror
STATE = STARTED
LISTENER_PORT = 5022,
-- 镜像端点使用的通信端口
LISTENER_IP = ALL)
-- 侦听的IP地址
FOR DATABASE_MIRRORING(
AUTHENTICATION = CERTIFICATE CT_Mirror_SrvA, -- 证书身份验证
ENCRYPTION = DISABLED,
-- 不对传输的数据加密,如果需要加密,可以配置为 SUPPORTED 或 REQUIRED, 并可选择加密算法
ROLE = ALL)
-- 端点支持所有的数据库镜像角色, 也可以设置为 WITNESS(仅见证服务器),或 PARTNER(仅镜像伙伴)
把镜像创建的证书文件e:\share\CT_Mirror_SrvB.cer复制到到c:\share\CT_Mirror_SrvB.cer后,运行如下代码:
-- ===========================================
在主体服务器上完成镜像服务器数据库镜像端点的传输安全模式配置
-- 此操作主体服务器上执行
-- a. 建立主体服务器上的证书(假设镜像服务器上备份的证书已经复制到 c:\share\CT_Mirror_SrvB.cer)
CREATE CERTIFICATE CT_Mirror_SrvB
FROM FILE = 'c:\share\CT_Mirror_SrvB.cer'
-- b. 建立登录,用这个login来登录到镜像服务器上
CREATE LOGIN LOGIN_Mirror_SrvB
FROM CERTIFICATE CT_Mirror_SrvB
-- c. 授予对数据库镜像端点的 connect 权限
GRANT CONNECT ON ENDPOINT::EDP_Mirror
TO LOGIN_Mirror_SrvB
注意,主体和镜像是在同一台服务器上的,我就把连接字符串写成了这样:'TCP://192.168.1.101,'
这里的14335是SQL2008R2这个实例的端口,但是这么写提示找不到镜像服务器。
我在网上搜索了一下,没找到什么有用的资料,于是我想通过图形化界面来设置,当设置到镜像服务器时,提示:如果主体、镜像或者见证,在同一个机器上时,那么必须使用不同的数据库镜像连接端口,也就是比如:
主体的监听端口是:5022
镜像的监听端口是:5023
见证的监听端口是:5022
所以,需要通过如下的连接字符串来设置数据库镜像,意思就是连接到5023端口,因为数据库镜像在这个端口进行监听:
-- ===========================================
--(8) &在主体服务器上启用数据库镜像(默认为高安全性模式,所以不用进行模式设置)
-- 此操作主体服务器上执行
ALTER DATABASE DB_Mirror SET
PARTNER = 'TCP://192.168.1.101:5023'
把在见证服务器上创建的证书,复制到主体服务器上的c:\share\CT_Mirror_SrvWitness.cer,然后执行如下代码:
-- ===========================================
在主体服务器上完成见证服务器数据库镜像端点的传输安全模式配置
-- 此操作主体服务器上执行
-- a. 建立见证服务器上的证书(假设见证服务器上备份的证书已经复制到 c:\share\CT_Mirror_SrvWitness.cer)
CREATE CERTIFICATE CT_Mirror_SrvWitness
FROM FILE = 'c:\share\CT_Mirror_SrvWitness.cer'
-- b. 建立登录
CREATE LOGIN LOGIN_Mirror_SrvWitness
FROM CERTIFICATE CT_Mirror_SrvWitness
-- c. 授予对数据库镜像端点的 connect 权限
GRANT CONNECT ON ENDPOINT::EDP_Mirror
TO LOGIN_Mirror_SrvWitness
-- ===========================================
在主体服务器上为数据库镜像启用见证服务器
-- 此操作主体服务器上执行
ALTER DATABASE DB_Mirror SET
WITNESS = 'TCP://192.168.1.102:5022'
3、镜像服务器的配置
把数据库备份文件c:\share\DB_Mirror.bak&复制到到e:\share\DB_Mirror.bak后,再执行下面的代码:
-- ===========================================
-- 无论是主体服务器、镜像服务器, 还是见证服务器
-- 除特别说明外,均需要保证下面的操作在master库中执行
USE master
-- ===========================================
初始化镜像主体数据库
-- 此操作镜像服务器上执行
-- 假设主体数据库的完全备份已经复制到 e:\share\DB_Mirror.bak
-- SQL Server必须使用相同的账户名来启动
RESTORE DATABASE DB_Mirror
FROM DISK = 'e:\share\DB_Mirror.bak'
WITH REPLACE
, NORECOVERY
-- 如果镜像数据库文件要放在指定位置, 则启用下面的 Move 选项
, MOVE 'DB_Mirror_DATA' TO N'e:\DB_Mirror.mdf'
, MOVE 'DB_Mirror_LOG' TO N'e:\DB_Mirror.ldf'
-- ===========================================
镜像服务器上的数据库镜像端点及身份验证用的证书
-- 此操作镜像服务器上执行
-- a. 用于数据库镜像端点身份验证的证书
IF NOT EXISTS(
-- 使用数据库主密钥加密证书
SELECT * FROM sys.symmetric_keys
WHERE name = N'##MS_DatabaseMasterKey##')
CREATE MASTER KEY
ENCRYPTION BY PASSWORD = N'wwwwc123'
CREATE CERTIFICATE CT_Mirror_SrvB
SUBJECT = N'certificate for database mirror',
START_DATE = '',
EXPIRY_DATE = ''
-- b. 备份证书, 以便在与此端点通信的另一端建立此证书
BACKUP CERTIFICATE CT_Mirror_SrvB
TO FILE = 'e:\share\CT_Mirror_SrvB.cer'
注意,数据库镜像端点的监听端口是 5023
-- c. 数据库镜像端点
CREATE ENDPOINT EDP_Mirror
STATE = STARTED
LISTENER_PORT = 5023,
-- 镜像端点使用的通信端口
LISTENER_IP = ALL)
-- 侦听的IP地址
FOR DATABASE_MIRRORING(
AUTHENTICATION = CERTIFICATE CT_Mirror_SrvB, -- 证书身份验证
ENCRYPTION = DISABLED,
-- 不对传输的数据加密,如果需要加密,可以配置为 SUPPORTED 或 REQUIRED, 并可选择加密算法
ROLE = ALL)
-- 端点支持所有的数据库镜像角色, 也可以设置为 WITNESS(仅见证服务器),或 PARTNER(仅镜像伙伴)
把镜像创建的证书e:\share\CT_Mirror_SrvB.cer复制到c:\share\CT_Mirror_SrvB.cer后,再执行下面的代码:
-- ===========================================
在镜像服务器上完成主体服务器数据库镜像端点的传输安全模式配置
-- 此操作镜像服务器上执行
-- a. 建立主体服务器上的证书(假设主体服务器上备份的证书已经复制到 C:\CT_Mirror_SrvA.cer)
CREATE CERTIFICATE CT_Mirror_SrvA
FROM FILE = 'e:\share\CT_Mirror_SrvA.cer'
-- b. 建立登录
CREATE LOGIN LOGIN_Mirror_SrvA
FROM CERTIFICATE CT_Mirror_SrvA
-- c. 授予对数据库镜像端点的 connect 权限
GRANT CONNECT ON ENDPOINT::EDP_Mirror
TO LOGIN_Mirror_SrvA
-- ===========================================
在镜像服务器上启用数据库镜像
-- 此操作镜像服务器上执行
ALTER DATABASE DB_Mirror SET
PARTNER = 'TCP://192.168.1.101:5022'
把见证服务器上的证书,拷贝到镜像服务器上后,再执行下面的代码:
-- ===========================================
在镜像服务器上完成见证服务器数据库镜像端点的传输安全模式配置
-- 此操作镜像服务器上执行
-- a. 建立见证服务器上的证书(假设见证服务器上备份的证书已经复制到 c:\CT_Mirror_SrvWitness.cer)
CREATE CERTIFICATE CT_Mirror_SrvWitness
FROM FILE = 'e:\share\CT_Mirror_SrvWitness.cer'
-- b. 建立登录
CREATE LOGIN LOGIN_Mirror_SrvWitness
FROM CERTIFICATE CT_Mirror_SrvWitness
-- c. 授予对数据库镜像端点的 connect 权限
GRANT CONNECT ON ENDPOINT::EDP_Mirror
TO LOGIN_Mirror_SrvWitness
4、见证服务器的配置
把主体服务器和镜像服务器上的证书,拷贝到见证服务器上后,再执行下面的代码:
-- ===========================================
-- 无论是主体服务器、镜像服务器, 还是见证服务器
-- 除特别说明外,均需要保证下面的操作在master库中执行
USE master
-- ===========================================
配置见证服务器
-- 此操作在见证服务器上执行
-- a. 完成见证服务器上数据库镜像端点的传输安全模式配置
-- (a). 用于数据库镜像端点身份验证的证书
IF NOT EXISTS(
-- 使用数据库主密钥加密证书
SELECT * FROM sys.symmetric_keys
WHERE name = N'##MS_DatabaseMasterKey##')
CREATE MASTER KEY
ENCRYPTION BY PASSWORD = N'abc.123'
CREATE CERTIFICATE CT_Mirror_SrvWitness
SUBJECT = N'certificate for database mirror',
START_DATE = '',
EXPIRY_DATE = ''
-- (b). 备份证书, 以便在与此端点通信的另一端建立此证书
BACKUP CERTIFICATE CT_Mirror_SrvWitness
TO FILE = 'c:\CT_Mirror_SrvWitness.cer'
-- (c). 数据库镜像端点
CREATE ENDPOINT EDP_Mirror
STATE = STARTED
LISTENER_PORT = 5022,
-- 镜像端点使用的通信端口
LISTENER_IP = ALL)
-- 侦听的IP地址
FOR DATABASE_MIRRORING(
AUTHENTICATION = CERTIFICATE CT_Mirror_SrvWitness, -- 证书身份验证
ENCRYPTION = DISABLED,
-- 不对传输的数据加密,如果需要加密,可以配置为 SUPPORTED 或 REQUIRED, 并可选择加密算法
ROLE = ALL)
-- 端点支持所有的数据库镜像角色, 也可以设置为 WITNESS(仅见证服务器),或 PARTNER(仅镜像伙伴)
-- b. 完成主体服务器上数据库镜像端点的传输安全模式配置
-- (a). 建立主体服务器上的证书(假设主体服务器上备份的证书已经复制到 C:\CT_Mirror_SrvA.cer)
CREATE CERTIFICATE CT_Mirror_SrvA
FROM FILE = 'C:\CT_Mirror_SrvA.cer'
-- (b). 建立登录
CREATE LOGIN LOGIN_Mirror_SrvA
FROM CERTIFICATE CT_Mirror_SrvA
-- (c). 授予对数据库镜像端点的 connect 权限
GRANT CONNECT ON ENDPOINT::EDP_Mirror
TO LOGIN_Mirror_SrvA
-- c. 完成镜像服务器上数据库镜像端点的传输安全模式配置
-- (a). 建立镜像服务器上的证书(假设镜像服务器上备份的证书已经复制到 C:\CT_Mirror_SrvB.cer)
CREATE CERTIFICATE CT_Mirror_SrvB
FROM FILE = 'C:\CT_Mirror_SrvB.cer'
-- (b). 建立登录
CREATE LOGIN LOGIN_Mirror_SrvB
FROM CERTIFICATE CT_Mirror_SrvB
-- (c). 授予对数据库镜像端点的 connect 权限
GRANT CONNECT ON ENDPOINT::EDP_Mirror
TO LOGIN_Mirror_SrvB
5、配置完成后的图
如果这个时候,主体服务器挂了会怎么样呢?
这里,通过关闭服务来模拟主体服务器故障的情况:
我们会发现,镜像自动变为主体:
再次启动MSSQLSERVER实例的服务器,也就是启动原主体,我们发现原来的主体,自动变为镜像:
当然,这里也可以进行手工故障转移,在SQL2008R2实例的主体上执行如下的代码,可以实现手工故障转移到镜像服务器,也就是当主体挂掉后,自动把镜像转为主体,继续提供数据库服务:
alter database db_mirror
set partner failover
MSSQLSERVER 从镜像变为主体:
SQL2008R2 从主体变为镜像
之所以能自动切换的原因是,本文配置的是高安全模式 ,再加上见证服务器,就可以实现秒级的自动故障转移,这个可以设置为高安全模式:
alter database db_mirror
set safety full
如果配置的是高可用性模式,可以使用强制故障转移:
--设置为高可用性模式
alter database db_mirror
set safety off
--当主体数据库未出现故障时,不能故障转移到镜像数据库
--当主体数据库出现故障时,在镜像数据库中可以强制故障转移到镜像服务器
alter database db_mirror
set partner force_service_allow_data_loss
--当原来的主体数据库重新进入服务状态,并且能和新的主体服务器连接时
--可以恢复数据库镜像,但是会导致所有未发送的日志记录、对应的更新丢失
alter database db_mirror
set partner resume
&此文从网络中自动搜索生成,不代表本网站赞成被搜索网站的内容或立场
软件世界网- &2014 蜀ICP备号 三峰网旗下网站

我要回帖

更多关于 正在登陆游戏服务器 的文章

 

随机推荐