如何创建一个损坏的.bak文件进行测试?

时间:2014-12-19 16:52:31

标签: sql-server tsql

我知道这是一个奇怪的问题,但是为了测试目的,是否有可能为MS SQL Server数据库故意制作.bak文件?我想让它损坏,以便我可以尝试通过故障排除进行恢复,并提高我的数据库恢复故障排除技能。

干杯!

3 个答案:

答案 0 :(得分:0)

你可以通过文本编辑器打开它并更改一些艺术来破坏.bak文件,但是你无法恢复这个文件。 另一种方法是使用unix dd命令(你可以找到windows可执行文件)。

此致 Giova

答案 1 :(得分:0)

您可以创建备份,然后编辑其内容。这将使您的备份文件损坏。我相信 RedGate 有非常好的处理文件的脚本,您可以在此处阅读更多相关信息: https://www.red-gate.com/simple-talk/sql/t-sql-programming/reading-and-writing-files-in-sql-server-using-t-sql/

这是一个示例:

create database MyDb
go
Backup database MyDb to disk='C:\MyDb\Mydb.bak'
go

declare @currentContent nvarchar(max)
set @currentContent = (Select dbo.[ufsReadfileAsString]('c:\MyDb','MyDb.bak'))
set @currentContent = @currentContent +'some text'
execute spWriteStringToFile @currentContent, 'c:\MyDb','MyDb_Corrupted.bak'
go

现在 MyDb_Corrupted.bak 是损坏的文件,MyDb.bak 是健康的备份文件。请注意,为了执行此脚本,您应该使用以下脚本启用 Ole Automation Procedure

 exec sp_configure 'Ole Automation Procedures','1'
 reconfigure

答案 2 :(得分:0)

我认为即使您选择任何 test/word 文档文件并将其重命名为 .bak,SQL 也会将其识别为损坏的!