实战 SQL Server 2008 日志传送(Log Shipping)

适用SQL Server2008-->SQL Server 2022



数据库学习 【2023-04-06 20:41】


一、什么是日志传送?

原理很简单,三个动作六个字:备份->复制->恢复。

如果由人来完成这个三个动作,只能叫日志搬运工;而由SQL Server Job自动完成,就叫日志传送。同样的事情,不一样的档次,所以叫法也不一样。

二、日志传送能解决什么问题?

解决数据库的多服务器热备份问题。多台服务器定时备份,随时可以作为主数据库服务器的替补。

三、日志传送的优点是什么?

简单!比SQL Server的数据库复制、镜像简单多了。

四、日志传送的缺点是什么?

日志文件的传输只支持Windows文件共享的方式,不支持FTP,就如同快递公司只送本地,不送外地。所有备份服务器都要在同一个局域网内,所以准确的名字应该叫“日志本地传送”。

五、日志如何传送?

1. [主数据库服务器]要传送日志的数据库的恢复模式必须是完全(Full)

1.png

2.  [主数据库服务器]对要传送日志的数据库进行1次且仅此1次完全备份

BACKUP DATABASE [CNBlogsJob] TO  DISK = N'F:\FullBackup\CNBlogsJob.bak' WITH NOFORMAT, INIT,  
NAME = N'CNBlogsJob-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, COMPRESSION,  STATS = 10
GO

3.  [备份数据库服务器]将完全备份文件复制到备份数据库服务器上,并以STANDBY的方式进行恢复

RESTORE DATABASE [CNBlogsJob] 
FROM  DISK = N'F:\FullBackup\CNBlogsJob.bak' WITH FILE = 1,  
MOVE N'CNBlogsJob' TO N'D:\Data\CNBlogsJob.mdf',  
MOVE N'CNBlogsJob_log' TO N'E:\Logs\CNBlogsJob.LDF',  
STANDBY = N'F:\Standby\ROLLBACK_UNDO_CNBlogsJob.BAK', NOUNLOAD, STATS = 10
GO



恢复成功后,SQL Server管理工具中会显示如下图所示的状态:

2.png

4. [备份数据库服务器]创建一个普通的Windows用户帐户(比如logshipper),将该用户加入到以SQLServerSQLAgentUser开头的组(未验证是否可以不加,必须加入否则会配置不成功),并将该用户设置为SQL Server Agent的运行帐户。

3.png

5. [备份数据库服务器]创建一个文件夹(比如F:\LogBackup),用于存放从主数据库复制过来的日志文件。

6. [主数据库服务器]创建与备份数据库服务器同名同密码的Windows用户帐户(比如这里是logshipper)。

7. [主数据库服务器]创建存放日志备份文件的文件夹,并将该文件夹以只读权限共享给logshipper。假设文件名称是LogBackup,主数据库服务器名称是dbserver,通过设置共享让备份数据库服务器可以访问共享路径 \\dbserver\LogBackup 。

8. [主数据库服务器]选择要进行日志传送的数据库,打开属性窗口,进入Transaction Log Shipping窗口,勾选Enable this as a primary database in a log shipping configuration,然后点击Backup Settings打开日志传送备份设置窗口,如下图:

4.png

\\dbserver\LogBackup 就是给备份数据库服务器访问的共享路径。

F:\LogBackup 是主数据库服务器保存日志备份文件的路径。

9. [主数据库服务器]继续回到Transaction Log Shipping窗口,在Secondary databases部分点击Add按钮,连接至备份数据库服务器,选择对应的数据库;在Initialize Secondary Database窗口中,选择"No, the secondary database is initialized";在Copy Files窗口中,输入备份数据库服务器中存放备份日志文件的路径(比如F:\LogBackup);在Restore Transaction Log窗口中,选择Standby mode。

5.png

6.png

7.png

10. 成功设置之后,日志传送就开始工作了。主数据服务器上的Job根据设定的时间间隔定时地备份当前数据库的日志,将日志文件保存至本机的文件夹(比如F:\LogBackup);备份数据服务器上的Job不断地通过共享文件夹(比如\\dbserver\LogBackup)从主数据库服务器复制日志文件到本机的文件夹(比如F:\LogBackup),然后将日志文件恢复至处于Standby状态的数据库中。


文章来源:https://www.cnblogs.com/forint/p/4138429.html


友情链接:
SQL数据库修复专家
  • 关注微博
    联系QQ
  • 二维码
  • 扫一扫加关注

——信阳市速全网络科技有限公司——

版权所有:信阳市速全网络科技有限公司

豫ICP备19030104号-2