综合百科

sql server是什么类型的数据库

sql server是什么类型的数据库

一、概述

SQLSERVER的备份与恢复命令中,BACKUP和RESTORE是一对重要组合。在上一篇文章中,我们详细介绍了BACKUP命令及其选项的使用。

如同BACKUP命令,RESTORE命令也有丰富的选项,理解和掌握这些选项的含义是SQLSERVER成功恢复的关键。

二、命令详解

2.1 RESTORE命令

2.1.1 RESTORE HEADERONLY

RESTORE HEADERONLY选项允许你查看特定备份设备的所有备份的备份头信息。大多数情况下,你创建的每个备份只有一个备份存储在物理文件中,因此你可能只会看到一个标题记录。但如果在一个文件中有多个备份,你会看到每个备份的信息。

T-SQL命令示例:

结果显示许多重要信息。

通过SQL Server Management Studio操作:

右键点击数据库,选择“恢复数据库…”,选择“从设备:”,然后点击“…”。点击“添加”并选择后备文件,本例为“C:\AdventureWorks.BAK”,然后点击“确定”。再次点击“确定”可以看到备份文件的内容。

2.1.2 RESTORE LABELONLY

RESTORE LABELONLY选项允许你查看备份设备的备份介质信息。如果备份设备(例如备份文件)有多个备份,你将获得一条记录,提供有关介质集的信息,例如创建备份的软件、介质的创建日期等。

T-SQL命令示例:

结果显示许多重要信息。

2.1.3 RESTORE FILELISTONLY

RESTORE FILELISTONLY选项允许你查看已备份文件的列表。例如,如果你有完整备份,你将看到所有数据文件(mdf)和日志文件(ldf)。此信息只能使用T-SQL返回,无法从SQL Server Management Studio获取此信息。

T-SQL命令示例:

结果集包括有用的内容,如LogicalName和PhysicalName。

2.1.4 RESTORE DATABASE

RESTORE DATABASE选项允许你恢复完整、差异、文件或文件组备份。恢复数据库时需要对数据库进行独占访问,这意味着没有其他用户连接可以使用该数据库。可以使用T-SQL或使用SQL Server Management Studio完成RESTORE DATABASE选项。

T-SQL命令示例:

恢复完整备份:

NORECOVERY选项在恢复完成后使数据库处于恢复状态,允许你恢复其他文件以更新数据库。默认情况下,此选项处于关闭状态。

使用SQL Server Management Studio操作:

2.1.5 RESTORE LOG

RESTORE LOG命令允许你恢复事务日志备份。这些选项包括恢复整个事务日志或恢复到某个时间点或某个事务标记。为了还原事务日志备份,数据库必须处于还原状态。

T-SQL命令示例:

恢复事务日志备份:

使用SQL Server Management Studio操作:

2.1.6 RESTORE VERIFYONLY

RESTORE VERIFYONLY命令检查备份以确保它是完整的并且整个备份是可读的。不执行实际还原,而是读取文件以确保SQL Server在需要使用时可以读取它。这是一个不错的实践,但需要额外的处理时间。

T-SQL命令示例:

使用SQL Server Management Studio操作:

2.2 Restore 选项

除了我们前面已经讨论过的命令之外,Restore还有许多其他选项可以与这些命令一起使用。

2.2.1 RECOVERY

RESTORE … WITH RECOVERY选项将数据库置于可用状态,这样用户就可以访问已恢复的数据库。当你发出RESTORE DATABASE或RESTORE LOG命令时,默认使用WITH RECOVERY选项。无需指定此选项即可执行此操作。

T-SQL命令示例:

使用SQL Server Management Studio操作:

数据库恢复是数据库管理中不可或缺的一部分,SQL Server中的`RESTORE`命令为我们提供了强大的恢复功能。本文将详细介绍如何使用`RESTORE`命令及其常见选项进行数据库恢复。

假设我们有一个名为“AdventureWorks”的数据库备份文件位于“C:\AdventureWorks.BAK”。如果我们只想从备份中恢复文件列表,可以使用以下命令:

“`sql

RESTORE FILELISTONLY FROM DISK = ‘C:\AdventureWorks.BAK’

“`

关于恢复的具体细节,例如逻辑名称、物理名称和类型,可以通过查询相关系统表来获取。

如果我们想恢复整个数据库,并将数据文件放在“G:\SQLData”文件夹中,事务日志文件放在“H:\SQLLog”文件夹中,可以使用以下命令:

“`sql

RESTORE DATABASE AdventureWorks

FROM DISK = ‘C:\AdventureWorks.BAK’

WITH MOVE ‘AdventureWorks_Data’ TO ‘G:\SQLData\AdventureWorks_Data.mdf’,

MOVE ‘AdventureWorks_Log’ TO ‘H:\SQLLog\AdventureWorks_Log.ldf’;

“`

注意,只需为第一次还原指定`WITH MOVE`,因为此后数据库将处于“还原”状态。第二次还原只会将内容写入正在使用的新位置。

如果要使用时间点恢复功能,可以使用`STOPAT`选项。这需要数据库处于FULL或Bulk-Logged恢复模式,并且需要事务日志备份。以下是一个示例:

“`sql

RESTORE DATABASE AdventureWorks

FROM DISK = ‘C:\AdventureWorks.BAK’

WITH NORECOVERY;

RESTORE LOG AdventureWorks

FROM DISK = ‘C:\AdventureWorks.TRN’

WITH RECOVERY,

STOPAT = ‘Oct 23, 2022 05:31:00 PM’;

“`

在执行数据库恢复操作时,确保拥有对数据库的独占访问权限非常重要。否则,还原操作可能会失败。您可以通过杀死其他连接或使用`ALTER DATABASE`命令将数据库置于单用户模式来获得独占访问权。例如:

“`sql

ALTER DATABASE AdventureWorks SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

GO

RESTORE DATABASE AdventureWorks FROM DISK = ‘C:\AdventureWorks.BAK’;

GO

“`这将确保在恢复过程中没有其他用户连接到数据库。请注意,这将导致所有当前连接的用户被断开连接并回滚他们的操作。请谨慎使用此选项并确保通知所有相关用户。本文详细解析了SQL Server中的数据库恢复命令`RESTORE`及其常见选项的使用方法,通过具体的例子让读者对数据库恢复的原理和实际操作有更深刻的认识。希望读者能够熟练掌握这些技巧并在实际工作中灵活应用。


sql server是什么类型的数据库

你可能也会喜欢...