通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>数 据 库>>MySQL>>正文 新版上线![旧版]
注:打开慢时请稍等

同步两个SQLServer数据库

http://www.iyit.net  日期:2006-6-6 9:16:46  来源:  点击:
参加讨论
            (我们实验环境的机器并没有进行快照初试化,复制仍然是成功运行的)
   
    四、删除已经建好的发布和定阅可以直接用delete删除按钮
   
    我们最好总是按先删定阅,再删发布,最后禁用发布的顺序来操作。
   
    如果要彻底删去SQL Server上面的复制设置, 可以这样操作:

    [复制] -> 右键选择 [禁用发布] -> [欢迎使用禁用发布和分发向导]
 
     -> [下一步] -> [禁用发布] -> [要在"@servername"上禁用发布]
           
     -> [下一步] -> [完成禁用发布和分发向导] -> [完成]
    
   我们也可以用T-SQL命令来完成复制中发布及订阅的创建和删除, 选中已经设好的发布和订阅, 按属标右键
   可以[生成SQL脚本]。(这里就不详细讲了, 后面推荐的网站内有比较详细的内容)
  
   当你试图删除或者变更一个table时,出现以下错误
   Server: Msg 3724, Level 16, State 2, Line 1
   Cannot drop the table 'object_name' because it is being used for replication.

   比较典型的情况是该table曾经用于复制,但是后来又删除了复制

   处理办法:
   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


   疑问:
    在合并复制配置完全后,如果同步代理停止了。我要在程序中去重新启动合并复制的同步代理。请问使用什么命令或存储过程呢?
    解决办法:
sp_start_job
指示 SQL Server 代理程序立即执行作业。

示例
下例启动名为 Nightly Backup 的作业。

USE msdb
EXEC sp_start_job @job_name = 'Nightly Backup'


2、日志还原功能、、、

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

--首先,创建一个演示用的数据库(主数据库)
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

--备用数据库中还原主数据库的日志备份(应用主数据库中的最新变化
--实际应该时主数据库备份与备用数据库的还原作业应该分别在主服务器和备用服务器上建立,并且备份文件应该放在主服务器和备用都能访问的共享目录中
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_add_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


/*===========================================================*/

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


--1. 如果主数据库损坏,无法备份出最新的日志,可以直接使用下面的语句使备用数据库可读写(丢失最近一次日志还原后的所有数据)。

本新闻共9页,当前在第8页  1  2  3  4  5  6  7  8  9  


编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:SQL Server:错误18483
下一篇:某外企SQL Server面试题
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
oracle监控数据库性能的SQL汇总 某外企SQL Server面试题 SQL Server:错误18483
SQL2005其中三个版本的比较 远程连接sql server 2000服务器的解决方 SQL Server中发送邮件的新方式
如何自动发布MS SQL SERVER数据库 SQL Server数据库文件恢复技术 黑客攻破SQL服务器系统的十种方法
SQL Server数据库安全规划全攻略 保护SQL Server数据库的十大绝招 探讨SQL Server中Case 的不同用法
跟我学MS SQL Server(1) 跟我学MS SQL Server(2) 跟我学MS SQL Server(3)
跟我学MS SQL Server(4) 跟我学MS SQL Server(5) 跟我学MS SQL Server(6)
跟我学MS SQL Server(7) 跟我学MS SQL Server(8) 跟我学MS SQL Server(9)
SQL Server中死锁产生的原因及解决办法 Sql server一些Select检索高级用法  SQL Server和Access、Excel数据传输
最新更新 热点排行 推荐新闻
某外企SQL Server面试题
同步两个SQLServer数据库
SQL Server:错误18483
SQL2005其中三个版本的比较
远程连接sql server 2000服务器的解决
ORACLE碎片整理(1)
ORACLE碎片整理(2)
Oracle如何精确计算row的大小
oracle监控数据库性能的SQL汇总
Oracle logminer使用方法总结
某外企SQL Server面试题
同步两个SQLServer数据库
SQL Server:错误18483
SQL2005其中三个版本的比较
远程连接sql server 2000服务器的解决
MYSQL用户帐号管理
MySQL服务器的启动和关闭
MySQL不支持的功能
在Windows上安装MySQL
在MYSQL结果集上执行计算、
QQ最新版下载 2006 beta2 体验新感受 
QQ密码破解程序
Windows XP专业版IIS连接数的更改
QQ密码本地破解
Office2007简体中文版浮出水面 美图抢
Visual Basic 概述
解决暴风影音无法渲染此文件的难题
解决Windows中的explorer.exe出错
exeplorer.exe错误的问题的总结、解决
一个好汉N个帮 Word实用插件集锦
巧用ACDSee 8.0截取QQ表情每一帧
解除瑞星 诺顿遗留下的杀毒兼容问题
第一款开源AJAX安全扫描工具Sprajax
WinRAR人性化功能揭密
在ASP.NET中防止注入攻击
用ASP.NET开发Web服务的五则技巧
Linux操作系统12则经典应用技巧
浅谈Linux优化及安全配置的个人体会
解决局域网不能互相访问之全攻略
WIN 2000简单的入侵常识
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息