SQL Server数据库简单的事务日志备份恢复流程

 更新时间:2024年09月13日 09:15:06   作者:Jeakjava  
在一些对数据可靠性要求很高的行业,若发生意外停机或数据丢失,其损失是十分惨重的,数据库管理员应针对具体的业务要求指定详细的数据库备份与灾难恢复策略,本文给大家详细介绍了SQL Server数据库简单的事务日志备份恢复流程,需要的朋友可以参考下

模拟数据库备份恢复过程

1.基础操作

1.创建TestDB数据库,并添加数据

USE [master]
GO
CREATE DATABASE TestDB
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'TestDB', FILENAME = N'D:\TestDB.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED,
FILEGROWTH = 65536KB )
LOG ON
( NAME = N'TestDB_log', FILENAME = N'D:\TestDB_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB ,
FILEGROWTH = 65536KB )
GO
USE TestDB
GO
CREATE TABLE [dbo].[UserTest](
[id] [int] NULL,
[uName] [varchar](50) NULL,
[age] [int] NULL
) 
GO
INSERT [dbo].[UserTest] ([id], [uName], [age]) VALUES (1, N'ceshi1', 18)
GO
INSERT [dbo].[UserTest] ([id], [uName], [age]) VALUES (2, N'ceshi2', 19)
GO
INSERT [dbo].[UserTest] ([id], [uName], [age]) VALUES (3, N'ceshi3', 20)
GO
INSERT [dbo].[UserTest] ([id], [uName], [age]) VALUES (4, N'ceshi4', 21)
GO
INSERT [dbo].[UserTest] ([id], [uName], [age]) VALUES (5, N'ceshi5', 22)
GO

创建数据库

2.创建完数据库后,对数据库进行备份

在这里插入图片描述

进行一次完整备份数据库,可以将备份文件放到指定的目录去

在这里插入图片描述

同理操作再进行一次事务日志备份

在这里插入图片描述

在这里插入图片描述

创建数据库后的基础备份就已经完成了

2.模拟日常操作

1.模拟创建新表

USE TestDB
--模拟正确创建表结构
SELECT* INTO ceshi1 FROM UserTest
SELECT* INTO ceshi2 FROM UserTest
SELECT* INTO ceshi3 FROM UserTest

SELECT * FROM ceshi1
SELECT * FROM ceshi2
SELECT * FROM ceshi3

能查到ceshi1,ceshi2,ceshi3表中的数据

在这里插入图片描述

2.模拟误操作

--模拟错误删除表结构
DELETE FROM ceshi1
TRUNCATE TABLE dbo.ceshi2
DROP TABLE dbo.ceshi3

此时再去查询三张表显示没有数据,以及没有表结构,这是比较常见的误操作

在这里插入图片描述

3.误操作的恢复准备

在发生了误操作后,先别慌,我们首先要看一下目前的时间,并记录,比如我这边发生误操作的时间大概是

在这里插入图片描述

记录时间后,我们需要首先将数据库的访问权限设置为单用户,这样做的目的是为了防止新数据写入到数据库,我们后面恢复的话会丢失这部分数据,所以需要先将其他用户的访问权限关了

在这里插入图片描述

在这里插入图片描述

完成对权限的控制后,我们再次对数据库进行一次尾部事务备份

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

完成以上操作后,我们可以看到数据库处于正在还原的状态

在这里插入图片描述

4.对数据库进行还原恢复

首先我们对文件和文件组进行还原

在这里插入图片描述

选择最近的完整备份

在这里插入图片描述

选项里面选择不回滚

在这里插入图片描述

随后我们再对事务日志进行还原

在这里插入图片描述

在这里插入图片描述

这里就需要用到我们之前记录的发生错误的时间了,越精准,就越可以减少损失,我的是15:28:52,因为我截图花了点时间,实际发生错误可能是在45秒的样子,为了以防万一我演示就还原到15:28:40的样子,实际上正式站,越接近误操作时间越好

在这里插入图片描述

还原过程就结束了

5.检查数据库还原是否成功

查询ceshi1,ceshi2,ceshi3是否还原成功

