当前位置:首页 >> 内饰

SQLSERVER 恢复军令restore总结

来源:内饰   2023年04月30日 12:15

rks.BAK' WITH NORECOVERYGORESTORE DATABASE AdventureWorks FROM DISK = 'C:AdventureWorks.DIF'GO

采用具有多个备用的备用文档来进行氢化

也就是说我们采用同一个备用文档 AdventureWorks.BAK 来磁盘非常简单备用和差异性备用。我们可以采用RESTORE HEADERONLY来拍照备用和备用文档当中的所在位置。也就是说丧失标背只告诉我们在所在位置 1 我们有非常简单备用,在所在位置 2 我们有差异性备用。丧失下达将是。

RESTORE DATABASE AdventureWorks FROM DISK = 'C:AdventureWorks.BAK' WITH NORECOVERY, FILE = 1GORESTORE DATABASE AdventureWorks FROM DISK = 'C:AdventureWorks.BAK' WITH FILE = 2GO2.1.5 RESTORE LOG

RESTORE LOG 下达强制您丧失外交事务存档备用。这些可选择以外丧失整个外交事务存档或丧失到某个间隔时间点或某个外交事务标记。为了氢化外交事务存档备用,信息源须要西北面氢化稳定状态,这也就是说首先采用 NORECOVERY 可选择氢化非常简单备用或非常简单备用和差异性备用,以强制额外的备用,例如氢化外交事务存档备用。

丧失外交事务存档时,您将能够对信息源的商业性时会面无权限,这也就是说并未系统时会相互连接可以采用该信息源。如果信息源西北面丧失稳定状态,这不是问题,因为他会可以采用该信息源。

可以采用 T-SQL 或采用 SQL Server Management Studio 进行 RESTORE LOG 可选择。

T-SQL

丧失外交事务存档备用

要丧失外交事务存档备用,信息源能够西北面丧失稳定状态。这也就是说您须要丧失非常简单备用,或许还能够丧失差异性备用。

RESTORE LOG AdventureWorks FROM DISK = 'C:AdventureWorks.TRN'GO

氢化多个外交事务存档文档 (NORECOVERY)

NORECOVERY 可选择在氢化进行后使信息源西北面氢化稳定状态。这强制您丧失其他文档以使信息源升级。普通用户完全,此可选择西北面关闭稳定状态。例如能够丧失两个外交事务存档备用,第一个采用 NORECOVERY 而第二个语句不采用,这也就是说在丧失进行后可以时会面信息源。

RESTORE LOG AdventureWorks FROM DISK = 'C:AdventureWorks_1.TRN' WITH NORECOVERYGORESTORE LOG AdventureWorks FROM DISK = 'C:AdventureWorks_2.TRN'GO

从同一个备用文档丧失多个外交事务存档备用

也就是说我们采用同一个备用文档 AdventureWorks.TRN 来加载我们所有的外交事务存档备用。这不是最佳做法,因为如果文档已损坏,则则时会损坏此文档当中的所有备用。我们可以采用RESTORE HEADERONLY来拍照备用和备用文档当中的所在位置。也就是说丧失标背只告诉我们这个文档当中亦有 3 个外交事务存档备用,我们想要丧失全部。

RESTORE LOG AdventureWorks FROM DISK = 'C:AdventureWorks.TRN' WITH NORECOVERY, FILE = 1GORESTORE LOG AdventureWorks FROM DISK = 'C:AdventureWorks.TRN' WITH NORECOVERY, FILE = 2GORESTORE LOG AdventureWorks FROM DISK = 'C:AdventureWorks.TRN' WITH FILE = 3GO2.1.6 RESTORE VERIFYONLY

