您当前的位置:首页 > 电脑百科 > 数据库 > SQL Server

如何在 SQL Server 中备份和恢复数据库

时间:2023-09-05 13:34:34  来源:微信公众号  作者:祺印说信安

在SQL Server中,数据库可以存储在不同的文件和文件组中。如果您的数据库较小(100 MB 或更少),则无需过多担心文件和文件组。但如果您有一个大型数据库(数 GB 或 TB),将数据分离到不同的文件中可以帮助您优化性能。您可以将数据文件存储在不同的磁盘中。这也将有助于更快地备份和恢复信息,因为您不需要恢复整个数据库,而只需恢复所选的文件或文件组。

备份类型

在 SQL Server 中,有不同类型的备份:

  • 完整备份:包含整个数据库信息。
  • 差异备份:需要进行完整备份,然后存储上一次备份与当前数据库之间的差异。此备份需要的信息较少,因为它仅存储差异。
  • 事务日志备份:存储有关事务日志的信息。

 

为什么备份很重要?

您的数据库可能会由于多种原因而损坏。备份将帮助您恢复在发生灾难和问题(如硬件故障、病毒攻击或其他问题)时丢失的数据库。

如何使用 SSMS 创建完整备份

您可以使用 SQL Server Management Studio (SSMS) 创建完整备份来还原 SQL Server 中的数据库。为此,请打开 SSMS,右键单击数据库,然后选择任务 > 备份。

从 SSMS 选择完整备份从 SSMS 选择完整备份

在“备份数据库”窗口中,选择“完整备份类型”。

备份数据库窗口备份数据库窗口

如何使用 T-SQL 创建完整数据库备份

如果您想自动备份,可以使用T-SQL代码。T-SQL 是用于自动执行 SQL Server 任务的 SQL Server 语言。

以下示例显示如何使用 T-SQL 创建完整备份。

BACKUP DATABASE [AdventureWorks2019] TO  DISK = N'C:backupsAdventureWorks2019.bak' WITH  DIFFERENTIAL , NOFORMAT, NOINIT,  NAME = N'AdventureWorks2019-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10

GO

如何自动安排备份

您可以安排在特定时间运行备份。为此,请在 SSMS 中创建备份,然后选择“脚本”>“为作业编写脚本操作”选项。

图片图片

在 SSMS 中创建备份并将操作脚本写入作业选项。

在新作业中,转到“计划”页面并按“新建”按钮创建新计划。

您可以安排作业每天、每小时等运行。

如何使用 SSMS 创建差异备份

首先,确保您已经有完整备份。

接下来,右键单击数据库并选择任务 > 备份。

在备份类型中,确保选择差异备份类型。

选择备份类型差异选择备份类型差异

如何使用 T-SQL 创建差异备份

或者,您可以使用 T-SQL 命令创建差异备份。

BACKUP DATABASE [AdventureWorks2019] TO  DISK = N'C:backupsAdventureWorks2019.bak' WITH  DIFFERENTIAL , NOFORMAT, NOINIT,  NAME = N'AdventureWorks2019-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10

GO

 

如何使用 SSMS 创建文件或文件组备份

在 SSMS 中,右键单击数据库并选择任务 > 备份。

选择文件和文件组选项。

选择要备份的文件和文件组,然后按“确定”。

如何使用 T-SQL 创建文件或文件组备份

或者,可以使用 T-SQL 命令创建文件或文件组备份。

BACKUP DATABASE [Northwind] FILEGROUP = N'PRIMARY' TO  DISK = N'C:Program FilesMicrosoft SQL ServerMSSQL15.MSSQLSERVERMSSQLBackupNorthwind.bak' WITH NOFORMAT, NOINIT,  NAME = N'Northwind-Full Database Backup', SKIP, NOREWIND, NOUNLOAD,  STATS = 10

GO

如何使用 SSMS 恢复备份

