笔记284 设置SQL2005事务日志传送 不用看那个word文档,看截图跟这个sql脚本就可以了 2013-4-30
笔记284 设置SQL2005事务日志传送 不用看那个word文档,看截图跟这个sql脚本就可以了 2013-4-30
1 --设置SQL2005事务日志传送 不用看那个word文档,看截图跟这个sql脚本就可以了 2013-4-30 2 3 --1、在备机上建立共享文件夹和复制文件夹 我这里是复制文件夹和备用文件夹都用同一个\\WIN7U-20130414Z\PrimaryData 4 --设置数据库的恢复模式 5 USE master; 6 ALTER DATABASE [hengshan] SET RECOVERY FULL;--完整恢复模式 7 GO 8 --设置共享文件 在备机上的D盘建立一个PrimaryData的文件夹,并设置备机上的administrator的密码为:888888 9 --在cmd下执行 net view要看到备机 能ping通 10 --exec master..xp_cmdshell 'net use \\192.168.0.3\PrimaryData 密码 /user:192.168.10.3\administrator' 11 EXEC master..xp_cmdshell 'net use \\WIN7U-20130414Z\PrimaryData 888888 /user:WIN7U-20130414Z\administrator' 12 13 --------2、执行完整备份--------------------------------- 14 BACKUP DATABASE [hengshan] 15 TO DISK = '\\WIN7U-20130414Z\PrimaryData\hengshan.bak' 16 WITH FORMAT; 17 GO 18 19 --3、开始执行日志传送---------------------------------- 20 --这一步看配图 21 22 --日志传送可以读的 23 with standby 24 25 --事务日志模式 26 -- 在设置辅助数据库时,对于恢复事务日志Restore Transaction Log选项卡,我们设定了为No recovery mode, 27 -- 还有一个可供选择的则为Standby mode。在事物日志的传送过程中, 28 -- 恢复事务日志Restore Transaction Log与我们普通的恢复不同,一般情况下的恢复是回滚所有未提交的事务, 29 -- 前滚所有已提交但未写入磁盘的事务。事务日志中,如果一个事务回滚,所有改变的数据将会被丢失, 30 -- 因为在这个时候,你并不知道下一事物究竟是回滚还是提交。故在事务日志传送中提供了No recovery mode和Standby mode, 31 -- 两者的介绍如下: 32 --1. 无恢复模式(No recovery mode):既不前滚也不回滚未提交的事务,数据不可读。 33 --2. 备用模式(Standby mode):在恢复日志期间回滚所有未提交的事务,并且将所有未提交的事务保存为一个单独的Transaction Undo File(TUF)文件, 34 --恢复过程通过该文件来维护事务的完整性,当恢复下一个事物的时候则恢复所有已提交的事务。 35 --Standby mode中的复选框勾选则当日志恢复的时候,断开所有用户的连接,如果有一个用户没有断开,则还原无法进行。 36 37 38 --辅助服务中hengshan 数据库由restoring显示为standby/read-only模式。如果设定的复制和恢复间隔时间很长, 39 --可以手动执行主服务器中的backup作业和辅助服务器其中的copy 作业和restore作业,将主服务器上所有未复制的日志文件复制到设定的恢复目录(restorelog)中, 40 --然后恢复到辅助服务器中。 41 42 43 --同样也可以将Standby mode切换回No recovery mode期间回滚所有未提交的事务,并且将所有未提交的事务 44 --保存为一个单独的Transaction Undo File(TUF)文件,恢复过程通过该文件来维护事务的完整性, 45 --当恢复下一个事物的时候则恢复所有已提交的事务。Standby mode中的复选框勾选则当日志恢复的时候, 46 --断开所有用户的连接,如果有一个用户没有断开,则还原无法进行。就是当有用户读取备库的时候,这些用户 47 --连接都要断开,不是说主库的用户连接要断开 48 49 50 51 52 ------4、辅助服务器上查看记录--------------------------------------------- 53 --如果以上步骤没问题的话,我们可以在辅助服务器上的PrimaryData 目录下看到trn后缀的文件。 54 -- 55 --可以在代理下 查看作业执行的历史记录。 56 -- 57 58 59 60 --5、故障恢复---------------------------------------------- 61 62 -- 故障转移测试 63 --在主服务器Ecustom_qah数据库中,删除complex表中字段code_ts中以04开头的记录,delete from complex where code_ts like '04%'。 64 --停止主服务器的MSSQLSERVER服务,然后删除主服务器中的Ecustom_qah数据库的mdf文件来模拟主服务器故障。 65 --重新启动主服务器的MSSQLSERVER服务服务,在主服务器master中执行备份尾部日志。 66 USE master 67 go 68 --备份主库尾部日志 69 BACKUP LOG [hengshan] TO DISK ='\\WIN7U-20130414Z\PrimaryData\last.bak' WITH NO_TRUNCATE 70 GO 71 --将主、辅助、监视服务器上日志传送的几个作业禁用(Disable) 。 72 --在辅助服务器上执行copy作业和resotre作业将未复制过来的日志复制到恢复目录并全部恢复完毕。 73 --将尾部日志恢复到辅助服务器辅助数据库中并使辅助数据库Ecustom处理联机状态。在辅助服务器master数据库中执行如下脚本: 74 --在备库上还原尾部日志 75 RESTORE LOG [hengshan] FROM DISK = 'D:\PrimaryData\last.bak' WITH NORECOVERY; 76 go 77 --显示正在还原 78 RESTORE DATABASE [hengshan] WITH RECOVERY; 79 go 80 --可以访问了 81 82 -- 改变应用程序的连接字符串,使应用程序连接到辅助服务器的辅助数据库,此时辅助服务器的辅助数据库已变成为主服务器主数据库。 83 -- 当原始主服务器修复后,再重新配置日志传送即可。 84 85 -------------------------------------------------------------------------------------------------------- 86 87 --每天在 0:00:00 和 23:59:00 之间、每 15 分钟 执行。将从 2013/4/30 开始使用计划 88 --一般执行间隔都在15分钟,但是你可以自己手动执行作业: 89 --先在主机上执行LSBackup_hengshan 90 --然后在备机上执行LSCopy_JOE_hengshan 91 --然后在备机上执行LSRestore_JOE_hengshan 92 93 --执行方法:在SQLSERVER代理->作业->LSBackup_hengshan按右键->点击 "作业开始步骤" 按钮 94 95 96 ------------------------------------------------------------- 97 --插入数据库的测试数据 98 USE [hengshan] 99 GO 100 INSERT INTO [dbo].[test] 101 ( [remark] ) 102 VALUES ( N'你好dfdsf' -- remark - nchar(256) 103 )