RESTORE VERIFYONLY 下达体检备用以保证它是非常简单的并且整个备用是可读的。不执行者实际氢化,而是磁盘文档以保证 SQL Server 在能够采用此备用来进行氢化时可以磁盘它。RESTORE VERIFYONLY 可选择是备用进行后体检每个备用的不错可选择。不幸的是,这能够额外的处理间隔时间才能进行,但这是一个不错的实践。一般而言是您可以采用 T-SQL 和 SSMS 执行者此操作方法的方法有。

T-SQL

体检磁盘器上的备用文档

RESTORE VERIFYONLY 下达将体检备用文档并送回文档应该直接的消息。如果它无效,这也就是说该文档无法常用丧失,并且应该来进行新的备用。能够请注意的一点是,如果一个文档当中亦有多个备用,它只体检第一个文档。

RESTORE VERIFYONLY FROM DISK = C:AdventureWorks.BAKGO

体检磁盘器上的备用文档应该有特定备用

此下达将体检此备用文档当中的第二个备用。要体检备用当中的段落,您可以采用RESTORE HEADERONLY并采用 Position 列原则上 FILE 编号。

RESTORE VERIFYONLY FROM DISK = C:AdventureWorks.BAK WITH FILE = 2GOSQL Server Management Studio

采用维护蓝图或通过 SSMS 成立备用时,您可以可选择关上 RESTORE VERIFYONLY 可选择,如下所示。这可以对所有备用型式来进行。

2.2 Restore 可选择

除了我们同一间隔时间面早就讨论过的下达基本上,Restore还有许多其他可选择可以与这些下达一起采用。

RECOVERYNORECOVERYSTATSREPLACEMOVESTOPAT2.2.1 RECOVERY

RESTORE ... WITH RECOVERY 可选择将信息源置于需用稳定状态,因此用户可以时会面已丧失的信息源。 当您下达 RESTORE DATABASE 或 RESTORE LOG 下达时,普通用户采用 WITH RECOVERY 可选择。无需原则上此可选择即可执行者此操作方法。

如果您丧失“非常简单”备用,则普通用户设为为 RESTORE WITH RECOVERY,因此在信息源丧失后,您的终端用户可以采用它。

如果您打算采用多个备用文档氢化信息源,您能够采用 WITH NORECOVERY 可选择来进行除仍要一次基本上的每个氢化。

如果您的信息源仍西北面丧失稳定状态,并且您想在不丧失其他备用的完全丧失它,您可一般而言达 RESTORE DATABASE .. WITH RECOVERY 使信息源联机均需用户采用。

T-SQL

丧失西北面 RECOVERY稳定状态 如上所述,此可选择是普通用户可选择,但您可以按如下方式将原则上。此可选择是普通用户可选择,但您可以按如下方式将原则上。

RESTORE DATABASE AdventureWorks FROM DISK = 'C:AdventureWorks.BAK'WITH RECOVERYGO

对上次备用采用 WITH RECOVERY 丧失多个备用 第一次丧失采用 NORECOVERY 可选择,因此可以来进行额外的丧失。第二个下达丧失外交事务存档,然后使信息源联机以均需终端用户采用。

RESTORE DATABASE AdventureWorks FROM DISK = 'C:AdventureWorks.BAK'WITH NORECOVERYGORESTORE LOG AdventureWorks FROM DISK = 'C:AdventureWorks.TRN'WITH RECOVERYGOSQL Server Management Studio

采用 SSMS 丧失时,普通用户采用 WITH RECOVERY 可选择,因此无需设为任何段落,但可以在丧失时在可选择网页上设为或更换。

2.2.2 NORECOVERY

RESTORE ... WITH NORECOVERY 可选择将信息源置于“打算丧失”稳定状态,因此可以丧失其他备用。当信息源西北面“打算丧失”稳定状态时,没可靠户可以时会面信息源或信息源的段落。

当您下达 RESTORE DATABASE 或 RESTORE LOG 下达时,WITH NORECOVERY 可选择强制您在丧失信息源之同一间隔时间丧失其他备用文档。因此,这强制您在让终端用户时会面信息之同一间隔时间尽或许给予最新的信息源。

