我已经添加了Log Shippig到SQL Server:
SQL server1source_database->SQL server2target_database
正如我从SSMs报告中看到的,它工作正常。但是目标数据库总是在"恢复"中。状态。我想将其更改为对目标数据库具有读访问权限,并按照此处
所述进行所有操作。https://www.mssqltips.com/sqlservertip/3600/change-the-restore-mode-of-a-secondary-sql-server-database-in-log-shipping-with-ssms/
但目标数据库仍处于还原模式。我做错了什么?如何改变状态并拥有读访问权限?
有两种方法:
- 配置日志发送默认使用备用模式:(在目标服务器的msdb..log_shipping_secondary_databases中将restore_mode设置为1)
- 在恢复作业中使用恢复模式并手动设置数据库为备用状态
我非常喜欢方法#2,因为如果数据库中有很多操作,那么将每个备份恢复到备用模式是非常慢的。
要手动使用恢复模式,在恢复后在SQL Agent作业中添加一个步骤,并运行如下命令:
if exists(
select 1 from sys.databases where name = 'YOUR DATABASE NAME' and state_desc = 'RESTORING'
)
begin
restore database YOUR_DB_NAME with standby = 'D:PATH_TO_STANDBY_FILEYOUR_DB_NAME_standby.tuf'
end
使用此方法,您可以获得更快的恢复速度,并且在恢复作业完成后立即可以访问您的数据库。