要使用 SSMS 恢复备份,请转到对象资源管理器,右键单击数据库,然后选择恢复数据库选项。

使用 SSMS 恢复备份使用 SSMS 恢复备份

在“还原数据库”窗口中,选择要还原的数据库和备份集,然后按“确定”。

如何使用 T-SQL 恢复备份

或者,可以使用 T-SQL 命令来恢复数据库。

USE [master]

RESTORE DATABASE [AdventureWorks2019] FROM  DISK = N'C:backupsAdventureWorks2019.bak' WITH  FILE = 10,  NOUNLOAD,  STATS = 5

GO

如何使用 SSMS 恢复差异备份

要使用 SSMS 恢复数据库,请转到对象资源管理器,右键单击数据库,然后选择“恢复数据库”选项。

在“还原数据库”窗口中,选择要还原的数据库,选择完整备份,然后选择要还原的差异集,然后按“确定”。

选择完整备份选择完整备份

如何使用 T-SQL 恢复差异备份

或者,您可以使用 T-SQL 命令来恢复差异备份。

USE [master]

RESTORE DATABASE [AdventureWorks2019] FROM  DISK = N'C:backupsAdventureWorks2019.bak' WITH  FILE = 10,  NORECOVERY,  NOUNLOAD,  STATS = 5

RESTORE DATABASE [AdventureWorks2019] FROM  DISK = N'C:backupsAdventureWorks2019.bak' WITH  FILE = 11,  NOUNLOAD,  STATS = 5

GO

如何使用 SSMS 还原文件和文件组

打开 SSMS,转到对象资源管理器,右键单击数据库,然后选择“还原文件和文件组”选项。

选择要还原的源数据库和目标数据库,然后选择文件组集。

并选择恢复文件和文件组选项并选择恢复文件和文件组选项

选择要还原的源数据库和目标数据库,然后选择文件组集。

图片

要恢复的源数据库和目标数据库。

如何使用 T-SQL 恢复文件和文件组

或者,您可以使用 T-SQL 命令来恢复数据库文件或文件组。

RESTORE DATABASE [Northwind] FILE = N'Northwind' FROM  DISK = N'C:Program FilesMicrosoft SQL ServerMSSQL15.MSSQLSERVERMSSQLBackupNorthwind.bak' WITH  FILE = 7,  NOUNLOAD,  STATS = 10

GO

结论

在本文中,讨论了 SQL Server 中的不同类型的备份以及如何创建这些备份。我们还讨论了使用 SSMS 和 T-SQL 命令恢复数据库备份的方法。如果数据库备份损坏,可以使用第三方工具,从损坏的备份文件 (.bak) 中恢复 SQL 数据库。

常问问题

  1. 如果 SSMS 更容易,为什么我应该使用 T-SQL 来备份和恢复数据库? T-SQL 通常用于自动化该过程。
  2. 我的机器应该使用什么类型的备份? 这取决于数据和数据库的大小。如果您正在处理小型数据库,则可以使用完整备份。但是,如果您的数据库很大,请将完整备份与差异日志和事务日志结合起来。
  3. 如果我的数据库损坏了。我可以使用备份来恢复数据库吗? 是的,您可以在这种情况下使用备份。
  4. 如果备份损坏怎么办? 如果备份文件损坏,您可以使用 SQL Toolkit for MS SQL。该软件包含一个名为 Stellar Backup Extractor for MS SQL 的模块,可以从损坏的备份 (.bak) 文件中提取数据库。
  5. 如果 SQL 数据库文件损坏怎么办? 您可以使用数据库控制台命令 (DBCC) CHECKDB 来检查和修复损坏的数据库。


