加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql-server – 行使GUI规复数据库 – 要规复的文件错误

发布时间:2020-12-28 13:02:26 所属栏目:编程 来源:网络整理
导读:我只是搅散了SSMS图形界面并研究了“规复”使命的选项. 我留意到的一件事是当我点击“天生剧本”时,查询的第一行是: RESTORE DATABASE [MyDatabase] FROM DISK = N'Server_PatchDatabase_name_LOGSHIPPING.BKP' WITH FILE = 1,NORECOVERY,NOUNLOAD,STATS =

我只是搅散了SSMS图形界面并研究了“规复”使命的选项.

我留意到的一件事是当我点击“天生剧本”时,查询的第一行是:

RESTORE DATABASE [MyDatabase] FROM  DISK = N'Server_PatchDatabase_name_LOGSHIPPING.BKP' WITH  FILE = 1,NORECOVERY,NOUNLOAD,STATS = 5 ( and a lot of log backups for point in time )

好的,没题目,可是,我正在天天备份这个数据库.这个Database_name_LOGSHIPPING.BKP是我一个月前用于日记传送的文件的名称.

为什么当我实行行使SSMS图形界面来规复备份时,它指向此备份文件?我乃至没有这个文件了.

行使来自MSSQLTIPS的查询,我可以看到来自此数据库的全部备份:

SELECT 
CONVERT(CHAR(100),SERVERPROPERTY('Servername')) AS Server,msdb.dbo.backupset.database_name,msdb.dbo.backupset.backup_start_date,msdb.dbo.backupset.backup_finish_date,msdb.dbo.backupset.expiration_date,CASE msdb..backupset.type 
WHEN 'D' THEN 'Database' 
WHEN 'L' THEN 'Log' 
END AS backup_type,msdb.dbo.backupset.backup_size,msdb.dbo.backupmediafamily.logical_device_name,msdb.dbo.backupmediafamily.physical_device_name,msdb.dbo.backupset.name AS backupset_name,msdb.dbo.backupset.description 
FROM msdb.dbo.backupmediafamily 
INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id 
WHERE (CONVERT(datetime,102) >= GETDATE() - 7)   and  msdb..backupset.type ='D'
ORDER BY 
msdb.dbo.backupset.database_name,msdb.dbo.backupset.backup_finish_date

这也许有什么题目?我不是只行使COPY.

EDIT2:

我正在举办一般手动备份以举办测试,纵然这样,SQL Server也会选择不再存在的旧备份.运行RESTORE HEADERONLY时……它显然(显然)文件不存在.

编辑3:

这个GUI打印:



哇哇哇哇哇!

此数据库是从另一台处事器(沟通的处事器,差异的实例)还原. Huuum ……我以为题目出在这里.

你能在第二张图片中看到“处事器”吗?它有2台处事器.我正在行使名称为GDLIC2014的名称.

脚本:

备份剧本:

DECLARE @Patch varchar(1000)

SELECT @Patch = (SELECT 'PATCHFULLDATABASE_ ' + convert(varchar(500),GetDate(),112) + '.bkp') 

BACKUP DATABASE DATABASE TO DISK=@Patch with compression

行使MSSQLTIPS中的沟通查询,我可以找到这些功效,行使它没有日期范畴:

赤色方块是旧实例的错误备份,蓝色方块是最后一次备份(GUI应该行使它)

编辑4:

好吧,行使此查询列出备份汗青记录,我看到每个日记和完备列表都正确列出:

SELECT TOP 100
s.database_name,m.physical_device_name,CAST(CAST(s.backup_size / 1000000 AS INT) AS VARCHAR(14)) + ' ' + 'MB' AS bkSize,CAST(DATEDIFF(second,s.backup_start_date,s.backup_finish_date) AS VARCHAR(4)) + ' ' + 'Seconds' TimeTaken,CAST(s.first_lsn AS VARCHAR(50)) AS first_lsn,CAST(s.last_lsn AS VARCHAR(50)) AS last_lsn,CASE s.[type]
WHEN 'D' THEN 'Full'
WHEN 'I' THEN 'Differential'
WHEN 'L' THEN 'Transaction Log'
END AS BackupType,s.server_name,s.recovery_model
FROM msdb.dbo.backupset s
INNER JOIN msdb.dbo.backupmediafamily m ON s.media_set_id = m.media_set_id
WHERE s.database_name = DB_NAME() -- Remove this line for all the database
ORDER BY backup_start_date DESC,backup_finish_date
GO

EDIT5:

有什么对象可以从头启动数据库的问题

(我没有设法)

办理要领

备份汗青记录表中的某些内容差异步,UI将进入最后一次“同等”完备备份.假如您真正感乐趣的是为什么它正在做它正在做的工作,请启动仅限于您的帐户的探查器跟踪,遍历GUI中的规复步调,并查察跟踪中捕捉的呼吁,以表现UI在幕后执行的操纵.这将为您提供您正在探求的明晰谜底.

假如您只是想通过此操纵,可以通过EXEC [msdb]破除备份汗青记录.[dbo].[sp_delete_backuphistory] ??@ oldest_date = getdate()(按照您前次运行此时刻,您也许但愿破除它一次一个月),然后采纳新的,等等.我猜疑这将重置GUI以行使正确的备份.

最后,另一种选择是在Wayne Sheffield之前运行this script.它可以提供有关备份链的任何题目的更多信息.在我最初宣布这个谜底之前,我没有碰着过这个题目,但但愿未来可以辅佐其他人.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读