sqlserver备份与恢复学习笔记Word格式文档下载.docx
《sqlserver备份与恢复学习笔记Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《sqlserver备份与恢复学习笔记Word格式文档下载.docx(9页珍藏版)》请在冰豆网上搜索。
alterdatabasemydbsetrestricted_userwithrollbackimmediate
go--更改数据库为单用户使用模式,并强制其他会话回滚
正在回滚不合法事务。
估计回滚已完成:
100%。
go--独占式访问数据库,可执行删除
正在删除数据库文件'
c:
\msdata\mydb_fg1_2.ndf'
。
\msdata\mydb_fg1_1.ndf'
\msdata\mydb_log.ldf'
\msdata\mydb_pri.mdf'
createdatabasemydb
onprimary
3>
(name='
mydb_pri'
filename='
4>
size=5mb,maxsize=15mb,filegrowth=1mb,
5>
filegroupmydb_fg1
6>
mydb_fg1_1'
7>
8>
mydb_fg1_2'
9>
size=5mb,maxsize=15mb,filegrowth=1mb
10>
logon
11>
mydb_log'
12>
13>
go--创建数据库mydb供操作用
CREATEDATABASE进程正在磁盘'
上分配5.00MB的空间。
alterdatabasemydbmodifyfilegroupmydb_fg1default
go--更改数据库默认文件组为mydb_fg1
文件组属性'
DEFAULT'
已设置。
selectcount(*frommaster..sysobjects
go
-----------
1266
(1行受到影响
usemydb
setrowcount1000
select*intot1frommaster..sysobjects
(1000行受到影响
insertintot1select*frommaster..sysobjects
selectcount(*fromt1
go--取系统表sysobjects的记录做数据源生成表t1,t1表在mydb_fg1上
2000
createtablet2(col1char(8000on[primary]
go--在primary文件组上建表t2,char(8000意味着一行的数据将占用一个page
insertintot2values('
a'
b'
c'
d'
e'
go--构造几条测试数据
alterdatabasemydbsetrecoveryfull
go--更改mydb数据库的恢复模式为full(默认恢复模式继承自model数据库
至此,练习环境准备完毕。
数据库mydb,两个文件组,3个数据文件一个日志文件。
二、下面做数据库备份后模拟简单情况下的数据文件丢失的恢复
备份:
1、做mydb的全库备份:
Backupdatabasemydbtodisk='
\bak\mydb_all.bak'
withformat
已处理112页,这些页属于数据库'
的文件'
(位于文件1上。
已处理32页,这些页属于数据库'
已处理1页,这些页属于数据库'
BACKUPDATABASE操作成功地处理了177页,花费了0.412秒(3.510MB/秒。
2、做mydb的差异备份
setrowcount500
deletefromt1
(500行受到影响
setrowcount0
deletefromt2wherecol1='
\bak\mydb_dif.b01'
withformat,differential
go--数据库差异备份(完全恢复模式下可选,差异备份不截断事务日志
已处理8页,这些页属于数据库'
已处理24页,这些页属于数据库'
BACKUPDATABASEWITHDIFFERENTIAL操作成功地处理了65页,花费了
0.364秒(1.443
MB/秒。
3、做mydb的日志备份
insertintot2values('
x'
y'
setrowcount100
(100行受到影响
backuplogmydbtodisk='
\bak\mydb_log.001'
go--数据库事务日志备份
已处理20页,这些页属于数据库'
BACKUPLOG操作成功地处理了20页,花费了0.190秒(0.829MB/秒。
1、模拟在服务器运行数据库关闭的状况下丢失一个次要文件时的恢复
usemaster
selectstatusfromsysdatabaseswherename='
go--查sysdatabases表知mydbautoclose=on
status
4194321
go--限制用户访问
go--数据库自动关闭(否则无法删除数据文件
1077938193--数据库已关闭
--在操作系统中删除mydb数据文件mydb_fg1_1.ndf,打开数据库报错
消息5105,级别16,状态5,服务器ANGEL,行1
设备激活错误。
物理文件名'
可能有误。
消息945,级别14,状态2,服务器ANGEL,行1
由于文件不可访问,或者内存或磁盘空间不足,所以无法打开数据库'
详细信息请参阅SQLServer错误日志。
/*说明:
这种情况下的文件丢失等同于服务器关闭后丢失文件,一般出现机率不大还原步骤:
A、先还原数据库完全备份mydb_all.baknorecovery
B、还原数据库差异备份mydb_dif.b01(因差异备份不截断日志,可选,若要恢复至改差异备份的时间点则recovery
C、还原事务日志备份mydb_log.001recovery
restoredatabasemydbfromdisk='
withnorecovery
RESTOREDATABASE操作成功地处理了177页,花费了0.267秒(5.417MB/秒。
mydb_f