sql-server – 行使GUI规复数据库 – 要规复的文件错误
我只是搅散了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.它可以提供有关备份链的任何题目的更多信息.在我最初宣布这个谜底之前,我没有碰着过这个题目,但但愿未来可以辅佐其他人. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |