笔记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 )