楼主: ccsqlb

SQL Server:在没有完整备份的前提下做差异备份,居然成功了。不解。

[复制链接]
论坛徽章:
0
21#
 楼主| 发表于 2012-7-13 13:25 | 只看该作者
hwtong 发表于 2012-7-12 16:16
我看到你在9楼回复的步骤了.
但是我拿你的那个语句到我的测试机上运行,会报错.

你好,请问你的数据库版本是什么,请能否提供详细的信息,我想比对一下。谢谢。
select @@version

使用道具 举报

回复
论坛徽章:
26
ITPUB伯乐
日期:2012-05-22 15:05:35喜羊羊
日期:2015-05-14 12:15:30美羊羊
日期:2015-07-02 22:22:59秀才
日期:2015-08-24 09:51:48天枰座
日期:2015-11-05 16:53:35双鱼座
日期:2015-12-05 19:22:56巨蟹座
日期:2015-12-20 18:46:10摩羯座
日期:2016-05-19 09:54:17ITPUB15周年纪念
日期:2016-10-13 13:15:34秀才
日期:2017-02-22 15:16:26
22#
发表于 2012-7-13 13:34 | 只看该作者
ccsqlb 发表于 2012-7-13 13:25
你好,请问你的数据库版本是什么,请能否提供详细的信息,我想比对一下。谢谢。
select @@version

Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)   Apr  2 2010 15:48:46   Copyright (c) Microsoft Corporation  Developer Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

使用道具 举报

回复
招聘 : 数据库开发
论坛徽章:
3
奥运会纪念徽章:网球
日期:2012-06-25 14:58:22慢羊羊
日期:2015-03-04 14:53:332015年新春福章
日期:2015-03-06 11:58:39
23#
发表于 2012-7-14 17:38 | 只看该作者
呵呵,很奇怪的问题,很有创意的做法啊!

使用道具 举报

回复
论坛徽章:
46
凯迪拉克
日期:2013-08-22 10:00:10Jeep
日期:2013-08-10 07:21:13ITPUB社区12周年站庆徽章
日期:2013-10-08 14:57:28ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:07奥运会纪念徽章:体操
日期:2008-10-24 13:08:31会员2007贡献徽章
日期:2007-09-26 18:42:10马上加薪
日期:2014-04-11 09:34:11秀才
日期:2015-09-06 10:19:32
24#
发表于 2012-7-16 22:09 | 只看该作者
create database demotest

命令已成功完成。


sp_helpdb demotest
Status=ONLINE, Updateability=READ_WRITE, UserAccess=MULTI_USER, Recovery=FULL, Version=655, Collation=Chinese_PRC_CI_AS, SQLSortOrder=0, IsAutoCreateStatistics, IsAutoUpdateStatistics, IsFullTextEnabled


BACKUP DATABASE [demotest]
TO  DISK = N'C:\MyExe\demotest.diff'
  WITH  DIFFERENTIAL , NOFORMAT, INIT,
    NAME = N'demo-差异数据库备份', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

消息3035,级别16,状态1,第1 行
无法执行数据库"demotest" 的差异备份,因为不存在当前数据库备份。请去掉WITH DIFFERENTIAL 选项后重新发出BACKUP DATABASE 以执行数据库的完整备份。
消息3013,级别16,状态1,第1 行
BACKUP DATABASE 正在异常终止。


select @@VERSION


----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (Intel X86)
        Sep 22 2011 00:28:06
        Copyright (c) 1988-2008 Microsoft Corporation
        Enterprise Edition on Windows NT 6.0 <X86> (Build 6002: Service Pack 2)


(1 行受影响)


从头开始做的测试,结论是不能成功。

使用道具 举报

回复
求职 : 技术总监
论坛徽章:
39
会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB社区12周年站庆徽章
日期:2013-10-08 17:44:42ITPUB社区千里马徽章
日期:2013-08-22 09:58:03ITPUB社区千里马徽章
日期:2013-06-09 10:15:342013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14最佳人气徽章
日期:2012-03-13 17:39:18ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282011新春纪念徽章
日期:2011-01-04 10:24:02ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51
25#
发表于 2012-7-17 11:18 | 只看该作者
我在新建一个数据库上执行差异备份,出错。
会提示没有一个完整的备份,去掉 with differential 后再执行back database操作。

