数据库备份和恢复秩序的关系(周围环境:Microsoft SQL Server 2008 R2)

让我们来看看在备份序列新手

--1、塔建环境(生成测试数据和备份文件)

/*
測试环境:
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)   Apr  2 2010 15:48:46   Copyright (c) Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
*/
USE master
go
--创建測试
CREATE DATABASE db
GO

USE db
GO
CREATE TABLE Test(ID INT); 

--生成备份文件 0.bak
BACKUP DATABASE db TO DISK=‘d:\0.bak‘ WITH FORMAT
GO
--1
INSERT test SELECT 1
go
--生成备份文件 1.trn
BACKUP LOG db TO DISK=‘d:\1.trn‘ WITH FORMAT
go
--2
INSERT test SELECT 2
go
--生成备份文件 2.trn
BACKUP LOG db TO DISK=‘d:\2.trn‘ WITH FORMAT
go
--3
INSERT test SELECT 3
go
--生成备份文件 3.dif
BACKUP DATABASE db TO DISK=‘d:\3.dif‘ WITH FORMAT,DIFFERENTIAL
go
--4
INSERT test SELECT 4
go
--生成备份文件 4.trn
BACKUP LOG db TO DISK=‘d:\4.trn‘ WITH FORMAT
--5
INSERT test SELECT 5
go
--生成备份文件 5.dif
BACKUP DATABASE db TO DISK=‘d:\5.dif‘ WITH FORMAT,DIFFERENTIAL
--6
INSERT test SELECT 6	

--生成备份文件 6.trn
BACKUP LOG db TO DISK=‘d:\6.trn‘ WITH FORMAT

--7
INSERT test SELECT 7

--生成备份文件 7.trn
BACKUP LOG db TO DISK=‘d:\7.trn‘ WITH FORMAT

GO
--
SELECT * FROM dbo.Test
/*
ID
1
2
3
4
5
6
7
*/

2、查看备份文件关系

SELECT  a.database_name
       ,CASE a.type
          WHEN ‘D‘ THEN ‘full‘
          WHEN ‘I‘ THEN ‘differential‘
          WHEN ‘L‘ THEN ‘log‘
          WHEN ‘F‘ THEN ‘file / filegroup‘
          WHEN ‘G‘ THEN ‘differential file‘
          WHEN ‘P‘ THEN ‘partial‘
          WHEN ‘Q‘ THEN ‘differential partial‘
        END AS [type]	--备份类型。

能够是:D = 数据库 I = 差异数据库 L = 日志 F = 文件或文件组 G = 差异文件 P = 部分 Q = 差异部分 能够为 NULL。
       ,b.physical_device_name
       ,a.first_lsn
       ,a.last_lsn
       ,a.differential_base_lsn
FROM    msdb.dbo.backupset a
        INNER JOIN msdb.dbo.backupmediafamily b ON a.media_set_id = b.media_set_id
WHERE   a.database_name = ‘db‘
ORDER BY a.backup_start_date
       ,b.family_sequence_number

3、还原顺序

USE master
go
--1. 恢复时使用错误的日志顺序
--1.1
RESTORE DATABASE db FROM DISK=‘d:\0.bak‘ WITH REPLACE;

--查看
SELECT * FROM db.dbo.Test
/*
ID
*/
go
--1.2
RESTORE DATABASE db FROM DISK=‘d:\0.bak‘ WITH REPLACE,NORECOVERY
RESTORE LOG db FROM DISK=‘d:\1.trn‘ 

