找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 2907|回复: 3

[数据库知识] 数据库备份方案

[复制链接]
发表于 2015-8-22 16:07:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×
--1.完整备份+差异备份
Create Database Back

Alter database Back Set Recovery Simple

Use Back

Create Table Test
(
        Col Varchar(100)
)

Insert Into Test Values('完整备份')
Backup database Back to disk='c:\Back1.bak'

Insert Into Test Values('差异备份1')
backup database Back to disk='c:\Back2.bak' With DIFFERENTIAL

Insert Into Test Values('差异备份2')
backup database Back to disk='c:\Back3.bak' With DIFFERENTIAL

Use master

--还原数据库1
Restore Database Back From Disk='C:\Back1.bak' With Recovery,REPLACE
Select * From Back.dbo.Test

--还原数据库2
Restore Database Back From Disk='C:\Back1.bak' With noRecovery,REPLACE
Restore Database Back From Disk='C:\Back2.bak' With Recovery
Select * From Back.dbo.Test

--还原数据库3
Restore Database Back From Disk='C:\Back1.bak' With noRecovery,REPLACE
Restore Database Back From Disk='C:\Back3.bak' With Recovery
Select * From Back.dbo.Test

--删除备份文件
EXECUTE master.dbo.xp_delete_file 0,N'C:',N'bak',N'2015-07-05'

--删除数据库
Drop DataBase Back


--2.完整备份+日志备份
Create Database Back

Use Back


Create Table Test
(
        Col Varchar(100)
)

Insert Into Test Values('完整备份')
Backup Database Back To Disk='C:\Back.bak' With Init

Insert Into Test Values('日志备份1')
Backup Log Back To Disk='C:\Back_Log1.bak' With Init

Insert Into Test Values('日志备份2')
Backup Log Back To Disk='C:\Back_Log2.bak' With Init

Use master

--还原数据库1
Restore Database Back From Disk='C:\Back.bak' With Recovery,REPLACE
Select * From Back.dbo.Test

--还原数据库1
Restore Database Back From Disk='C:\Back.bak' With NoRecovery,REPLACE
Restore Log Back From Disk='C:\Back_Log1.bak' With Recovery
Select * From Back.dbo.Test

--还原数据库2
Restore Database Back From Disk='C:\Back.bak' With NoRecovery,REPLACE
Restore Log Back From Disk='C:\Back_Log1.bak' With NoRecovery
Restore Log Back From Disk='C:\Back_Log2.bak' With Recovery
Select * From Back.dbo.Test

/*
--还原数据库3
Restore Database Back From Disk='C:\Back.bak' With NoRecovery,REPLACE
Restore Log Back From Disk='C:\Back_Log1.bak' With NoRecovery
Restore Log Back From Disk='C:\Back_Log2.bak' With Recovery,Stopat='2015-07-04 10:59:43'
Select * From Back.dbo.Test
*/

/*
如果数据库显示正在还原
Restore Database Back With Recovery
*/

--删除备份文件
EXECUTE master.dbo.xp_delete_file 0,N'C:',N'bak',N'2015-07-05'

--删除数据库
Drop DataBase Back

--3.完整备份+差异备份+日志备份
Create Database Back

Use Back

Create Table Test
(
        Col Varchar(100)
)

Insert Into Test Values('完整备份')
Backup Database Back To Disk='C:\Back.bak'

Insert Into Test Values('日志备份1')
Backup Log Back To Disk='C:\Back_Log1.bak'

Insert Into Test Values('日志备份2')
Backup Log Back To Disk='C:\Back_Log2.bak'


Insert Into Test Values('差异备份1')
Backup Database Back To Disk='C:\Chay1.bak' With DIFFERENTIAL

Insert Into Test Values('日志备份3')
Backup Log Back To Disk='C:\Back_Log3.bak'

Insert Into Test Values('日志备份4')
Backup Log Back To Disk='C:\Back_Log4.bak'

Insert Into Test Values('差异备份2')
Backup Database Back To Disk='C:\Chay2.bak' With DIFFERENTIAL

Insert Into Test Values('日志备份5')
Backup Log Back To Disk='C:\Back_Log5.bak'

Insert Into Test Values('日志备份6')
Backup Log Back To Disk='C:\Back_Log6.bak'

Use master

--还原数据库1
Restore Database Back From Disk='C:\Back.bak' With Recovery,REPLACE
Select * From Back.dbo.Test

