SQL2005事务日志传送步骤

SQL2005事务日志传送步骤

结构:

环境:两台电脑,操作系统都是Windows7,两台电脑上都安装SQL2005 开发者版

主机的计算机名:JOE

备机的计算机名:WIN7U-20130414Z

要备份的数据库:hengshan

---------------------------------------------------华丽的分割线------------------------------------------------------

下面说的步骤配合截图跟sql脚本来做

1、在备机上建立共享文件夹和复制文件夹 我这里是复制文件夹和备用文件夹都用同一个\\WIN7U-20130414Z\PrimaryData

在备机的D盘根目录下建了一个PrimaryData的文件夹,然后设置administrator有完全控制权限,大家可以根据需求新建一个Windows用户

设置相应权限,这里我就不说了

2、设置数据库的恢复模式

需要做事务日志传送的数据库需要设置为完整恢复模式

1 USE master;
2 ALTER DATABASE [hengshan] SET RECOVERY FULL;--完整恢复模式
3 GO

设置备机上的administrator的密码为:888888,然后在cmd下执行 net view要看到备机 能ping通

能否打开共享文件夹,点击 开始-》运行-》

 开启SQLSERVER中的xp_cmdshell权限,然后执行下面语句

1 EXEC master..xp_cmdshell 'net use \\WIN7U-20130414Z\PrimaryData  888888 /user:WIN7U-20130414Z\administrator'

3、执行完整备份

1 BACKUP DATABASE [hengshan]
2   TO DISK = '\\WIN7U-20130414Z\PrimaryData\hengshan.bak'
3   WITH FORMAT;
4 GO


 

4、开始执行日志传送
这一步看配图,我没有使用sql脚本,因为在网上找不到

 

 

 按照上图输入路径就可以了

 

在连接备机数据库的时候我使用的是sa用户,大家可以使用其他用户来连接备库,只有那个用户有权限

连接好之后,就可以配置备库了,因为这里截图是我先前做实验的时候截的,可能机器名跟数据库名跟本次文章说的不一样

不过设置都是一样的,这里初始化辅助数据库的时候,不需要在备机上先建好数据库

选择复制路径

这一步要注意了

 

------------------------------------------------华丽的分割线--------------------------------------------------------------

这里介绍一下事务日志恢复模式

事务日志模式   

在设置辅助数据库时,对于恢复事务日志Restore Transaction Log选项卡,我们设定了为无恢复模式No recovery mode,还有一个可供选择的则为备用模式Standby mode。

在事物日志的传送过程中,恢复事务日志Restore Transaction Log与我们普通的恢复不同,一般情况下的恢复是回滚所有未提交的事务,前滚所有已提交但未写入

磁盘的事务。事务日志中,如果一个事务回滚,所有改变的数据将会被丢失, 因为在这个时候,你并不知道下一事物究竟是回滚还是提交。

故在事务日志传送中提供了两个模式 无恢复模式No recovery mode备用模式Standby mode  

两者的介绍如下:

1. 无恢复模式(No recovery mode):既不前滚也不回滚未提交的事务,数据不可读。

2. 备用模式(Standby mode):在恢复日志期间回滚所有未提交的事务,并且将所有未提交的事务保存为一个单独的Transaction Undo File(TUF)文件,

恢复过程通过该文件来维护事务的完整性,当恢复下一个事务的时候则恢复所有已提交的事务。

Standby mode中的复选框勾选则当日志恢复的时候,断开所有用户的连接,如果有一个用户没有断开,则还原无法进行。

就是说如果TUF文件里还保存着未提交的事务则不能恢复,所以要断开所有用户连接才能恢复

备用模式才有TUF文件

-------------------------------------------------华丽的分割线--------------------------------------------------------

辅助服务中hengshan 数据库由restoring显示为standby/read-only模式

辅助服务中hengshan 数据库由restoring显示为standby/read-only模式。如果设定的复制和恢复间隔时间很长,
可以手动执行主服务器中的backup作业和辅助服务器其中的copy 作业和restore作业,将主服务器上所有未复制的日志文件复制到设定的恢复目录(restorelog)中,
然后恢复到辅助服务器中。

备库:

主库:

 

同样也可以将Standby mode切换回No recovery mode期间回滚所有未提交的事务,并且将所有未提交的事务,

保存为一个单独的Transaction Undo File(TUF)文件,恢复过程通过该文件来维护事务的完整性,

当恢复下一个事物的时候则恢复所有已提交的事务。Standby mode中的复选框勾选则当日志恢复的时候,

断开所有用户的连接,如果有一个用户没有断开,则还原无法进行。

5、辅助服务器上查看记录
如果以上步骤没问题的话,我们可以在辅助服务器上的PrimaryData 目录下看到trn后缀的文件。

可以在代理下 查看作业执行的历史记录。

6、故障恢复

故障转移

在主服务器切换到master数据库,然后执行备份hengshan数据库的尾部日志。

1 USE master
2 go
3 --备份主库尾部日志
4 BACKUP  LOG [hengshan] TO DISK ='\\WIN7U-20130414Z\PrimaryData\last.bak' WITH NO_TRUNCATE
5 GO

 

将主、辅助、监视服务器上日志传送的几个作业禁用(Disable) 。

在辅助服务器上执行copy作业和resotre作业将未复制过来的日志复制到恢复目录并全部恢复完毕。

 将尾部日志恢复到辅助服务器辅助数据库中并使辅助数据库hengshan数据库处于联机状态。在辅助服务器master数据库中执行如下脚本:

1 RESTORE LOG [hengshan] FROM DISK = 'D:\PrimaryData\last.bak' WITH NORECOVERY; 
2 go 
3 --显示正在还原
4 RESTORE DATABASE [hengshan] WITH RECOVERY; 
5 go
6 --可以访问了

 

改变应用程序的连接字符串,使应用程序连接到辅助服务器的辅助数据库,此时辅助服务器的辅助数据库已变成为主服务器主数据库。

当原始主服务器修复后,再重新配置日志传送即可。

------------------------------------------------华丽的分割线----------------------------------------------------------------------------

刚才说到一般配置备份间隔在每天在 0:00:00 和 23:59:00 之间、每 15 分钟 执行。将从 2013/4/30 开始使用计划

 一般执行间隔都在15分钟,但是你可以自己手动执行作业:

先在主机上执行LSBackup_hengshan

然后在备机上执行LSCopy_JOE_hengshan

然后在备机上执行LSRestore_JOE_hengshan

执行方法:在SQLSERVER代理->作业->LSBackup_hengshan按右键->点击 "作业开始步骤" 按钮

禁用作业跟启用作业的按钮就在那个右键菜单的下面,很容易找的

 

写完了,继续水饺了  o(∩_∩)o

 

posted @ 2013-04-30 12:35  桦仔  阅读(1060)  评论(0编辑  收藏  举报