--查看
SELECT * FROM db.dbo.Test
/*
ID
1
*/
go
--1.3
RESTORE DATABASE db FROM DISK=‘d:\0.bak‘ WITH REPLACE,NORECOVERY
RESTORE LOG db FROM DISK=‘d:\1.trn‘ WITH NORECOVERY
RESTORE LOG db FROM DISK=‘d:\2.trn‘
--查看
SELECT * FROM db.dbo.Test
/*
ID
1
2
*/
go
--1.4
RESTORE DATABASE db FROM DISK=‘d:\0.bak‘ WITH REPLACE,NORECOVERY
RESTORE DATABASE db FROM DISK=‘d:\3.dif‘
--查看
SELECT * FROM db.dbo.Test
/*
ID
1
2
3
*/
go
--1.5
--1.5.1
RESTORE DATABASE db FROM DISK=‘d:\0.bak‘ WITH REPLACE,NORECOVERY
RESTORE DATABASE db FROM DISK=‘d:\3.dif‘ WITH NORECOVERY
RESTORE LOG db FROM DISK=‘d:\4.trn‘
--查看
SELECT * FROM db.dbo.Test
/*
ID
1
2
3
4
*/
GO
--1.5.2
RESTORE DATABASE db FROM DISK=‘d:\0.bak‘ WITH REPLACE,NORECOVERY
RESTORE DATABASE db FROM DISK=‘d:\1.trn‘ WITH NORECOVERY
RESTORE DATABASE db FROM DISK=‘d:\2.trn‘ WITH NORECOVERY
RESTORE LOG db FROM DISK=‘d:\4.trn‘
--查看
SELECT * FROM db.dbo.Test
/*
ID
1
2
3
4
*/
go
--1.6
RESTORE DATABASE db FROM DISK=‘d:\0.bak‘ WITH REPLACE,NORECOVERY
RESTORE DATABASE db FROM DISK=‘d:\5.dif‘
--查看
SELECT * FROM db.dbo.Test
/*
ID
1
2
3
4
5
*/
go
--1.7
--1.7.1
RESTORE DATABASE db FROM DISK=‘d:\0.bak‘ WITH REPLACE,NORECOVERY
RESTORE DATABASE db FROM DISK=‘d:\5.dif‘ WITH NORECOVERY
RESTORE LOG db FROM DISK=‘d:\6.trn‘
--查看
SELECT * FROM db.dbo.Test
/*
ID
1
2
3
4
5
6
*/
go
--1.7.2
RESTORE DATABASE db FROM DISK=‘d:\0.bak‘ WITH REPLACE,NORECOVERY
RESTORE LOG db FROM DISK=‘d:\1.trn‘ WITH NORECOVERY
RESTORE LOG db FROM DISK=‘d:\2.trn‘ WITH NORECOVERY
RESTORE LOG db FROM DISK=‘d:\4.trn‘ WITH NORECOVERY
RESTORE LOG db FROM DISK=‘d:\6.trn‘
--查看
SELECT * FROM db.dbo.Test
/*
ID
1
2
3
4
5
6
*/
go
--1.8
--1.8.1
RESTORE DATABASE db FROM DISK=‘d:\0.bak‘ WITH REPLACE,NORECOVERY
RESTORE DATABASE db FROM DISK=‘d:\5.dif‘ WITH NORECOVERY
RESTORE LOG db FROM DISK=‘d:\6.trn‘ WITH NORECOVERY
RESTORE LOG db FROM DISK=‘d:\7.trn‘
--查看
SELECT * FROM db.dbo.Test
/*
ID
1
2
3
4
5
6
7
*/
go
--1.8.2
RESTORE DATABASE db FROM DISK=‘d:\0.bak‘ WITH REPLACE,NORECOVERY
RESTORE LOG db FROM DISK=‘d:\1.trn‘ WITH NORECOVERY
RESTORE LOG db FROM DISK=‘d:\2.trn‘ WITH NORECOVERY
RESTORE LOG db FROM DISK=‘d:\4.trn‘ WITH NORECOVERY
RESTORE LOG db FROM DISK=‘d:\6.trn‘ WITH NORECOVERY
RESTORE LOG db FROM DISK=‘d:\7.trn‘
--查看
SELECT * FROM db.dbo.Test
/*
ID
1
2
3
4
5
6
7
*/

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-12-26 16:43:19

数据库备份和恢复秩序的关系(周围环境:Microsoft SQL Server 2008 R2)的相关文章

数据库备份还原顺序关系(环境:Microsoft SQL Server 2008 R2)

让新手们了解一下备份顺序 --1.塔建环境(生成测试数据和备份文件) /* 测试环境: Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) */ USE maste

Microsoft SQL Server 2008 R2附加数据库报错5120解决办法

Microsoft SQL Server 2008 R2数据库附加报错5120,是权限的问题解决办法:邮件数据库文件的属性选中Authenticated Users 然后选中编辑把完全控制勾选上 单击确定,然后就可以附加数据库了 ! 若有疑问可以联系我www.jiangyong.net.cn,里面有我的QQ

