菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
5
0

sqlserver 2000数据库同步 同步两个SQLServer数据库的内容

原创
05/13 14:22
阅读数 6915

























































数据库





































































































































iazzqpmQbZ













































脚本网站





编程客栈


复制代码 代码如下:

select * from sysobjects where replinfo >0
sp_configure allow updates, 1
go
reconfigure with override
go
begin transaction
update sysobjects set replinfo = 0 where replinfo >0
commit transaction
go
rollback transaction
go
sp_configure allow updates, 0
go
reconfigure with override
go



















复制代码 代码如下:

说明:
下面的代码演示了如何利用日志还原功能,将主数据库中的数据变化及时反馈到备用数据库中
备用数据库的数据可以随时用于查询,但不能被更新(备用数据库只读)。

首先,创建一个演示用的数据库(主数据库)
CREATE DATABASE Db_test
ON
( NAME = Db_test_DATA,
FILENAME = c:\Db_test.mdf )
LOG ON
( NAME = Db_test_LOG,
FILENAME = c:\Db_test.ldf)
GO

对数据库进行备份
BACKUP DATABASE Db_test TO DISK=c:\test_data.bak WITH FORMAT
GO

把数据库还原成备用数据库(演示主数据库与这个备用数据库之间的同步)
RESTORE DATABASE Db_test_bak FROM DISK=c:\test_data.bak
WITH REPLACE,STANDBY=c:\db_test_bak.ldf
,MOVE Db_test_DATA TO c:\Db_test_data.mdf
,MOVE Db_test_LOG TO c:\Db_test_log.ldf
GO

启动 SQL Agent 服务
EXEC master..xp_cmdshell net start sqlserveragent,no_output
GO

创建主服务器数据训与备用服务器数据库之间同步的作业
DECLARE @jogid uniqueidentifier
EXEC msdb..sp_add_job
@job_id = @jogid OUTPUT,
@job_name = N数据同步处理

创建同步处理步骤
EXEC msdb..sp_add_jobstep
@job_id = @jogid,
@step_name = N数据同步,
@subsystem = TSQL,
@command = N
主数据库中进行日志备份
BACKUP LOG Db_test TO DISK=c:\test_log.bak WITH FORMAT

备用数据库中还原主数据库的日志备份(应用主数据库中的最新变化
实际应该时主数据库备份与备用数据库的还原作业iazzqpmQbZ应该分别在主服务器和备用服务器上建立,并且备份文件应该放在主服务器和备用都能访问的共享目录中
RESTORE LOG Db_test_bak FROM DISK=c:\test_log.bak WITH STANDBY=c:\test_log.ldf,
@retry_attempts = 5,
@retry_interval = 5

创建调度(每分钟执行一次)
EXEC msdb..sp_addwww.cppcns.com_jobschedule
@job_id = @jogid,
@name = N时间安排,
@freq_type=4,
@freq_interval=1,
@freq_subday_type=0x4,
@freq_subday_interval=1,
@freq_recurrence_factor=1

添加目标服务器
EXEC msdb.dbo.sp_add_jobserver
@job_id = @jogid,
@server_name = N(local)
GO

通过上述处理,主数据库与备用数据库之间的同步关系已经设置完成
下面开始测试是否能实现同步

在主数据库中创建一个测试用的表
CREATE TABLE Db_test.dbo.TB_test(ID int)
GO

等待1分钟30秒(由于同步的时间间隔设置为1分钟,所以要延时才能看到效果)
WAITFOR DELAY 00:01:30
GO

查询一下备用数据库,看看同步是否成功
SELECT * FROM Db_test_bak.dbo.TB_test

结果:
ID
-

(所影响的行数为 0 行)


测试成功
GO

最后删除所有的测试
DROP DATABASE Db_test,Db_test_bak
EXEC msdb..sp_delete_job @job_name=N数据同步处理
GO


===========================================================

服务器档机处理说明
使用这种方式建立的数据库同步,当主数据库不可用时(例如,主数据库损坏或者停机检修)
可以使用以下两种方法使备用数据库可用。

























































http://www.cppcns.com
本文标题: sqlserver 2000数据库同步 同步两个SQLServer数据库的内容
本文地址: http://www.cppcns.com/shujuku/mssql/57472.html

发表评论

0/200
5 点赞
0 评论
收藏
为你推荐 换一批