备份的两种形式:完全备份和差异备份

标签:
it |
分类: 【OK】数据库专题 |
-------------------------------------------
(1)是备份的基准。在做备份时第一次备份都建议使用完全备份。
(2)完全备份会备份数据库的所有数据文件、数据对象和数据。
(3)会备份事务日志中任何未提交的事务。因为已提交的事务已经写入数据文件中。
--------------------------------------------
backup database d1 to bak1 with init --完全备份
backup database d1 to bak1 with noinit
----------------------------------------------------------------------
2)差异备份
---------------------------------------------
(1)基于完全备份。
(2)备份自最近一次完全备份以来的所有数据库改变。
(3)恢复时,只应用最近一次完全备份和最新的差异备份。
-----------------------------------------------
backup database d2 to bak2 with init,name='d2_full' --差异备份,第一次备份时应做完全备份
create table b1(c1 int not null,c2 char(10) not null)
backup database d2 to bak2 with differential,name='d2_diff1'
insert b1 values(1,'a')
backup database d2 to bak2 with differential,name='d2_diff2'
insert b1 values(2,'b')
backup database d2 to bak2 with differential,name='d2_diff3'
insert b1 values(3,'c')
backup database d2 to bak2 with differential,name='d2_diff4'
restore headeronly from bak2
差异数据库备份的还原
差异数据库备份指记录自上次数据库备份后发生更改的数据,那么上次备份是指什么样的备份呢,指完整备份,不是指差异备份,所以还原差异数据库备份时,只需要先还原完整备份,然后选择一个差异数据库备份即可完成还原操作。
企业管理器,如图,选择一个完整数据库备份,再选择一个差异数据库备份,单击“确定”按钮即可。
http://www.cftea.com/upload/20051221090118898434.jpg
从文件组或文件还原也比较简单。比较复杂的是从设备,要分两步还原。
第一步、还原完整数据库备份,请注意图中红色部分。如果完整数据库备份是单独的一个文件就不必在乎备份号。还原之后数据库显示“正在装载”,不予理会,进行第二步。
http://www.cftea.com/upload/20051221090122441036.jpg
http://www.cftea.com/upload/20051221090126092159.jpg
第二步、还原差异数据库备份,请注意图中红色部分。如果差异数据库备份是单独的一个文件就不必在乎备份号。最后点击确定就完成了数据库还原。
http://www.cftea.com/upload/20051221090134655392.jpg
使用T-SQL就比较简单了,如下,具体语法请参见SQL Server联机丛书,注意的是第一个还原要使用norecovery参数。
restore database f1 from disk='E:\foo' with file=1, move 'foo_data'
to 'D:\foo.mdf', move 'foo_log' to 'D:\foo.ldf',
norecovery
restore database f1 from disk='E:\foo' with file=4, recovery