SQL Server 2008 R2 附加数据库 “尝试打开或创建物理文件 拒绝访问”的解决办法

其实是来自一篇SQL Server 2005同样错误的帖子,不过试了在SQL Server 2008 R2下面也有效,记录一下. 解决方法: 在所有程序—Microsoft SQL Server 2008 R2—配置工具—SQL Server 配置管理器,点击"SQL Server 服务",右边会显示正在运行的服务,以及对应的用户,右击SQL Server (MSSQLSERVER),选择“属性”,把内置帐户选择为"Local System",点击重新启动就OK了.

SQL Server 2008 R2数据库镜像部署图文教程

数据库镜像是一种针对数据库高可用性的基于软件的解决方案.其维护着一个数据库的两个相同的副本,这两个副本分别放置在不同的SQL Server数据库实例中 概述 “数据库镜像”是一种针对数据库高可用性的基于软件的解决方案.其维护着一个数据库的两个相同的副本,这两个副本分别放置在不同的SQL Server数据库实例中.建议使用不同位置的两台服务器来承载.在同一时刻,其中一台上的数据库用于客户端访问,充当“主体服务器”角色:而另一台则根据镜像会话的配置和状态,充当热备份服务器,即“镜像服务器角色”,这两

SQL Server 2008 R2 主从数据库同步(日志传送的方式 Log Shipping)

注意事项: 1.为主从服务器添加新的系统用户并设置好密码: 2.主从服务器都开启SQL Server的代理服务,并设置为开机自动启动 3.在数据库配置管理其中把SQL Server服务和SQL Server的代理服务的登录信息设置为上边添加的系统用户,并设置好密码.(记得主从服务器都需要这样设置,不要忘记了,我都是忘记了,怎么弄都不行) 4.用户共享的文件目录,共享访问时需要密码,记得要先访问共享并记住凭证,不然会提示失败. 5.SQL Server的备份,是主库的数据库服务器自动备份数据库,生

SQL Server 2008 R2数据库镜像部署

概述 "数据库镜像"是一种针对数据库高可用性的基于软件的解决方案.其维护着一个数据库的两个相同的副本,这两个副本分别放置在不同的SQL Server数据库实例中.建议使用不同位置的两台服务器来承载.在同一时刻,其中一台上的数据库用于客户端访问,充当"主体服务器"角色:而另一台则根据镜像会话的配置和状态,充当热备份服务器,即"镜像服务器角色",这两种角色不是绝对的. 优点 l 增强了数据保护功能 l 提高了数据库的可用性 l 提高了生产数据库在升级

利用SQL Server 2008 R2创建自动备份计划

本文主要利用SQL Server 2008 R2自带的"维护计划"创建一个自动备份数据的任务. 首先,启动?Sql Management studio,确保"SQL Server 代理"处于启动状态.如果没有,可以右击选择"启动". 第二步,依次展开"管理"---"维护计划",并右击"维护计划"选择"新建维护计划",这里你可以填写一个合适的有意义的名字. 点击&quo

Sql Server 2008 R2数据库损坏修复成功

Sql Server 2008 R2数据库损坏修复成功案例 2016.4月 青岛某连锁店使用的SQL 2008R2数据库,客户在正常使用中突然服务器断电导致的损坏,再次附加发现数据库报错不能正常运行,客户那边管理员自己尝试了修复以及重建日志但是故障依旧,后来发现自己解决不了,通过百度搜索,联系到我们进行处理. 我们的工程师具体查看了一下,数据库大小600M左右,底层数据看了一下基本正常,先用工具检测看下页面损坏情况,如下图: 我们可以看到确实是有页面损坏,直接新建库替换重新生成日志在看损坏情况如

SQL Server 2008 R2 主从数据库同步

一.准备工作: 主数据库服务器: OS:Windows Server 2008 R2    DB: SQL Server 2008 R2 Hostname : CXMasterDB  IP: 192.168.1.224/24    dg: 192.168.1.1 DNS: 192.168.1.19    DNS: 202.96.209.133 从数据库服务器: OS:Windows Server 2008 R2    DB: SQL Server 2008 R2 Hostname : CXSla