此可选择普通用户不启用,因此如果您能够通过丧失多个备用文档来丧失信息源而忘记采用此可选择,则须要之后开始备用现实生活。

最相似的实例是丧失“非常简单”备用和一个或多个“外交事务存档”备用。

T-SQL

丧失非常简单备用和一个外交事务存档备用 第一个下达执行者丧失并使信息源西北面丧失稳定状态,第二个下达丧失外交事务存档备用,然后使信息源需用。

RESTORE DATABASE AdventureWorks FROM DISK = 'C:AdventureWorks.BAK'WITH NORECOVERYGORESTORE LOG AdventureWorks FROM DISK = 'C:AdventureWorks.TRN'WITH RECOVERYGO

氢化非常简单备用和两个外交事务存档备用

首先采用 NORECOVERY 氢化同一间隔时间两个备用,然后采用 RECOVERY 来进行仍要一次氢化。

RESTORE DATABASE AdventureWorks FROM DISK = 'C:AdventureWorks.BAK'WITH NORECOVERYGORESTORE LOG AdventureWorks FROM DISK = 'C:AdventureWorks.TRN'WITH NORECOVERYGORESTORE LOG AdventureWorks FROM DISK = 'C:AdventureWorks2.TRN'WITH RECOVERYGO

氢化非常简单备用、最新差异性备用和两个外交事务存档备用

采用 NORECOVERY 氢化同一间隔时间三个备用,然后采用 RECOVERY 来进行仍要氢化。

RESTORE DATABASE AdventureWorks FROM DISK = 'C:AdventureWorks.BAK'WITH NORECOVERYGORESTORE DATABASE AdventureWorks FROM DISK = 'C:AdventureWorks.DIF'WITH NORECOVERYGORESTORE LOG AdventureWorks FROM DISK = 'C:AdventureWorks.TRN'WITH NORECOVERYGORESTORE LOG AdventureWorks FROM DISK = 'C:AdventureWorks2.TRN'WITH RECOVERYGOSQL Server Management Studio

要采用 WITH NORECOVERY 可选择丧失信息源备用,请转到可选择网页并可选择后面突出说明了的概念设计。

2.2.3 STATS

RESTORE WITH STATS 可选择强制您拍照氢化现实生活的时间表,这个可选择也可常用 RESTORE DATABASE、RESTORE LOG、RESTORE VERIFYONLY。RESTORE WITH STATS 可选择将让您了解当同一间隔时间氢化现实生活的时间表。此接收者以进行总和表示。普通用户是每 10% 后说明了,或者可以原则上总和差值。

T-SQL

采用普通用户统计设为丧失非常简单信息源 一般而言将说明了每个 10% 段后的进行总和。

RESTORE DATABASE 'AdventureWorks' FROM DISK = 'C:AdventureWorks.BAK'GO

丧失非常简单的信息源,每进行 1% 就时会说明了统计接收者 这将在每进行 1% 后说明了时间表。

RESTORE DATABASE 'AdventureWorks' FROM DISK = 'C:AdventureWorks.BAK' WITH STATS = 1GOSQL Server Management Studio

采用 SSMS 氢化信息源时,此接收者将说明了在后面突出说明了的部分当中。普通用户差值为 10%, GUI 当中无法更换。

2.2.4 REPLACE

RESTORE ... WITH REPLACE 可选择强制您在来进行氢化时遮盖现有信息源。在某些完全,当您想法来进行氢化时,您则时会收到一条有误消息,提示“信息源的存档尾部 .. 尚未备用”。

RESTORE ... WITH REPLACE 强制您在执行者氢化时遮盖现有信息源,而无需先备用外交事务存档的尾部。WITH REPLACE 基本上告诉 SQL Server 丢弃外交事务存档当中的所有商业活动段落并继续来进行氢化。

T-SQL