使用道具 举报

回复
求职 : 技术总监
论坛徽章:
39
会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB社区12周年站庆徽章
日期:2013-10-08 17:44:42ITPUB社区千里马徽章
日期:2013-08-22 09:58:03ITPUB社区千里马徽章
日期:2013-06-09 10:15:342013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14最佳人气徽章
日期:2012-03-13 17:39:18ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282011新春纪念徽章
日期:2011-01-04 10:24:02ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51
26#
发表于 2012-7-17 11:21 | 只看该作者
正如25楼的那样,就是不能成功执行的。

使用道具 举报

回复
论坛徽章:
46
凯迪拉克
日期:2013-08-22 10:00:10Jeep
日期:2013-08-10 07:21:13ITPUB社区12周年站庆徽章
日期:2013-10-08 14:57:28ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:07奥运会纪念徽章:体操
日期:2008-10-24 13:08:31会员2007贡献徽章
日期:2007-09-26 18:42:10马上加薪
日期:2014-04-11 09:34:11秀才
日期:2015-09-06 10:19:32
27#
发表于 2012-7-17 12:05 | 只看该作者
在另一个库上执行差异备份,成功执行了,
BACKUP DATABASE [demo]
TO  DISK = N'C:\MyExe\demo.diff'
  WITH  DIFFERENTIAL , NOFORMAT, INIT,
    NAME = N'demo-差异数据库备份', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

已处理百分之 10。
已处理百分之 21。
已处理百分之 32。
已处理百分之 43。
已处理百分之 54。
已处理百分之 65。
已处理百分之 70。
已处理百分之 81。
已处理百分之 92。
已为数据库 'demo',文件 'demo' (位于文件 1 上)处理了 144 页。
已处理百分之 100。
已为数据库 'demo',文件 'demo_log' (位于文件 1 上)处理了 4 页。
BACKUP DATABASE WITH DIFFERENTIAL 成功处理了 148 页,花费 0.644 秒(1.784 MB/秒)。

查看备份记录,发现以前做过一次全备,
physical_device_name        backup_set_id        first_lsn        last_lsn        checkpoint_lsn        database_backup_lsn        backup_start_date        backup_finish_date        type        differential_base_lsn
C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\demo.bak        1        295000000016000037        295000000017800001        295000000016000037        0        2012-03-29 18:48:01.000        2012-03-29 18:48:02.000        D        NULL
C:\MyExe\demo.diff        2        295000000049400001        296000000001600001        295000000049400001        295000000016000037        2012-07-16 22:02:55.000        2012-07-16 22:02:56.000        I        295000000016000037
C:\MyExe\demo.diff        4        296000000003500115        296000000008400001        296000000003500115        295000000016000037        2012-07-17 11:49:03.000        2012-07-17 11:49:03.000        I        295000000016000037

但备份文件已经不存在,尝试进行恢复,没有成功。
RESTORE DATABASE [demotest]
FROM  DISK = N'C:\MyExe\demo.diff'
  WITH  FILE = 1,
  MOVE N'demo' TO N'C:\DATA\demotest.mdf',
  MOVE N'demo_log' TO N'C:\DATA\demotest_1.ldf',  NOUNLOAD,  STATS = 10
GO

消息 3118,级别 16,状态 1,第 1 行
数据库 "demotest" 不存在。RESTORE 只能在还原主文件的完整备份或文件备份时创建数据库。
消息 3013,级别 16,状态 1,第 1 行
RESTORE DATABASE 正在异常终止。

使用道具 举报

回复
论坛徽章:
46
凯迪拉克
日期:2013-08-22 10:00:10Jeep
日期:2013-08-10 07:21:13ITPUB社区12周年站庆徽章
日期:2013-10-08 14:57:28ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:07奥运会纪念徽章:体操
日期:2008-10-24 13:08:31会员2007贡献徽章
日期:2007-09-26 18:42:10马上加薪
日期:2014-04-11 09:34:11秀才
日期:2015-09-06 10:19:32
28#
发表于 2012-7-17 12:16 | 只看该作者
DBA有时不能光看有没有备份,更应检查备份集是否完备,否则到真正需要恢复的时候,那就只有被BOSS骂的份了。

