读书人

请问一下怎么同步异地两台服务器的数据

发布时间: 2012-05-22 18:18:54 作者: rapoo

请教一下如何同步异地两台服务器的数据呢?
如题,谢谢。

[解决办法]
只要网络畅通,和本地一样.
[解决办法]
不想帖了
[解决办法]

SQL code
SQLServer2000同步复制技术实现步骤作者:gaojier 日期:2007-06-25字体大小: 小 中 大 一、 预备工作1.发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户--管理工具--计算机管理--用户和组--右键用户--新建用户--建立一个隶属于administrator组的登陆windows的用户(SynUser)2.在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录,操作:我的电脑--D:\ 新建一个目录,名为: PUB--右键这个新建的目录--属性--共享--选择"共享该文件夹"--通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户(SynUser) 具有对该文件夹的所有权限--确定3.设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)开始--程序--管理工具--服务--右键SQLSERVERAGENT--属性--登陆--选择"此账户"--输入或者选择第一步中创建的windows登录用户名(SynUser)--"密码"中输入该用户的密码4.设置SQL Server身份验证模式,解决连接时的权限问题(发布/订阅服务器均做此设置)企业管理器--右键SQL实例--属性--安全性--身份验证--选择"SQL Server 和 Windows"--确定5.在发布服务器和订阅服务器上互相注册企业管理器--右键SQL Server组--新建SQL Server注册...--下一步--可用的服务器中,输入你要注册的远程服务器名 --添加--下一步--连接使用,选择第二个"SQL Server身份验证"--下一步--输入用户名和密码(SynUser)--下一步--选择SQL Server组,也可以创建一个新组--下一步--完成6.对于只能用IP,不能用计算机名的,为其注册服务器别名(此步在实施中没用到) (在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的IP)开始--程序--Microsoft SQL Server--客户端网络实用工具--别名--添加--网络库选择"tcp/ip"--服务器别名输入SQL服务器名--连接参数--服务器名称中输入SQL服务器ip地址--如果你修改了SQL的端口,取消选择"动态决定端口",并输入对应的端口号二、 正式配置1、配置发布服务器打开企业管理器,在发布服务器(B、C、D)上执行以下步骤:(1) 从[工具]下拉菜单的[复制]子菜单中选择[配置发布、订阅服务器和分发]出现配置发布和分发向导 (2) [下一步] 选择分发服务器 可以选择把发布服务器自己作为分发服务器或者其他sql的服务器(选择自己)(3) [下一步] 设置快照文件夹 采用默认\\servername\Pub(4) [下一步] 自定义配置 可以选择:是,让我设置分发数据库属性启用发布服务器或设置发布设置否,使用下列默认设置(推荐)(5) [下一步] 设置分发数据库名称和位置 采用默认值(6) [下一步] 启用发布服务器 选择作为发布的服务器(7) [下一步] 选择需要发布的数据库和发布类型(8) [下一步] 选择注册订阅服务器(9) [下一步] 完成配置2、创建出版物发布服务器B、C、D上(1)从[工具]菜单的[复制]子菜单中选择[创建和管理发布]命令(2)选择要创建出版物的数据库,然后单击[创建发布](3)在[创建发布向导]的提示对话框中单击[下一步]系统就会弹出一个对话框。对话框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助)(4)单击[下一步]系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在不同的数据库如 orACLE或ACCESS之间进行数据复制。但是在这里我们选择运行"SQL SERVER 2000"的数据库服务器(5)单击[下一步]系统就弹出一个定义文章的对话框也就是选择要出版的表注意: 如果前面选择了事务发布 则再这一步中只能选择带有主键的表(6)选择发布名称和描述(7)自定义发布属性 向导提供的选择:是 我将自定义数据筛选,启用匿名订阅和或其他自定义属性否 根据指定方式创建发布 (建议采用自定义的方式)(8)[下一步] 选择筛选发布的方式 (9)[下一步] 可以选择是否允许匿名订阅1)如果选择署名订阅,则需要在发布服务器上添加订阅服务器方法: [工具]->[复制]->[配置发布、订阅服务器和分发的属性]->[订阅服务器] 中添加否则在订阅服务器上请求订阅时会出现的提示:改发布不允许匿名订阅如果仍然需要匿名订阅则用以下解决办法 [企业管理器]->[复制]->[发布内容]->[属性]->[订阅选项] 选择允许匿名请求订阅2)如果选择匿名订阅,则配置订阅服务器时不会出现以上提示(10)[下一步] 设置快照 代理程序调度(11)[下一步] 完成配置当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。
[解决办法]
http://topic.csdn.net/u/20090330/14/1a2d48a1-e793-4dae-8233-ea22672feda3.html
[解决办法]
http://hi.csdn.net/link.php?url=http://blog.csdn.net%2Fhtl258

