sql2008文件组恢复


--创建数据库
create database TEST on primary 
( name
=test_1,filename='d:\datafile\test_1.mdf',size=10MB,filegrowth=10%),
( name
=test_2,filename='d:\datafile\test_2.mdf',size=10MB,filegrowth=10% ),
filegroup second
( name
=test_3,filename='d:\datafile\test_3.mdf',size=10MB,filegrowth=10%),
( name
=test_4,filename='d:\datafile\test_4.mdf',size=10MB,filegrowth=10%)
log on
( name
=test_1_log,filename='d:\datafile\test_1.log',size=5MB,filegrowth=10%);


--全备
backup database test to disk='d:\bak\test_1.bak'
backup log test to disk = 'd:\bak\test_1_log.bak' with norecovery
GO

--继续测试
use test
drop table test_4
create table TEST_4 ( fileid int ) on [second]
declare @count int
set @count=1
while (@count<100)
begin
    
insert into TEST_4 values(@count)
    
set @count=@count+1
end 

--只备份第二个文件组
--
backup database test filegroup='second'file ='test_3' ,file='test_4' to disk='d:\bak\test_1_second.bak' with init
backup log test to disk='d:\bak\test_1_log_.log'
--
delete from TEST_4 where fileid<500




--还原
use master
RESTORE DATABASE test 
   
FILE = 'test_3',
   
FILE = 'test_4',
   FILEGROUP 
= 'second'
   
FROM disk ='d:\bak\test_1_second.bak'
   
WITH  norecovery ,replace
--注意在此并不能使数据库第二个文件组处理可使用状态
restore log test from disk='d:\bak\test_1_log_1.log' with recovery

查看数据文件状态

select * from sys.master_files where name like 'test%'
比较纠结的就是当你发恢复一个文件组你必须得不断的滚日志到最近.
关于stopat 的一点说明:
用传统备份即做一个完整备份,再做日志备份,可以很方便的用with recovery,stopat=''来恢复指定时间点的内容
但你用文件组备份时,必须备份尾日志。
这里我做一个案例分析:
我现在手头上有三个备份:
全备:    没有时间限制
文件组备份:2011-04-11 14:55:55.810
当数据库出问题时做了一个日志备份:2011-04-11 15:00:04.470
删数据时间:2011-04-11 14:56:33.107
那么恢复方式有哪几种呢:
一、恢复全备,再恢复日志备,加stopat参数可以回滚到14:56分时的数据
  脚本如下:
  use master
  restore database test from disk=N'd:\bak\test.bak' with replace,norecovery
  restore log test from disk=N'd:\bak\test_1.log' with recovery,replace,stopat='2011-04-11 14:56:00.093'
  但我们一般情况下没有那么幸运,有全备,并且在这种情况下文件组备份没有什么用处
二、假设只有文件组备份,那么我们必须有以前数据库的完整结构,参见:
  http://support.microsoft.com/kb/281122/zh-cn
  与其这样,我不如用数据库镜像,可能安全性比这个要高许多(我想到这,我禁不住把微软骂了一通,文件组备份这么弱,有什么用呢?浪费时间了:( ~~~~~ )
  

posted on 2011-03-18 16:28 snowhill 阅读(256) 评论(0)  编辑 收藏 引用 所属分类: 数据库-oracle


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

公告

又一年...........

留言簿(3)

随笔分类(13)

文章分类(131)

文章档案(124)

c++

java

linux

oracle

常用软件

其他

网络配置

系统安全

音乐

搜索

最新评论

阅读排行榜