使用类似于以下的命令:
ALTER DATABASE test0402er2Y8 SET RECOVERY FULL
GO
Run Code Online (Sandbox Code Playgroud)
如何在现在处于简单模式的服务器中的所有数据库上自动执行此操作(使用 SQL Server 2012)?
谢谢
如何在现在处于简单模式的服务器中的所有数据库上自动执行此操作(使用 SQL Server 2012)?
下面的 T-SQL 会帮助你。它将检查ONLINE具有SIMPLE 恢复模式的数据库,并将打印 TSQL 以将其更改为完全恢复模式。在文本模式下运行以下代码 - SSMS CTRL+T。满意后,运行从另一个会话生成的输出:
set nocount on
go
if exists (
select 1
from sys.databases
where recovery_model_desc = 'SIMPLE'
and state_desc = 'ONLINE'
)
begin
print '-- You are setting up database to FULL recovery mode. '
print '-- Make sure you take first full backup and then schedule LOG BACKUPS for proper transaction log maintenance !'
select 'ALTER DATABASE ' + QUOTENAME(name) + ' SET RECOVERY FULL with ROLLBACK IMMEDIATE;'
from sys.databases
where recovery_model_desc = 'SIMPLE' -- since you only want SIMPLE recovery model databases to get changed to FULL recovery.
and state_desc = 'ONLINE'
end
else
select 'ALL the databases are in FULL RECOVERY MODE - Make sure you take proper LOG BACKUPS !!'
Run Code Online (Sandbox Code Playgroud)
注意:对于任何新创建的数据库,最好将model数据库的恢复模型更改为 FULL,以便创建的新数据库继承模型数据库的 FULL 恢复设置。
值得一提:为什么事务日志不断增长或空间不足?,因为您要切换到完全恢复,如果您不注意事务日志,那么最终会得到一个臃肿的事务日志。阅读链接的答案以获取更多详细信息。
小智 1
如果你使用sp_msforeachdb像
exec sp_msforeachdb 'alter database ? set recovery full'
Run Code Online (Sandbox Code Playgroud)
这是一个使用光标编写的漂亮脚本
| 归档时间: |
|
| 查看次数: |
9981 次 |
| 最近记录: |