sql-server - 使用多个 BAK 文件恢复 SQL Server 数据库的脚本
问题描述
我正在尝试编写一个脚本,以便在 SQL Server 2019 中使用每天位于一个文件夹中的多个 BAK 文件动态地执行“还原数据库”。
我将首先进行手动完整备份,此任务将安排在每天运行之后。
该计划是按顺序浏览每个 BAK 文件(位于同一文件夹中)(例如这里:04 --> 12)。
将有另一个 Python 脚本将清除旧文件,因此我只专注于使用位于此文件夹中的 BAK 文件执行恢复数据库。
最好的方法应该是什么?
我附上了一个包含所有 BAK 文件的屏幕截图。
我这里有一些 T-SQL 代码(我从其他线程复制的),但我不确定如何按顺序循环每个 BAK 文件。
而且我不确定是否必须处理此处列出的 mdf 和 ldf 文件。
RESTORE DATABASE [Test] FROM DISK ='\\Folder\LOG...04.bak'
WITH
--what ever options... but likely a file move
MOVE 'data_file_1' TO 'E:\somefolder\data.mdf',
MOVE 'db_log' TO 'E:\somefolder\log.ldf',
REPLACE, --overwrites the database
RECOVERY --sets the DB to READ/WRITE. Use NORECOVERY if you need to restore
logs / differentials
GO
RESTORE LOG Test
FROM '\\Folder\Log...04.bak' --assuming this is a log
WITH FILE = 1, --this is the first log
WITH NORECOVERY; --keep in norecovery to restore other logs...
GO
解决方案
推荐阅读
- jena - 本体的TBOX和ABOX如何存储,推理应该在哪里进行?
- java - 编写一个接收列表的减法循环
- json - 如何使用 Python 将 CSV 转换为 JSON
- multithreading - 在多线程中字典是否有可能返回错误的值c#
- c++ - 套接字连接在 main 但不在函数内部
- spring-boot - 当我们使用 oauth2 时在 thymeleaf 客户端中注销
- arduino - A32s指纹模块引出线
- rust - 如何使用 log4rs 的 RollingFileAppender 来合并滚动日志?
- excel - 检查当前行单元格日期是否在过去
- javascript - 无法理解此 JSON 解析错误