采用 WITH REPLACE 丧失非常简单备用 后面的下达将丧失信息源并忽略当同一间隔时间外交事务存档当中的任何商业活动信息。

RESTORE DATABASE AdventureWorks FROM DISK = 'C:AdventureWorks.BAK'WITH REPLACEGOSQL Server Management Studio

要采用 SSMS 来进行氢化,请执行者一般而言操作方法,在氢化的可选择网页上可选择“遮盖现有信息源”。

2.2.5 MOVE

RESTORE ... WITH MOVE 可选择强制您丧失信息源,但也可以原则上信息源文档(mdf 和 ldf)的新所在位置。如果您要从该信息源的备用氢化现有信息源,则无法够这样做,但如果您要从具有各有不同文档所在位置的各有不同实例氢化信息源,则或许能够采用此可选择。

RESTORE ... WITH MOVE 可选择将让您明确信息源文档的命名以及成立这些文档的所在位置。在采用此可选择之同一间隔时间,您能够知道这些文档的逻辑上命名以及 SQL Server 的所在位置。

如果早就存在另一个采用您想法氢化的相同文档名的信息源并且该信息源西北面联机稳定状态,则氢化将失败。但是如果信息源由于某种原因不在线并且文档并未关上,如果你不采用 WITH MOVE 可选择,丧失将遮盖这些文档,所以要小心翼翼你不想无意间遮盖好的信息源文档。

此外,当采用 WITH MOVE 可选择时,您能够保证常用 SQL Server 引擎的帐户理应在您原则上的文档夹当中成立这些文档。

T-SQL

1、明确备用的段落

您能够做的第一件事是明确文档的逻辑上命名和物理所在位置。这可以通过采用RESTORE FILELISTONLY下达来进行。这将为您获取逻辑上命名和物理命名。

例如:

RESTORE FILELISTONLY FROM DISK = 'C:AdventureWorks.BAK'GO

ColumnName

Value - Row 1

Value - Row2

LogicalName

AdventureWorks_Data

AdventureWorks_Log

PhysicalName

C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataAdventureWorks_Data.mdf

C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataAdventureWorks_Log.ldf

Type

D

L

2、采用 MOVE 丧失非常简单备用

也就是说我们要丧失这个信息源,但我们愿意将信息文档摆在“G:SQLData”文档夹当中,将外交事务存档文档摆在“H:SQLLog”文档夹当中。该下达如下所示:

RESTORE DATABASE AdventureWorks FROM DISK = 'C:AdventureWorks.BAK'WITH MOVE 'AdventureWorks_Data' TO 'G:SQLDataAdventureWorks_Data.mdf',MOVE 'AdventureWorks_Log' TO 'H:SQLLogAdventureWorks_Log.ldf'GO

氢化非常简单和外交事务存档备用 WITH MOVE 只需为第一次氢化原则上 WITH MOVE,因为以后信息源将西北面“氢化”稳定状态。第二次氢化只时会将段落加载打算采用的这个新所在位置。

RESTORE DATABASE AdventureWorks FROM DISK = 'C:AdventureWorks.BAK'WITH MOVE 'AdventureWorks_Data' TO 'G:SQLDataAdventureWorks_Data.mdf',MOVE 'AdventureWorks_Log' TO 'H:SQLLogAdventureWorks_Log.ldf',NORECOVERYGORESTORE LOG AdventureWorks FROM DISK = 'C:AdventureWorks.TRN'GOSQL Server Management Studio

要采用 SSMS 来进行氢化,请执行者一般而言操作方法,在氢化的可选择网页上,更换每个文档的“氢化为:”差值,如下所示。后面将氢化到根文档夹,但您可以根据能够将它们更换为 G:SQLData 和 H:SQLLog。

2.2.6 STOPAT

