当前位置: 首页 > news >正文

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 UserTestSELECT * 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.完成恢复后必须对数据库进行一次完整备份,不然下次恢复时可能会出现事务日志对不上的问题

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 系统 IO
  • 数据库管理-第241期 KingBaseES V9 on RHEL8(20240912)
  • Docker镜像文件、容器、卷和网络存放位置
  • AcWing算法基础课-789数的范围-Java题解
  • ASPICE评估全流程解析:汽车软件开发组织能力的系统化评估
  • 文件格式转换:EXCEL和CSV文件格式互相转换
  • 进程启动和进程终止
  • Python 中 Locale.Error: Unsupported Locale Setting 错误
  • JAVA基础:线程优先级和精灵线程
  • CGAL GIS 应用 - 从点云到DTM
  • 勇于尝试,永远行动 - 《洛克菲勒写给儿子的38封信》读书笔记
  • 计算机毕业设计 扶贫助农系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 题目:单调栈
  • Java自学之路:掌握接口的艺术
  • fpga系列 HDL:全连接层的浮点数乘法器FM实现
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • Java|序列化异常StreamCorruptedException的解决方法
  • JS数组方法汇总
  • leetcode98. Validate Binary Search Tree
  • magento 货币换算
  • Python连接Oracle
  • V4L2视频输入框架概述
  • Vue 2.3、2.4 知识点小结
  • vue:响应原理
  • Yii源码解读-服务定位器(Service Locator)
  • 前言-如何学习区块链
  • 手写双向链表LinkedList的几个常用功能
  • 用Canvas画一棵二叉树
  • const的用法,特别是用在函数前面与后面的区别
  • Mac 上flink的安装与启动
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • # Java NIO(一)FileChannel
  • ###C语言程序设计-----C语言学习(3)#
  • $.ajax()方法详解
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (4.10~4.16)
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (面试必看!)锁策略
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (排序详解之 堆排序)
  • (四)opengl函数加载和错误处理
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .bashrc在哪里,alias妙用
  • .Net Core 中间件与过滤器