如何解决如何在Docker上的SQL Server中从数据库备份查看.bak文件
在编写备份命令后,如何查看.bak文件?例如,当我运行一个包含此SQL的脚本时:
DECLARE @database NVARCHAR(75) = 'MyDatabase';
DECLARE @filename NVARCHAR(75) = 'C:\temp\MyDatabase.bak';
BACKUP DATABASE @database
TO DISK = @filename;
我收到一条消息,说备份已完成,但是,我无法转到该位置查看.bak文件。当我从“设备”>“文件”还原时,SSMS可以拾取该文件,但是在窗口浏览器或PowerShell提示符下都无法查看该文件。如何看到正在创建的备份文件?
编辑
该数据库是在docker容器内部运行的本地MS SQL Server Express。我认为它仍应像SQL Server的普通实例一样工作,但也许有人可以解释它的不同之处。
解决方法
如果您有权访问最初运行备份的SQL Server实例,则应该能够查询msdb:
SELECT * FROM msdb.dbo.backupset
WHERE database_name = 'MyDBname' AND type = 'D'
以下是将为我提供物理设备名称,备份开始日期,备份完成日期和备份大小的查询。
SELECT physical_device_name,backup_start_date,backup_finish_date,backup_size/1024.0 AS BackupSizeKB
FROM msdb.dbo.backupset b
JOIN msdb.dbo.backupmediafamily m ON b.media_set_id = m.media_set_id
WHERE database_name = 'YourDBname'
ORDER BY backup_finish_date DESC
,
您看不到备份文件,因为该文件是在Docker容器中运行的SQL实例中获取的。当您运行脚本进行备份时,备份将存储在SQL实例(而非SSMS)可用的存储中。 在此处检查如何访问:Accessing Docker container files from Windows,或在此处检查如何从Docker容器复制文件或将文件复制到Docker容器:{>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。