--还原数据库2
Restore Database Back From Disk='C:\Back.bak' With NoRecovery,REPLACE
Restore Log Back From Disk='C:\Back_Log1.bak' With Recovery
Select * From Back.dbo.Test

--还原数据库3
Restore Database Back From Disk='C:\Back.bak' With NoRecovery,REPLACE
Restore Log Back From Disk='C:\Back_Log1.bak' With NoRecovery
Restore Log Back From Disk='C:\Back_Log2.bak' With Recovery
Select * From Back.dbo.Test

--还原数据库4
Restore Database Back From Disk='C:\Back.bak' With NoRecovery,REPLACE
Restore Database Back From Disk='C:\Chay1.bak' With Recovery
Select * From Back.dbo.Test

--还原数据库5
Restore Database Back From Disk='C:\Back.bak' With NoRecovery,REPLACE
Restore Database Back From Disk='C:\Chay1.bak' With noRecovery
Restore Log Back From Disk='C:\Back_Log3.bak' With Recovery
Select * From Back.dbo.Test

--还原数据库6
Restore Database Back From Disk='C:\Back.bak' With NoRecovery,REPLACE
Restore Database Back From Disk='C:\Chay1.bak' With noRecovery
Restore Log Back From Disk='C:\Back_Log3.bak' With noRecovery
Restore Log Back From Disk='C:\Back_Log4.bak' With Recovery
Select * From Back.dbo.Test

--还原数据库7
Restore Database Back From Disk='C:\Back.bak' With NoRecovery,REPLACE
Restore Database Back From Disk='C:\Chay2.bak' With Recovery
Select * From Back.dbo.Test

--还原数据库8
Restore Database Back From Disk='C:\Back.bak' With NoRecovery,REPLACE
Restore Database Back From Disk='C:\Chay2.bak' With NoRecovery
Restore Log Back From Disk='C:\Back_Log5.bak' With Recovery
Select * From Back.dbo.Test

--还原数据库9
Restore Database Back From Disk='C:\Back.bak' With NoRecovery,REPLACE
Restore Database Back From Disk='C:\Chay2.bak' With NoRecovery
Restore Log Back From Disk='C:\Back_Log5.bak' With NoRecovery
Restore Log Back From Disk='C:\Back_Log6.bak' With Recovery
Select * From Back.dbo.Test

--删除备份文件
EXECUTE master.dbo.xp_delete_file 0,N'C:',N'bak',N'2015-07-05'

--删除数据库
Drop DataBase Back

--4.完整备份+日志备份(按页面还原数据库)
Create Database Back

Use Back

Create Table Test
(
        Col Varchar(100)
)

Insert Into Test Values('完整备份')
Backup Database Back To Disk='C:\Back.bak'

Insert Into Test Values('日志备份1')
Backup Log Back To Disk='C:\Back_Log1.bak'

Insert Into Test Values('日志备份2')
Backup Log Back To Disk='C:\Back_Log2.bak'

--得到Test表的数据页
Select * from msdb.dbo.suspect_pages
DBCC TRACEON (3604,-1)
DBCC IND([back], 'Test', -1)  
DBCC PAGE([back], 1, 22,3)  
DBCC TRACEOFF (3604,-1)


Use master

--还原数据库2
Restore Database Back page='1:22' From Disk='C:\Back.bak' With NoRecovery,REPLACE
Restore Log Back From Disk='C:\Back_Log1.bak' With NoRecovery
Restore Log Back From Disk='C:\Back_Log2.bak' With NoRecovery
Backup Log Back To Disk='C:\Back_Log3.bak'
Restore Log Back From Disk='C:\Back_Log3.bak' With Recovery
select * from back.dbo.Test

--删除备份文件
EXECUTE master.dbo.xp_delete_file 0,N'C:',N'bak',N'2015-07-05'

--删除数据库
Drop DataBase Back

--还原时间点Stopat根据实际操作而定


发表于 2015-8-23 11:56:54 | 显示全部楼层
好复杂的样子
回复 点赞 拍砖

使用道具 举报

发表于 2015-8-23 16:07:39 | 显示全部楼层
看不懂,不好意思。
回复 点赞 拍砖

使用道具 举报

发表于 2015-10-12 15:18:37 | 显示全部楼层
学习学习。。。。。。。。
回复 点赞 拍砖

使用道具 举报

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

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-5-29 14:47 , Processed in 0.023514 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表