Tags:SQL Server   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
使用 Python 连接 SQL Server 数据库并实时读取数据?
实时读取SQL Server数据库表并进行处理是一个常见的需求。在Python中,可以使用pyodbc库来连接SQL Server数据库,并使用pandas库来进行数据处理。下面是一个实战示例,演示如何实...【详细内容】
2023-12-28  Search: SQL Server  点击:(90)  评论:(0)  加入收藏
数据库迁移:从 SQL Server 到 PostgreSQL
作者 | 何蔚一、背景在这个数字化时代,企业的复杂业务逻辑运转需要依赖复杂的业务服务来完成。这些业务服务通常会经历变更、拆分、合并和上云等过程,最终与一些商业软件和云...【详细内容】
2023-11-29  Search: SQL Server  点击:(235)  评论:(0)  加入收藏
SQL Server 百万数据查询优化技巧三十则
互联网时代的进程越走越深,使用MySQL的人也越来越多,关于MySQL的数据库优化指南很多,而关于SQL SERVER的T-SQL优化指南看上去比较少,近期有学习SQLSERVER的同学问到SQL SERVER数...【详细内容】
2023-11-28  Search: SQL Server  点击:(338)  评论:(0)  加入收藏
如何解决SQL Server数据库备份过程中检测到的日志损坏问题
译者 | 李睿日志损坏问题通常发生在对事务日志进行备份的时候。其错误是这样描述的:“消息26019,级别16,状态1,第1行BACKUP在数据库日志中检测到损坏。有关详细信息,请查看错误日...【详细内容】
2023-11-08  Search: SQL Server  点击:(289)  评论:(0)  加入收藏
如何在 SQL Server 中备份和恢复数据库
在SQL Server中,数据库可以存储在不同的文件和文件组中。如果您的数据库较小(100 MB 或更少),则无需过多担心文件和文件组。但如果您有一个大型数据库(数 GB 或 TB),将数据分离到不...【详细内容】
2023-09-05  Search: SQL Server  点击:(267)  评论:(0)  加入收藏
linux上SQL Server 配置管理器的使用
概述我们知道Windows平台上的SQL Server 配置管理器是一个图形工具,用于管理与 SQL Server 关联的服务、配置 SQL Server 使用的网络协议以及管理 SQL Server 客户端计算机的...【详细内容】
2023-08-24  Search: SQL Server  点击:(306)  评论:(0)  加入收藏
Linux 上 SQL Server 配置管理器的使用
概述我们知道Windows平台上的SQL Server 配置管理器是一个图形工具,用于管理与 SQL Server 关联的服务、配置 SQL Server 使用的网络协议以及管理 SQL Server 客户端计算机的...【详细内容】
2023-08-21  Search: SQL Server  点击:(124)  评论:(0)  加入收藏
python如何操作SQL Server数据库?
当使用Python与SQL Server进行交互时,可以使用不同的库和模块。以下是25个示例代码,用于演示如何使用Python与SQL Server进行连接、查询、插入、更新和删除等操作:使用pyodbc库...【详细内容】
2023-08-15  Search: SQL Server  点击:(296)  评论:(0)  加入收藏
SQL Server关系数据库在Linux系统上安装及配置
SQL Server是由Microsoft开发的关系型数据库管理系统(RDBMS)。它是一种可靠、安全且高性能的数据库解决方案,用于存储、管理和处理大量结构化数据。SQL Server支持标准的SQL查...【详细内容】
2023-08-15  Search: SQL Server  点击:(242)  评论:(0)  加入收藏
SQL Server数据库常见操作及命令
创建数据库:CREATE DATABASE database_name;删除数据库:DROP DATABASE database_name;创建表:CREATE TABLE table_name ( column1 datatype, column2 datatype, ...);删除...【详细内容】
2023-08-15  Search: SQL Server  点击:(229)  评论:(0)  加入收藏
▌简易百科推荐
SQL Server 百万数据查询优化技巧三十则
互联网时代的进程越走越深,使用MySQL的人也越来越多,关于MySQL的数据库优化指南很多,而关于SQL SERVER的T-SQL优化指南看上去比较少,近期有学习SQLSERVER的同学问到SQL SERVER数...【详细内容】
2023-11-28  数据库干货铺  微信公众号  Tags:SQL Server   点击:(338)  评论:(0)  加入收藏
如何解决SQL Server数据库备份过程中检测到的日志损坏问题
译者 | 李睿日志损坏问题通常发生在对事务日志进行备份的时候。其错误是这样描述的:“消息26019,级别16,状态1,第1行BACKUP在数据库日志中检测到损坏。有关详细信息,请查看错误日...【详细内容】
2023-11-08    51CTO  Tags:SQL Server   点击:(289)  评论:(0)  加入收藏
聊聊SQL中的排名问题
今天给大家介绍一下SQL Server排名中经常用到的ROW_NUMBER(),RANK(),DENSE_RANK(),NTILE()这四个好兄弟。 我们先创建一个测试数据表ScoresWITH t AS(SELECT 1 StuID,70 ScoreU...【详细内容】
2023-10-26  SQL数据库开发  微信公众号  Tags:SQL   点击:(176)  评论:(0)  加入收藏
数据库批量插入数据方法
SQL Server 批量插入数据常用方法:一、普通的Insert插入二、拼接BatchInsert插入三、SqlBulkCopy插入 以上3种方法插入数据的速度比较:(ms:毫秒,1000 毫秒 = 1秒)由于电脑硬件情况...【详细内容】
2023-10-17      Tags:数据库   点击:(252)  评论:(0)  加入收藏
如何在 SQL Server 中备份和恢复数据库
在SQL Server中,数据库可以存储在不同的文件和文件组中。如果您的数据库较小(100 MB 或更少),则无需过多担心文件和文件组。但如果您有一个大型数据库(数 GB 或 TB),将数据分离到不...【详细内容】
2023-09-05  祺印说信安  微信公众号  Tags:SQL Server   点击:(267)  评论:(0)  加入收藏
linux上SQL Server 配置管理器的使用
概述我们知道Windows平台上的SQL Server 配置管理器是一个图形工具,用于管理与 SQL Server 关联的服务、配置 SQL Server 使用的网络协议以及管理 SQL Server 客户端计算机的...【详细内容】
2023-08-24    雪竹频道  Tags:SQL Server   点击:(306)  评论:(0)  加入收藏
Linux 上 SQL Server 配置管理器的使用
概述我们知道Windows平台上的SQL Server 配置管理器是一个图形工具,用于管理与 SQL Server 关联的服务、配置 SQL Server 使用的网络协议以及管理 SQL Server 客户端计算机的...【详细内容】
2023-08-21  雪竹聊技术  今日头条  Tags:SQL Server   点击:(124)  评论:(0)  加入收藏
python如何操作SQL Server数据库?
当使用Python与SQL Server进行交互时,可以使用不同的库和模块。以下是25个示例代码,用于演示如何使用Python与SQL Server进行连接、查询、插入、更新和删除等操作:使用pyodbc库...【详细内容】
2023-08-15  运维开发木子李  今日头条  Tags:SQL Server   点击:(296)  评论:(0)  加入收藏
SQL Server关系数据库在Linux系统上安装及配置
SQL Server是由Microsoft开发的关系型数据库管理系统(RDBMS)。它是一种可靠、安全且高性能的数据库解决方案,用于存储、管理和处理大量结构化数据。SQL Server支持标准的SQL查...【详细内容】
2023-08-15  运维开发木子李  今日头条  Tags:SQL Server   点击:(242)  评论:(0)  加入收藏
SQL Server数据库常见操作及命令
创建数据库:CREATE DATABASE database_name;删除数据库:DROP DATABASE database_name;创建表:CREATE TABLE table_name ( column1 datatype, column2 datatype, ...);删除...【详细内容】
2023-08-15  运维开发木子李  今日头条  Tags:SQL Server   点击:(229)  评论:(0)  加入收藏
站内最新
站内热门
站内头条