使用道具 举报

回复
论坛徽章:
46
凯迪拉克
日期:2013-08-22 10:00:10Jeep
日期:2013-08-10 07:21:13ITPUB社区12周年站庆徽章
日期:2013-10-08 14:57:28ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:07奥运会纪念徽章:体操
日期:2008-10-24 13:08:31会员2007贡献徽章
日期:2007-09-26 18:42:10马上加薪
日期:2014-04-11 09:34:11秀才
日期:2015-09-06 10:19:32
29#
发表于 2012-7-17 12:42 | 只看该作者
继续测试:
先清除DEMO数据库的备份信息:
Use msdb
dbo.sp_delete_database_backuphistory demo

select b.physical_device_name, backup_set_id,first_lsn,last_lsn,checkpoint_lsn,database_backup_lsn,
backup_start_date,backup_finish_date,type,differential_base_lsn
from backupset a join backupmediafamily b on a.media_set_id=b.media_set_id
where database_name='demo'

(0 行受影响)

BACKUP DATABASE [demo]
TO  DISK = N'C:\MyExe\demo.diff'
  WITH  DIFFERENTIAL , NOFORMAT, INIT,
    NAME = N'demo-差异数据库备份', SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

已处理百分之11。
已处理百分之22。
已处理百分之33。
已处理百分之44。
已处理百分之55。
已处理百分之61。
已处理百分之72。
已处理百分之83。
已处理百分之94。
已为数据库'demo',文件'demo' (位于文件1 上)处理了144 页。
已处理百分之100。
已为数据库'demo',文件'demo_log' (位于文件1 上)处理了1 页。
BACKUP DATABASE WITH DIFFERENTIAL 成功处理了145 页,花费0.411 秒(2.739 MB/秒)。


select b.physical_device_name, backup_set_id,first_lsn,last_lsn,checkpoint_lsn,database_backup_lsn,
backup_start_date,backup_finish_date,type,differential_base_lsn
from backupset a join backupmediafamily b on a.media_set_id=b.media_set_id
  where database_name='demo'

physical_device_name  backup_set_id  first_lsn           last_lsn
C:\MyExe\demo.diff    5              296000000008400001  296000000008600001
checkpoint_lsn      database_backup_lsn    backup_start_date
296000000008400001  295000000016000037     2012-07-17 12:33:06.000
backup_finish_date       type    differential_base_lsn
2012-07-17 12:33:06.000  I       295000000016000037


恢复数据库:
RESTORE DATABASE [demotest]
FROM  DISK = N'C:\MyExe\demo.diff'
  WITH  FILE = 1,
  MOVE N'demo' TO N'C:\MyExe\demotest.mdf',
  MOVE N'demo_log' TO N'C:\MyExe\demotest_1.ldf',  NOUNLOAD,  STATS = 10
GO

消息3118,级别16,状态1,第1 行
数据库"demotest" 不存在。RESTORE 只能在还原主文件的完整备份或文件备份时创建数据库。
消息3013,级别16,状态1,第1 行
RESTORE DATABASE 正在异常终止。

差异备份命令执行成功,但因缺少完整备份,数据库不能恢复。

使用道具 举报

回复
论坛徽章:
46
凯迪拉克
日期:2013-08-22 10:00:10Jeep
日期:2013-08-10 07:21:13ITPUB社区12周年站庆徽章
日期:2013-10-08 14:57:28ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:07奥运会纪念徽章:体操
日期:2008-10-24 13:08:31会员2007贡献徽章
日期:2007-09-26 18:42:10马上加薪
日期:2014-04-11 09:34:11秀才
日期:2015-09-06 10:19:32
30#
发表于 2012-7-17 13:39 | 只看该作者
看来在什么地方,还保留了数据库的备份信息。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表