参考一下,
[解决办法]
SQL code
>>>>>>soft_wsx>>>>>> 
--数据备份与还原>>同步备用服务器
--1、完全备份主数据库
--2、使用带SANDBY子句的RESTORE DATABASE语句从主数据库的完全备份中还原生成备用数据库
--3、创建作业,使用BACKUP LOG定时对主数据库时行日志备份
--4、创建作业,使用带STANDBY子句的RESTORE LOG语句定时从主数据库的日志备份中恢复数据到备用数据库
--5、主数据库不可用时,使用带RECOVERY子句的RESTORE LOG语句使备用数据库升级为主数据库
----具体代码及说明如下
---->>首先、创建一个淙用的数据库(主数据库)
create database db_test_primary
on
(
name=db_test_primary_data,
filename='d:\db_test_primary_data.mdf')
log on
(
name='db_test_primary_log',
filename='d:\db_test_primary_log.ldf'
)
go

--在主数据库上创建表
create TABLE db_test_primary.dbo.db_test_primary1(id int)
insert db_test_primary.dbo.db_test_primary1 select top 1000 ID from dbo.sysobjects
go
--对主数据库进行备份


backup database db_test_primary
to disk='d:\db_test_primary_data.bak'
with format
go

--通过主数据库备份文件创建备用数据库(演示主数据库与这个备用数据库之间的同步)
restore database db_test_second
from disk='d:\db_test_primary_data.bak'
with replace,
standby='d:\db_test_primary_bak.ldf',
move 'db_test_primary_data' to 'd:\db_test_second_data.mdf',
move 'db_test_primary_log' to 'd:\db_test_second_log.ldf'

--启动SQL AGENT服务(需要通过作业定时将主数据库同步到备用数据库)
exec master.dbo.xp_cmdshell 'net start sqlserveragent',no_output
go

--创建主服务数据库与备用服务器数据库之间同步的作业
declare @jobid uniqueidentifier
exec msdb.dbo.sp_add_job
@job_id=@jobid output,
@job_name=N'数据同步'

--创建同步处理步骤
exec msdb.dbo.sp_add_jobstep
@job_id=@jobid,
@step_name=N'数据同步',
@subsystem='TSQL',
@command=N'
--主数据库中进行日志备份
backup log db_test_primary
to disk=''d:\test_log_primary.bak''
with format

--备用数据中还原主数据库的日志备份(应用主数据库中的最新变化)
--注:实际应该对主数据库备份与备用数据库的还原作业应该分别在主服务器和备用服务器上建立,
--并且备份文件应该放在主服务器和备用服务器都能访问的共享目录中
restore log db_test_second
from disk=''d:\test_log_primary.bak''
with standby=''d:\test_log.ldf''',
@retry_attempts=5,
@retry_interval=5
--创建调度
exec msdb.dbo.sp_add_jobschedule
@job_id=@jobid,
@name='时间安排',
@freq_TYPE=4,
@freq_interval=1,
@freq_subday_type=0x4,
@freq_subday_interval=1

--添加目录服务器
exec msdb.dbo.sp_add_jobserver
@job_ID=@jobid,
@server_name=N'(local)'
go
--通过上述处理,主数据库与备用数据库之间的同步关系已经设置完成
--下面开始测试是否能实现同步
create table db_test_primary.dbo.db_test_primary3(id int)
go
insert db_test_primary.dbo.db_test_primary3 select top 5000 id from dbo.sysobjects
waitfor delay '00:01:30'
go

--查询一下备用数据库,看看同步是否成功

select * from db_test_second.dbo.db_test_primary3


drop table db_test_primary.dbo.db_test_primary3


--最后删除测试环境
drop database msdb.dbo.sp_delete_job
@job_name=N'数据同步'


[解决办法]
双机热备或复制都行吧~~~
[解决办法]
同步?
是一边数据库有变化,就立马更新到另一台服务器吗?

那样的话,我也想学学。目前公司里面的数据都是进过定时的DTS来同步的。
[解决办法]
4楼用的是 事务复制。
注意,sql server 2000个人版不支持 事务复制。
如果你 服务器(发布服务器) 和同步的服务器(订阅服务器) 在同一个域里,并且两者可以共享文件夹。
你可以在订阅服务器端配置 拉式订阅(请求订阅),并且可以提高性能。不然只能用在 发布服务器上做 推式订阅。
如果你用的 是sql server 2000企业版可以考虑用 日志传送。

DTS也可以做同步,但是DTS是要全部的数据做同步,不管有些表有没有更新,占用资源大。只能在空闲时间做同步。无法时时同步。
事务复制,第一次是快照复制,之后只要复制新事务日志就可以了。占用资源很小。

[解决办法]
..
[解决办法]
关注!

读书人网 >SQL Server

热点推荐