SELECT * FROM ceshi1
SELECT * FROM ceshi2
SELECT * FROM ceshi3

在这里插入图片描述

确认还原成功后,需要对数据库再进行一次完整备份(这个地方是我自己测试下来,发现,如果恢复一次后,不进行完整备份,就会出现,下次恢复的时候,事务日志对不上的情况),这里可能会发生我们操作不了数据库的情况,因为是单用户的情况

在这里插入图片描述

这里我们只需要切换一下数据库,不再占用访问就行

USE master

在这里插入图片描述

随后对数据库进行完整备份

在这里插入图片描述

在这里插入图片描述

完成之后,将数据库恢复到多用户访问就行

在这里插入图片描述

在这里插入图片描述

整个数据库备份恢复过程就结束了

注意

1.数据库创建后必须有一次完整备份

2.完成恢复后必须对数据库进行一次完整备份,不然下次恢复时可能会出现事务日志对不上的问题

以上就是SQL Server数据库简单的事务日志备份恢复流程的详细内容,更多关于SQL Server事务日志备份恢复的资料请关注脚本之家其它相关文章!

相关文章

  • SQLServer 通用的分区增加和删除的算法

    SQLServer 通用的分区增加和删除的算法

    本算法默认分去函数中已经包含了足够多的分区。不需要我们去动态的创建分区。
    2009-07-07
  • Sql Server存储过程详解

    Sql Server存储过程详解

    本文详细讲解了Sql Server的存储过程,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • sql 查询本年、本月、本日记录的语句,附SQL日期函数

    sql 查询本年、本月、本日记录的语句,附SQL日期函数

    sql 查询本年、本月、本日记录的语句,附SQL日期函数,学习sql的朋友可以参考下。
    2011-07-07
  • sql带分隔符的截取字符串示例

    sql带分隔符的截取字符串示例

    这篇文章主要介绍了sql带分隔符的截取字符串示例,需要的朋友可以参考下
    2014-03-03
  • 某年第一周开始日期实现方法

    某年第一周开始日期实现方法

    你想获取某一年份第一周开始的日期,Insus.NET给你的答案,可以参考使用下面这个函数
    2012-01-01
  • Oracle与SqlServer的区别大吗

    Oracle与SqlServer的区别大吗

    这篇文章主要介绍了Oracle与SqlServer的区别大吗,差异主要表现在数据类型区别、数据表个数查询的区别以及oracle区分表字段的大小写,SQL Server 不区分表字段的大小写,具体细节跟随小编一起学习下吧
    2024-02-02
  • MSSQL自动重建出现碎片的索引的方法分享

    MSSQL自动重建出现碎片的索引的方法分享

    无论何时对基础数据执行插入、更新或删除操作,SQL Server 数据库引擎都会自动维护索引。随着时间的推移,这些修改可能会导致索引中的信息分散在数据库中(含有碎片)。当索引包含的页中的逻辑排序(基于键值)与数据文件中的物理排序不匹配时,就存在碎片。碎片非常多的索引可能会降低查询性能,导致应用程序响应缓慢。
    2014-06-06
  • SQL Server数据库用户管理及权限管理详解

    SQL Server数据库用户管理及权限管理详解

    在SQLServer数据库中,为了确保数据的安全性和完整性,我们需要为用户分配适当的权限,这篇文章主要给大家介绍了关于SQL Server数据库用户管理及权限管理的相关资料,需要的朋友可以参考下
    2024-07-07
  • Sql Server缓冲池、连接池等基本知识详解

    Sql Server缓冲池、连接池等基本知识详解

    这篇文章主要介绍了Sql Server缓冲池、连接池等基本知识,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-09-09
  • sql server deadlock跟踪的4种实现方法

    sql server deadlock跟踪的4种实现方法

    一提到跟踪俩字,很多人想到警匪片中的场景,但这里介绍的可不是一样的哦,下面这篇文章主要给大家介绍了关于sql server deadlock跟踪的4种实现方法,文中通过图文以及示例代码介绍的非常详细,需要的朋友可以参考下
    2018-09-09

最新评论