文章目录
- 先决条件
- 安全性
- 配置日志传送
- 删除日志传送 (SQL Server)
- 显示服务器实例上的事务日志传送状态报告
- 监视日志传送 (Transact-SQL)
- 故障转移到日志传送辅助服务器 (SQL Server)
- 为受控故障转移做准备
- 故障转移
- 检查备份的日志文件是否都传送到辅助库
- 把辅助库的日志文件还原到辅助库
- 恢复数据库
- 禁用辅助库的日志拷贝和还原,
- 停用主库网络,修改辅助库ip为主库ip
- 以辅助库为新主库,建立日志传送
- 错误
先决条件
主数据库必须使用完整恢复模式或大容量日志恢复模式,将数据库切换为简单恢复模式会导致日志传送停止工作。
在配置日志传送之前,您必须创建共享,以便辅助服务器可以访问事务日志备份。 这是对生成事务日志备份的目录的共享。 例如,如果将事务日志备份到目录 d:\db-ls-bakeup\,可以创建该目录的 \primaryserver\db-ls-bakeup 共享。最好是用ip地址代替其中计算机名。实践中会有找不到网络名的错误。但会重做。
此共享文件夹需要给予everyone读写权限,sqlserver服务账号需要把备份写入此文件夹。辅助库的服务账号需要读取此文件夹。
在辅助库服务器,需要创建文件夹来接受事物日志的拷贝。此文件不需要共享。d:\db-ls-copy
在辅助库服务器,需要创建文件来指定辅助库的数据和日志文件的位置。d:\db-data\ 和 d:\db-log\ ,具体位置可根据具体情况来定。
安全性
权限
日志传送存储过程要求 sysadmin 固定服务器角色中的成员身份。
主库,无需改动权限。传送主要由辅助库的sqlserver和sqlserveragent服务角色完成。需要把它改为本地管理用户,否则权限不够。
辅助库
辅助库需要用本地管理员账号,要不报无权限错。代理需要配置为自动启动并启动起来。
配置日志传送
以下ip显示为29和69的即为同一辅助库,因为测试时间不同,用的ip不同,9为主库。
使用 SQL Server Management Studio
- 右键单击要在日志传送配置中用作主数据库的数据库,然后单击 “属性” 。
- 在 “选择页” 下,单击 “事务日志传送” 。
- 选中 “将此数据库启用为日志传送配置中的主数据库” 复选框。
- 在 “事务日志备份” 下,单击 “备份设置” 。
- 在 “备份文件夹的网络路径” 框中,键入为事务日志备份文件夹创建的共享的网络路径。
- “如果备份文件夹位于主服务器上,则在备份文件夹中键入本地路径”框。 (如果备份文件夹不在主服务器上,此框可以保留为空。)
实际情况,备查
重要
如果主SQL Server服务帐户在本地系统帐户下运行,则必须在主服务器上创建备份文件夹,并指定该文件夹的本地路径。
默认15分钟是较好的选择,较小的时间,增加还原复杂性。
- 配置 “删除文件,如果其保留时间超过” 和 “在以下时间内没有执行备份时报警” 参数。
- 请注意 “备份作业” 下的 “计划” 框中列出的备份计划。 如果要自定义安装计划,请单击"计划",并根据需要SQL
Server代理计划。 - SQL Server备份压缩。
创建日志传送配置时,可以通过选择以下选项之一来控制日志备份的备份压缩行为:“使用默认服务器设置”、“压缩备份”或“不压缩备份” 。 有关详细信息,请参阅 Log Shipping Transaction Log Backup Settings。 - 单击“确定”。
- 在 “辅助服务器实例和数据库” 下,单击 “添加” 。
- 单击连接并连接到要用作SQL Server服务器的实例。
- 在 “辅助数据库” 框中,从列表中选择一个数据库或键入想要创建的数据库的名称。
- 在 “初始化辅助数据库” 选项卡上,选择要用于初始化辅助数据库的选项。
备注
如果选择从Management Studio数据库备份初始化辅助数据库,则辅助数据库的数据和日志文件与 master
数据库的数据和日志文件位于同一位置。 此位置可能不同于主数据库的数据文件和日志文件所在的位置。
- 在 “复制文件” 选项卡上的 “复制文件的目标文件夹” 框中,键入应该将事务日志备份复制到其中的文件夹的路径。
该文件夹通常位于辅助服务器上。 - 请注意 “复制作业” 下的 “计划” 框中列出的复制计划。 如果要自定义安装计划,请单击"计划",然后根据需要SQL
Server代理计划。 此计划应为大致的备份计划。
指定辅助库的数据和日志文件的文件夹位置,要不,系统会放在默认c盘安装sqlserver位置。造成磁盘空间不足。这个即为前面准备的文件夹。
- 在 “还原” 选项卡上的 “还原备份时的数据库状态” 下,选择 “无恢复模式” 或 “备用模式” 选项。
重要
当主服务器和辅助服务器的版本相同时,仅选择“备用模式”。 当辅助服务器的主版本高于主服务器时,仅允许“无恢复模式”
- 如果选择了 “备用模式” 选项,请选择是否要在进行还原操作时从辅助数据库断开用户连接。
- 如果希望延迟辅助服务器上的还原进程,请在 “延迟还原备份操作至少” 下选择延迟时间。
- 在 “在以下时间内没有执行还原时报警” 下选择警报阈值。
- 请注意 “还原作业” 下 “计划” 框中列出的还原计划。 如果要自定义安装计划,请单击"计划",然后根据需要SQL
Server代理计划。 此计划应为大致的备份计划。 - 单击“确定”。
- 在 “监视服务器实例” 下,选中 “使用监视服务器实例” 复选框,然后单击 “设置” 。
传送过程中,辅助库的代理被禁用。
重要
若要监视此日志传送配置,必须现在添加监视服务器。 若要以后添加监视服务器,则需要先删除此日志传送配置,然后将其替换为包含监视服务器的新配置。
- 单击连接并连接到要用作SQL Server服务器的实例。
- 在 “监视器连接” 下,选择备份、副本以及还原作业所使用的连接方法来连接到监视器服务器。
- 在 “历史记录保持期” 下,选择想要保留日志传送历史记录的时间长度。
- 单击“确定”。
- 在 “数据库属性” 对话框中,单击 “确定” 开始配置进程。
删除日志传送 (SQL Server)
使用 SQL Server Management Studio
删除日志传送
连接当前为日志传送主服务器的 SQL Server 的实例,然后展开该实例。
展开“数据库”,右键单击日志传送主数据库,再单击“属性”。
在 “选择页” 下,单击 “事务日志传送” 。
清除 “将此数据库启用为日志传送配置中的主数据库” 复选框。
单击 “确定” ,从此主数据库中删除日志传送。
删除日志传送后,在主库的sqlserver代理的作业中backup任务,和辅助库的sqlserver代理的作业中的copy任务和restore任务将自动删除
删除前的情况
删除后的情况
在辅助库执行以下操作,使辅助库回复为正常数据库。
刷新数据库后,数据库由备用/只读状态转为在线状态
显示服务器实例上的事务日志传送状态报告
连接到监视服务器、主服务器或辅助服务器。
在对象资源管理器中,右键单击服务器实例,依次指向“报表”和“标准报表”。
单击 “事务日志传送状态” 。
此报告调用 sp_help_log_shipping_monitor 来获取数据。 有关所需权限的信息,请参阅 sp_help_log_shipping_monitor (Transact-SQL) 。
监视日志传送 (Transact-SQL)
配置日志传送后,就可以监视有关所有日志传送服务器状态的信息。 日志传送操作的历史记录和状态始终由日志传送作业保存在本地。 备份操作的历史记录和状态存储在主服务器上,复制和还原操作的历史记录和状态存储在辅助服务器上。 如果使用了远程监视服务器,此信息还将存储在监视服务器上
故障转移到日志传送辅助服务器 (SQL Server)
为受控故障转移做准备
通常,主数据库与辅助数据库不同步,因为主数据库在其最新的备份作业后会继续更新。 此外,在某些情况下,最新的事务日志备份尚未复制到辅助服务器实例中,或者某些已复制的日志备份可能尚未应用到辅助数据库中。 建议如有可能,首先将所有辅助数据库与主数据库同步。
查看已还原的最后事物日志
在辅助库
故障转移
在出现故障时转移到辅助数据库:
检查备份的日志文件是否都传送到辅助库
- 将所有未复制的备份文件从备份共享复制到每台辅助服务器的复制目标文件夹中。
如果可能,查看下主库的备份文件夹和辅助库的接受传送备份文件的copy还原文件夹,最终文件是否一致。
把辅助库的日志文件还原到辅助库
- 将所有未应用的事务日志备份按顺序应用到每个辅助数据库中。 有关详细信息,请参阅 (SQL Server) 应用事务日志备份。
在辅助库
RESTORE LOG SQLTestDB WITH NORECOVERY
恢复数据库
执行
RESTORE DATABASE SQLTestDB WITH RECOVERY
完成还原操作并恢复数据库后,将执行恢复过程,以确保数据库的完整性。 有关恢复过程的详细信息,请参阅还原和恢复概述 (SQL Server)。
恢复过程完成后,数据库将进入联机状态,不能再将其他事务日志备份应用到数据库。 例如,一系列事务日志备份包含一个运行时间长的事务。 该事务的起点记录在第一个事务日志备份中,终点记录在第二个事务日志备份中。 第一个事务日志备份中没有任何关于提交或回滚操作的记录。 如果在应用第一个事务日志备份后运行恢复操作,则运行时间长的事务被视为未完成,并且将回滚事务的第一个事务日志备份中记录的数据修改。 SQL Server 不允许在此点后应用第二个事务日志备份。
如果不能访问主库,以下几步忽略。
-
如果可以访问主数据库,则请备份活动的事务日志,并将日志备份应用到辅助数据库。 可能需要在发出 restore
命令之前将数据库设置为单用户模式以获得独占访问权限,然后在还原完成后将其切换回多用户模式。 -
如果原始主服务器实例没有损坏,则请使用 WITH NORECOVERY 备份主数据库的事务日志尾部。
这将使数据库处于还原状态,因此用户无法使用。 最终,您将能够通过应用替换主数据库中的事务日志备份前滚此数据库。有关详细信息,请参阅 (SQL Server) 的事务日志备份。
-
同步辅助服务器之后,可以根据您的首选,通过恢复任一辅助数据库并将客户端重定向到该服务器实例来故障转移该辅助服务器。
恢复操作将使数据库处于一致的状态并使其联机。
备注
辅助数据库可用时,应确保其元数据与原始主数据库的元数据一致。 有关详细信息,请参阅在使数据库在其他服务器实例上可用时管理元数据 (SQL
Server) 。
忽略步骤到此结束。
禁用辅助库的日志拷贝和还原,
停用主库网络,修改辅助库ip为主库ip
修改本机的ip地址为原来辅助库ip地址,检查应用客户端是否正常。
- 恢复辅助数据库之后,可以将其重新配置为其他辅助数据库的主数据库。
以辅助库为新主库,建立日志传送
把本辅助库作为主库,选择一个新的辅助库,重新配置日志传送。
错误
测试中的一些错误。
正在联机的standby的数据库,不能做还原操作,需要改为单用户模式。来独占访问权。
处于standby状态的数据库,不能备份。