构建环境,在一台服务器(sql-server)上安装两个数据库实例,两个实例之间做日志传送,一个是主服务器,其实例是sqldev01;一个是辅助服务器,其实例是bcpserver.如图1
代码
(不同数据库服务器间的数据库日志传送与此相似)
![2010061108383375.jpg](https://i-blog.csdnimg.cn/blog_migrate/989db7fc68c8ed74c18ef185a8780a85.jpeg)
图1
第一步,建立两个文件夹,文件分别是BcpServerlog,BcpTranslog.这两个文件用于存放备份的日志文件。
BcpServerlog用于存放从主服务器上备份过来的日志文件
BcpTranslog用于存放准备还原到辅助服务器上去的日志文件。这些文件是用BcpServerlog中复制过来的。
建立好了之后,一定要把两个文件夹设为共享并设置读取权限。这里设置辅助服务器的agent的启动账户SQLServer2005SQLAgentUser$SQL-SERVER$BCPSERVER对两个文件夹有读取权限。D:\BcpServerlog和D:\BcpTranslog如图2
![2010061108413095.jpg](https://i-blog.csdnimg.cn/blog_migrate/5623d4ac2dd9c62bace3951caa34a454.jpeg)
图2
第二步:
在主服务器上AdventureWorksLT右击-àtasksàshiptransaction logs
点击Enable thisas a primary database in a log shipping configuration选项,如图3
![2010061108441522.jpg](https://i-blog.csdnimg.cn/blog_migrate/8990b2d03e775889e6112d741fd0186b.jpeg)
图3
这里关于作业的执行计划,不在描述,为了测试方便,笔者设置成1分钟,下同
点击add,添加服务服务器。
![2010061108462393.jpg](https://i-blog.csdnimg.cn/blog_migrate/d2c0abc0cd4d0c4531a0aaa3d2e4957e.jpeg)
图4
在InitializeSecondary Database选项卡上:如图4
选择第二项。初始化辅助服务器上的AdventureWorksLT跟主服务器上的AdventureWorksLT一样。并设置辅助服务器上AdventureWorks的数据文件和日志文件的路径。
在Copy Files选项卡上:如图5
输入路径D:\BcpTranslog。这个文件夹中的文件是辅助服务器从D:\BcpServerlog中复制过来的主服务器的日志文件。
![2010061108484490.jpg](https://i-blog.csdnimg.cn/blog_migrate/409246177d2e8a56da34e8b75a1b9c57.jpeg)
图5
在RestoreTransaction log选项卡中:图6
选择Standby mode,这种模式下,用户可以只读的方式访问数据库。在还原时必须断开所有连接,如果不断开连接,则还原在累积直到所有连接断开才做。
![2010061108511661.jpg](https://i-blog.csdnimg.cn/blog_migrate/911d78d9813329a38346a9affcd01f33.jpeg)
图6
第三步:
查看数据库的作业情况
![2010061108523334.jpg](https://i-blog.csdnimg.cn/blog_migrate/c89a74c82a7979388b4a754b594eb5a3.jpeg)
主服务器上有两个作业,辅助服务器上有3个作业
第四步:
看看作业的执行情况:
主服务器:
![2010061108570835.jpg](https://i-blog.csdnimg.cn/blog_migrate/5c7a9911f6a30a4298053c0622c1b755.jpeg)
辅助服务器作业的执行情况:
![2010061108582089.jpg](https://i-blog.csdnimg.cn/blog_migrate/c03350cd78bfaa26a05ab9a02e9d1ad2.jpeg)
查看D:\BcpServerlog和D:\BcpTranslog文件夹:
![2010061108585751.jpg](https://i-blog.csdnimg.cn/blog_migrate/3b60633b714e83ddc803fa37d919a310.jpeg)
第五步:
测试日志传送是否成功:
在主服务器上做更新操作:
![ContractedBlock.gif](https://i-blog.csdnimg.cn/blog_migrate/cdec0645add3fc3c328197dda5c76203.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/81178cc93a2a3bb5048d90d76e7ec935.gif)
update
salesLT.product
set name = ' Road-750 Black, 52_new '
where productid = 999
update SalesLT.Customer
set FirstName = ' Orlando_new '
where CustomerID = 1
select * from salesLT.product where productid = 999
select * from saleslt.customer where CustomerID = 1
set name = ' Road-750 Black, 52_new '
where productid = 999
update SalesLT.Customer
set FirstName = ' Orlando_new '
where CustomerID = 1
select * from salesLT.product where productid = 999
select * from saleslt.customer where CustomerID = 1
![2010061109002959.jpg](https://i-blog.csdnimg.cn/blog_migrate/175adb249dae9dfa0217de2d343cc980.jpeg)
立刻查看辅助服务器
select
*
from
salesLT.product
where
productid
=
999
select * from saleslt.customer where CustomerID = 1
select * from saleslt.customer where CustomerID = 1
可以看出还没有被更新。等待一下次作业执行后再查看
![2010061109024752.jpg](https://i-blog.csdnimg.cn/blog_migrate/26c0cba3e152a54a46656e2c8947baa2.jpeg)
再次查看:
结果给更新了。
![2010061109030679.jpg](https://i-blog.csdnimg.cn/blog_migrate/99c9c307af0134a576da92467411b09b.jpeg)