我想编写一个自动化脚本来从备份文件恢复 SQL Server 数据库。然而,在 SQL 中执行此操作并不是一个简单的过程,因为主查询需要额外的输入,而这些输入实际上可以使用另一个查询来获取。我可以在一个查询中完成此操作吗?
SO 已经有一个问题;但解决方案不是很灵活。RESTORE FILELISTONLY的定义变化非常频繁。即便如此,该解决方案似乎也非常冗长。
是否有更简单的方法将查询结果存储到变量中并使用它们?对于任何编程语言来说,这都是小菜一碟。
获取逻辑名称:
Run Code Online (Sandbox Code Playgroud)RESTORE FILELISTONLY FROM DISK = 'D:SourceBackUpFile.bak' GO
恢复数据库:
Run Code Online (Sandbox Code Playgroud)RESTORE DATABASE DBName FROM DISK = 'D:SourceBackUpFile.bak' WITH RECOVERY MOVE 'SourceMDFLogicalName' TO 'D:TargetMDFFile.mdf', MOVE 'SourceLDFLogicalName' TO 'D:TargetLDFFile.ldf'
我们配置了完整备份和日志备份。
在恢复过程中,我们应用完整备份和后续日志备份。
我知道,如果我进行手动完整备份(非仅复制模式),那么它将破坏差异链。但在本例中没有差异备份。然而,存在事务日志链。由于仅非复制完整备份,该链是否会受到负面影响?
我想和你分享这个简单的片段(回答我自己的问题),我也很好奇你如何控制你的 SQL 服务器备份。
我正在尝试创建一个 SQL 作业来备份我的数据库。我希望有:
我开始使用维护计划来做这件事,但决定通过作业来管理它会更灵活。
我的问题是:如何命名备份文件?我是否使用日期命名约定命名它们并使用相同的约定来删除旧文件?有更容易的方法吗?
如果我想多了,应该使用维护计划,我也会很感激这个答案。
我们的旧数据库是 MySQL 5.1 服务器,已经有四年的历史了。如果我卸载 MySQL 5.1 Server 并安装最新版本并恢复备份,我会获得性能优势吗?我猜新版本发布说有很多性能优势。
是否可以在 SQL Sever 2008 R2 中查询每个数据库的上次成功备份日期(可能还有备份类型)?
好吧,我觉得这是一个糟糕的主意,但我需要一些帮助来理解为什么这很糟糕:
我仍在努力为我们的数据中心实施灾难恢复/业务连续性解决方案。我们正在运行 MSSQL 2008 Enterprise,我们计划在云中运行一个被动实例。目前我建议使用 Log Shipping,但我被要求探索使用 RSync(或类似的东西)将 MDF/LDF 文件增量推送到云,而不是使用内部工具。
目标是减少我们的占用空间,并且由于许可问题,大部分时间不运行云 SQL 实例(我们的被动/DR 许可证已在我们当前的数据中心中使用,但如果该中心出现故障,则该许可证可用) .
我找到了一个使用 VSS 创建和推送增量的解决方案,即使文件被锁定,但我想知道会出现什么样的问题。我可以得到一些见解吗?我们将每 15 分钟推送一次增量,有问题的数据库大约为 2GB,在 15 分钟的窗口中可能会生成 10 MB 的 T-Log。
我正在将我的服务器应用程序从现有系统迁移到另一个系统。不幸的是,现有系统也是数据库服务器。它存储了数据。是否可以将此数据复制到其他系统?我有所有表模式的副本。
我不知道如何继续。我正在使用 PostgreSQL。
我似乎找不到设置服务器属性的选项,该选项将使 SQL 数据库备份的压缩默认为 ON,因此我不必每次都手动设置它。
任何人都可以指出我。
sql-server backup sql-server-2008-r2 configuration compression
我想要做的是备份我们的生产数据库之一并将它们恢复为我们的开发数据库(覆盖那里的内容)。
这就是我备份的方式:
backup database [authfx] to disk = N'f:\db_backups\authfx\authfx-latest.bak'
with
noformat,
init,
name = N'authfx Latest Full Database Backup',
skip,
norewind,
nounload,
stats = 1;
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试恢复其他使用数据库
restore database [dev-authfx] from disk = N'f:\db_backups\authfx\authfx-latest.bak'
with
file = 1,
nounload,
replace,
stats = 1;
Run Code Online (Sandbox Code Playgroud)
它到处吠叫:
Msg 1834, Level 16, State 1, Line 10
The file 'E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\authfx.mdf' cannot be overwritten. It is being used by database 'authfx'.
Msg 3156, Level 16, State 4, Line 10
File 'authfx' cannot …Run Code Online (Sandbox Code Playgroud) backup ×10
sql-server ×7
restore ×3
compression ×1
mysql ×1
postgresql ×1
recovery ×1
t-sql ×1