我正在尝试配置从运行 SQL Server 2008 R2 的两台 Windows Server 2008 R2 x64 计算机集群到运行相同操作系统和数据库的单台计算机的日志传送。安装似乎正常(没有错误),但在预定的时间,我在主机器的 SQL Server 事件日志中收到以下两个错误:
BACKUP 无法完成命令 BACKUP LOG MyDb。请检查备份应用程序日志以获取详细消息
错误:3041,严重性 16,状态 1
问题:1. “备份应用程序日志”在哪里?2. 如何找出错误 3041 是什么?
SQL Server 和 SQL Server Agent 在域帐户下的主服务器和辅助服务器上运行。我在辅助服务器上创建了一个共享,名为 \secondary\SqlLogShipData,将完全控制权授予域帐户,并添加了两个子目录:Backup 和 Destination。
当我配置日志传送时,我将 \secondary/SqlLogShipData\Backup 作为备份文件夹的网络路径,对于辅助文件夹,我将 \secondary\SqlLogShipData\Destination 作为复制文件的目标文件夹。
我将备份文件夹放在辅助服务器上,因为主服务器是一个集群,我希望日志传送在任一节点处于活动状态时都能正常工作。我还尝试指定主服务器本地的目录,但这没有任何区别。
辅助服务器的 sql 事件日志中没有相关错误。
我猜这是权限问题,但我不确定原因。如果您能给我提供任何帮助,我将不胜感激。
答案1
在群集上配置日志传送是一个非常简单的设置。我已经使用过很多次了。
在我们开始之前,请务必删除现有的日志传送设置,因为它不起作用。删除辅助服务器,然后删除主服务器。
先决条件
首先,让我们了解一些先决条件。
- 数据库是否处于完整恢复模式?
- 是否已进行完整备份?
- 您是否已准备好 LOG 备份作业?如果是,请务必从该作业中删除此数据库。Log Shipping 将为您处理 LOG 备份。
主要设置
好的,现在让我们尝试完成您的日志传送设置。
首先,尝试让日志传送主服务器正常工作。
返回数据库属性并选中“将其启用为主数据库”,然后单击备份设置按钮。
这里您需要指定两件事:LOG 备份的网络路径和本地路径。
在我的服务器上,它是这样的:
- C:\SQL 备份\LS
- \我的服务器\LS
日志传送文件夹权限
接下来,在 Windows 资源管理器中找到此文件夹,右键单击,选择属性并选择权限选项卡。在这里,您需要添加您的主 SQL 代理服务帐户并确保它对此文件夹具有读写权限。
接下来,选择“共享”选项卡。在这里,您需要共享文件夹并确保辅助 SQL Server 服务帐户对共享具有读取权限。
测试日志传送备份
完成这些后,让我们测试一下日志传送备份。查看 SQL 代理作业,您应该会看到名为 LSBackup_YourDatabase 的内容。
右键单击该作业并运行它。任何错误很可能与文件夹和共享权限有关。发布详细信息。
在使此部分工作正常之前,请勿配置辅助设备。
初始化辅助
一旦日志传送备份作业多次运行且没有错误,请再次运行完整备份作业。
将完整备份复制并恢复到辅助服务器上。务必使用 NORECOVERY。
二次设置
返回数据库属性和日志传送部分。在辅助数据库区域下单击添加。连接到您的辅助服务器。
在“初始化”选项卡上,选择“否,辅助已初始化”。
在复制选项卡上,输入要将日志传送备份文件复制到的辅助服务器上的本地文件夹。确保辅助 SQL 代理服务帐户对此文件夹具有读写权限。
测试复制和恢复作业
在辅助服务器上运行复制作业。任何错误很可能与文件夹及其权限有关。发布详细信息。记录作业历史记录。使用内置的日志传送报告查看进度。
一旦复制作业开始工作,就继续执行恢复作业。测试步骤相同。
祝你好运!
答案2
尝试创建一个额外的集群磁盘来备份,以防写入其中一个节点的本地驱动器时出现问题 - 这样日志传送应该始终有效。如果失败,请从另一个单独的远程服务器备份和恢复日志传送。