012_简单恢复模式

012_简单恢复模式

 

 

--将恢复模式改为简单恢复模式************************************************************************

ALTER DATABASE test SET recovery SIMPLE

 

 

--创建备份介质************************************************************************

 

--创建全备份介质

EXEC sp_addumpdevice

         @devtype=N'disk',@logicalname=N'test_back',@physicalname='E:\sql_2008\test_backup\test_full_01.bak'

        

--创建差异备份介质(创建两个介质,以示区别,后文将会把两个差异备份备份到一个介质)

EXEC sp_addumpdevice

         @devtype=N'disk',@logicalname=N'test_back_diff_01',@physicalname='E:\sql_2008\test_backup\test_diff_01.bak'

EXEC sp_addumpdevice

         @devtype=N'disk',@logicalname=N'test_back_diff_02',@physicalname='E:\sql_2008\test_backup\test_diff_02.bak'

 

 

 

 

--备份数据库************************************************************************

 

--备份完整数据库

backup database test to DISK=N'E:\sql_2008\test_backup\test_full_01.bak' WITH init

--或者这样写

--RESTORE DATABASE test to test_back WITH init

 

--修改数据库

CREATE TABLE test_simple_01(id int)

 

--差异备份(此时库中会有test_simple_01表)

backup database test to DISK=N'E:\sql_2008\test_backup\test_diff_01.bak' WITH differential

 

--修改数据库

CREATE TABLE test_simple_02(id int)

 

--差异备份(此时库中会有test_simple_02表)

backup database test to DISK=N'E:\sql_2008\test_backup\test_diff_01.bak' WITH differential

 

--修改数据库

CREATE TABLE test_simple_03(id int)

 

--差异备份(此时库中会有test_simple_03表)

backup database test to DISK=N'E:\sql_2008\test_backup\test_diff_02.bak' WITH differential

 

 

--还原数据库************************************************************************

 

--切换到master库

USE master

 

--还原到初始的完整备份时(此时没有新建的3个表)

RESTORE DATABASE test FROM DISK=N'E:\sql_2008\test_backup\test_full_01.bak' WITH NORECOVERY

--或者这样写

--RESTORE DATABASE test FROM test_back WITH norecovery

 

--还原到第一个差异备份(此时有test_simple_01表)

RESTORE DATABASE test FROM test_back_diff_01 WITH FILE =1,NORECOVERY

 

--还原到第二个差异备份(此时有test_simple_01表,test_simple_02表)

RESTORE DATABASE test FROM test_back_diff_01 WITH FILE =2,NORECOVERY

 

--还原到第三个差异备份(此时有test_simple_01表,test_simple_02表,test_simple_03表)

RESTORE DATABASE test FROM test_back_diff_02 WITH NORECOVERY

 

--结束此次还原(这个 with recovery 一定要在末尾执行)

RESTORE DATABASE test WITH recovery

 

 

 

 

--注意************************************************************************

 

--1.创建差异备份(省略参数)

EXEC sp_addumpdevice 'disk','test_back','E:\sql_2008\test_backup\test_01.bak'

--2.删除备份介质

EXEC sp_dropdevice test_back

--3.备份介质信息查询

SELECT * FROM sys.backup_devices

SELECT * FROM sys.sysdevices

--3.将数据库状态改为在线或下线

ALTER DATABASE test SET ONLINE

ALTER DATABASE test SET OFFLINE

--4.查询进程,锁

SELECT * FROM sys.sysprocesses

SELECT * FROM sys.databases

EXEC sp_who

EXEC sp_lock

KILL 53

--5.查询备份文件的相关信息

RESTORE HEADERONLY FROM DISK=N'E:\sql_2008\test_backup\test_01.bak'

RESTORE FILELISTONLY FROM DISK=N'E:\sql_2008\test_backup\test_01.bak'

RESTORE LABELONLY FROM DISK=N'E:\sql_2008\test_backup\test_01.bak'

--norecovery解释

--NORECOVERY

         --指示还原操作不回滚任何未提交的事务。如果稍后必须应用另一个事务日志,则应指定 NORECOVERY 或 STANDBY 选项。

--6.关于差异备份到同一文件的还原解释

--在备份的时候,message中显示文件被备份到了哪一个file中,所以在restore的时候,指定file序号就可以执行还原了。

 

posted @ 2015-02-10 21:55  黑白叹  阅读(155)  评论(0编辑  收藏  举报