先说事情,我是单位的网络管理,现在单位的数据服务器不行了,经常突然间就蓝屏了,硬件出问题了,可是单位的机器必须天天用.被领导不知道责骂了多少次了,他只是教我弄好,可是,硬件问题我也解决不了.
    想来想去,只有做个备用的同步数据服务器了.
    我买了很多书,可是,看不大懂得书上的话..不知道该怎么弄
    我把书上的话打上,你们看看..我到底该怎么弄..
exp:
--首先创建一个演示用的数据库(主数据库)
CREAT DATABASE DB_TEST
ON
(NAME=DB_TEST_DATA,
      FILENAME='c:\Db_test.mdf')
LOG ON
(NAME=Db_test_log,
 FILENAME='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:\bd_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 = @jog-id,@name=N'时间安排',@freq_type=4,@freq_interval=1,@freq_subday_type=0x4,@freq_subday_interval=1,@freq_recurrence_facror=1
--添加目标服务器
EXEC msdb.dbo.dsp_add_jobserver @job_id = @jogid,@server_name = N'(local)'
GO
--通过上述步骤,主数据库与备用数据库之间的同步关系已经设置完成
--下面开始测试是否能够实现同步--在主数据库中建立一个表
CREAT 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_detele_job @job_name=N'数据处理'
-------当主数据库所在机器损坏时候,可以直接在备用数据库上执行
RESTORE LOG Db_test_bak WITH RECOVERY
*****************************************************************
*************************************************************************
我现在不明白该怎么执行,比如这些命令是在哪台机器上执行的...还有啊,数据库是备份到另外的机器上去的呀,怎么没有提到另外的机器?
目前机器情况:
主数据库服务器:yy-server
系统:windows 2000 server 
sql:sql server 2000 企业版
数据库:D:\Program Files\Microsoft SQL\MSSQL\Data\xuri.mdf
日志:D:\Program Files\Microsoft SQL\MSSQL\Data\xuri.ldf
d盘根目录,data目录共享
备用数据库服务器:yy-server
系统:windows 2000 server 
sql:sql server 2000 企业版
d盘根目录,data目录共享请问该如何具体的做?帮帮小弟,我饭碗不保了

解决方案 »

  1.   

    你自己可以做个测试在你的机器上
    新建个数据库x
    在这库下建个表y
    然后停止sql服务, 复制
    x:\mssql\Data\y_data.mdf 和 y_log.mdf
    到另一路径,也是复制到 mssql\Data 目录下,只不过重命个名.再开启SQL服务,新建库,在库上点,附加数据库,操作完成之后,看看你第二次新建的库下是不是多了个 y 表.这是操作最简便的,也是最不容易出错的方法. 不过有个缺点就是要将SQL服务小停一回,因为SQL服务启动时,mdf和ldf是被占用的. 当然也可以脱机数据库再操作. 不过效果是一样的,就是说在你停止SQL服务或将数据库脱机的这一小会儿,别人无法访问数据库.你自己可以在你自己机器上多试几次,试熟之后再到服务器上操作.
    停止你的数据库服务器上的MSSQL服务,复制某库的MDF和LDF到备份服务器某个路径, 启用原服务器的MSSQL服务, 在备份服务器上新建库,再附加,附加时选中相应的MDF和LDF.
      

  2.   

    上面打忘了一句x:\mssql\Data\y_data.mdf 和 y_log.mdf盘符 x: 指代你安装MSSQL时设置的数据文件存放的盘符.
      

  3.   

    同步配置,参考下:
    http://blog.csdn.net/zlp321002/archive/2005/10/29/519239.aspx
      

  4.   

    难道不可以用SQL的复制功能来实现吗,这样操作和维护可能更简单方便些
    具体操作方法可以参考:
    http://blog.csdn.net/sxycgxj/archive/2006/01/06/571949.aspx
    http://blog.csdn.net/sxycgxj/archive/2005/09/30/492765.aspx
      

  5.   

    --------------------------------------------------------------
    您好,我们是“2006中国杰出数据库工程师评选”活动组委会。
    您的帖子已经被我们转载到本次评选官方网站的“专家在线答疑”区。
    http://www.bestdba.cn/match_discussion.aspx在那里,进入本次评选复选的90位数据库工程师将与您展开积极的互动。
    一方面,他们会为您的问题提供满意的答案,
    另一方面,也邀请您为他们投上宝贵的选票。2006-7-8 ~ 2006-7-25日,每天我们将从当天参与"有奖投票"的网友
    中抽取3名幸运者,赠送由IBM提供的精美礼品一份!此外,您还可以在“专家在线答疑”区提出新的问题并参与讨论。您的帖子位于:
    http://www.bestdba.cn/match_discussion3.aspx?pointid=26&pointid2=1&pointid3=5非常感谢您对本次活动的支持!
    --------------------------------------------------------------