RESTORE ... WITH STOPAT 可选择强制您将信息源丧失到某个间隔时间点。为了使此可选择起起到,信息源能够西北面 FULL 或 Bulk-Logged 丧失的系统,并且您能够来进行外交事务存档备用。

当信息加载信息源时,它首先加载外交事务存档,然后在外交事务进行后加载信息文档。氢化外交事务存档时,SQL Server 将本港台外交事务存档当中的所有外交事务,并在将信息源置于需用稳定状态之同一间隔时间同一间隔时间滚或回滚它能够的外交事务。

这些外交事务每一个都有一个 LSN(逻辑上序列号)和一个间隔时间戳,因此在氢化外交事务存档时,您可以告诉 SQL Server 在哪里停止磁盘能够氢化的外交事务。

能够请注意的一点是,如果您的信息源采用 Bulk-Logged 丧失模型,并且外交事务存档当中存在最小就有操作方法(例如的产品嵌入),则您无法采用该外交事务存档来进行间隔时间点丧失。

T-SQL

采用 STOPAT 氢化信息源 这时会将 AdventureWorks 信息源氢化到等于“2022 年 10 月 23 日凌晨 5:31”的间隔时间点。

RESTORE DATABASE AdventureWorks FROM DISK = 'C:AdventureWorks.BAK' WITH NORECOVERYGO RESTORE LOG AdventureWorks FROM DISK = 'C:AdventureWorks.TRN' WITH RECOVERY, STOPAT = 'Oct 23, 2022 05:31:00 PM' GO

采用 STOPAT 丧失信息源,其当中丧失的系统为 Bulk-Logged 并且存在最低则会就有的操作方法

在此实例当中,我们有一个非常简单备用并且外交事务存档具有最低则会就有的操作方法。我们可以想法采用一般而言下达来进行间隔时间点丧失:

RESTORE DATABASE AdventureWorks FROM DISK = 'C:AdventureWorks.BAK' WITH NORECOVERYGO RESTORE LOG AdventureWorks FROM DISK = 'C:AdventureWorks.TRN' WITH RECOVERY, STOPAT = 'Oct 23, 2022 05:31:00 PM' GO

但是如果有的产品操作方法我们时会得到这个有误。

丧失操作方法将进行,但它时会丧失整个外交事务存档备用并使信息源西北面“打算丧失”稳定状态。然后,您可以丧失其他外交事务存档或采用RESTORE .. WITH RECOVERY可选择使信息源之后联机。

2.2.7 商业性信息源时会面无权限

氢化信息源时,您能够做的一件事是保证您拥有对信息源的商业性时会面无权限。如果信息源当中亦有任何系统时会,则氢化将失败。

赢取独家时会面无权

要赢取商业性时会面无权限,能够删除所有其他相互连接或更换它们所在的信息源,以便它们不采用您想法丧失的信息源。您可以采用sp_who2或SSMS拍照哪些相互连接打算采用您想法丧失的信息源。

采用 KILL 赢取商业性时会面无权的一个可选择是采用 KILL 下达来停止打算采用信息源的每个相互连接。但要请注意您要停止的相互连接以及或许能够最后发生的回滚问题。

采用 ALTER DATABASE 另一种可选择是将信息源置于单用户的系统,然后来进行丧失。这也时会根据您采用的可选择来进行回滚,但时会一次进行所有相互连接。

ALTER DATABASE AdventureWorks SET SINGLE_USER WITH ROLLBACK IMMEDIATEGORESTORE DATABASE AdventureWorks FROM DISK = 'C:AdventureWorks.BAK' GO三、小结

本文详解了SQLSERVER信息源丧失下达restore的采用方法有和相似可选择,结合具体的例子,非常简单明了,对于信息源丧失原理和实战有一个引人可贵的认识。

艾得辛和甲氨蝶呤哪个治疗类风湿效果好
成都妇科医院哪个专业
治痛风英太青和西乐葆哪个好
杭州哪家医院专业做人流
如何缓解视疲劳
友情链接