Sqlserver 还原

--完整还原

RESTORE DATABASE demoData
   FROM DISK=N‘D:\Backup\demoData.bak‘;  

RESTORE DATABASE { database_name | @database_name_var }
[ FROM <backup_device> [ ,...n ] ]
[ WITH
{
[       RECOVERY --指定还原操作将所有未提交的事务回滚,并使数据库可用;如果后续需要从差异备份和事务日志备份继续还原操作,那么必须使用 NORECOVERY选项;RECOVERY 选项用于还原操作的最后一个Restore命令中。

| NORECOVERY --指定还原操作不回滚未提交的事务,后续需要从差异备份或事务日志备份继续还原操作,在还原过程的最后一个Restore命令之前,使用NoRecovery选项。

| STANDBY =   
{standby_file_name | @standby_file_name_var } --RECOVERY(默认值)表示在当前备份完成前滚后,应执行回滚
]
| , <general_WITH_options> [ ,...n ]
| , <replication_WITH_option>
| , <change_data_capture_WITH_option>
| , <FILESTREAM_WITH_option>
| , <service_broker_WITH options>
| , \<point_in_time_WITH_options—RESTORE_DATABASE>
} [ ,...n ]
]
[;]

--恢复数据库的一部分(部分还原)
RESTORE DATABASE { database_name | @database_name_var }
<files_or_filegroups> [ ,...n ]
[ FROM <backup_device> [ ,...n ] ]
WITH
PARTIAL, NORECOVERY
[ , <general_WITH_options> [ ,...n ]
| , \<point_in_time_WITH_options—RESTORE_DATABASE>
] [ ,...n ]
[;]

--将特定文件或文件组还原到数据库(文件还原) 
RESTORE DATABASE { database_name | @database_name_var }
<file_or_filegroup> [ ,...n ]
[ FROM <backup_device> [ ,...n ] ]
WITH
{
[ RECOVERY | NORECOVERY ]
[ , <general_WITH_options> [ ,...n ] ]
} [ ,...n ]
[;]

--将特定页面还原到数据库(页面还原) 
RESTORE DATABASE { database_name | @database_name_var }
PAGE = ‘file:page [ ,...n ]‘
[ , <file_or_filegroups> ] [ ,...n ]
[ FROM <backup_device> [ ,...n ] ]
WITH
NORECOVERY
[ , <general_WITH_options> [ ,...n ] ]
[;]

--将事务日志还原到数据库(事务日志还原)
RESTORE LOG { database_name | @database_name_var }
[ <file_or_filegroup_or_pages> [ ,...n ] ]
[ FROM <backup_device> [ ,...n ] ]
[ WITH
{
[ RECOVERY | NORECOVERY | STANDBY =
{standby_file_name | @standby_file_name_var }
]
| , <general_WITH_options> [ ,...n ]
| , <replication_WITH_option>
| , \<point_in_time_WITH_options—RESTORE_LOG>
} [ ,...n ]
]
[;]

--将数据库还原到数据库快照捕获的时间点
RESTORE DATABASE { database_name | @database_name_var }
FROM DATABASE_SNAPSHOT = database_snapshot_name

<backup_device>::= --备份设备定义
{
{ logical_backup_device_name |
@logical_backup_device_name_var }
| { DISK | TAPE | URL } = { ‘physical_backup_device_name‘ |  
@physical_backup_device_name_var }
}

<files_or_filegroups>::= --文件或文件组定义
{
FILE = { logical_file_name_in_backup | @logical_file_name_in_backup_var }
| FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
| READ_WRITE_FILEGROUPS   --通过指定READ_WRITE_FILEGROUPS 创建的备份称为“部分备份”。在简单恢复模式下,只允许对只读文件组执行文件组备份。还原的数据备份类型:数据库备份、部分备份或文件备份。对于数据库备份或部分备份,日志备份序列必须从数据库备份或部分备份的结尾处开始延续。对于一组文件备份,日志备份序列必须从整组文件备份的开头开始延续。

}

<general_WITH_options> [ ,...n ]::= --普通WITH选项定义
--还原操作选项 
MOVE ‘logical_file_name_in_backup‘ TO ‘operating_system_file_name‘
[ ,...n ]
| REPLACE --在SQL Server实例中,如果要还原的数据和现存的数据库同名,那么,指定Replace选项,SQL Server将会把已存在的同名数据库删除。如果没有指定Replace选项,SQL Server会做安全检查,不会将现存的同名数据库删除
| RESTART --在数据库还原操作中断(interrupt)时,重启还原操作,从中断处重新开始还原操作
| RESTRICTED_USER | CREDENTIAL --对新还原的数据库,限制(restrict)用户访问,只允许角色 db_owner, dbcreator 或 sysadmin 的成员的访问

--备份设置选项 
| FILE = { backup_set_file_number | @backup_set_file_number }
| PASSWORD = { password | @password_variable }

--媒体设置选项 
| MEDIANAME = { media_name | @media_name_variable }
| MEDIAPASSWORD = { mediapassword | @mediapassword_variable }
| BLOCKSIZE = { blocksize | @blocksize_variable }

--数据事务选项 
| BUFFERCOUNT = { buffercount | @buffercount_variable }
| MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable }

--错误检测选项 
| { CHECKSUM | NO_CHECKSUM }  --检测校验和
| { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }

--检测选项 
| STATS [ = percentage ]

--磁带选项 
| { REWIND | NOREWIND }
| { UNLOAD | NOUNLOAD }

<replication_WITH_option>::=
| KEEP_REPLICATION

<change_data_capture_WITH_option>::=
| KEEP_CDC

<FILESTREAM_WITH_option>::=
| FILESTREAM ( DIRECTORY_NAME = directory_name )

<service_broker_WITH_options>::=
| ENABLE_BROKER
| ERROR_BROKER_CONVERSATIONS
| NEW_BROKER

\<point_in_time_WITH_options—RESTORE_DATABASE>::=
| {
STOPAT = { ‘datetime‘| @datetime_var }
| STOPATMARK = ‘lsn:lsn_number‘
[ AFTER ‘datetime‘]
| STOPBEFOREMARK = ‘lsn:lsn_number‘
[ AFTER ‘datetime‘]
}

\<point_in_time_WITH_options—RESTORE_LOG>::=
| {
STOPAT = { ‘datetime‘| @datetime_var }
| STOPATMARK = { ‘mark_name‘ | ‘lsn:lsn_number‘ }
[ AFTER ‘datetime‘]
| STOPBEFOREMARK = { ‘mark_name‘ | ‘lsn:lsn_number‘ }
[ AFTER ‘datetime‘]
}

时间: 2024-12-17 04:03:07

Sqlserver 还原的相关文章

sqlserver还原bak备份文件

先查看数据库逻辑名称: restore filelistonly from disk='D:/database.bak' 然后恢复: restore database smsdb from disk = 'd:\smsdb.bak' with move '数据库逻辑名称' to 'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\db_data.mdf' ,move '日志逻辑名称' to 'C:\Progr

SQLServer 还原数据库

通过Sqlserver的Management Studio可以还原,不过可能是我的云主机性能太差,每次打开再导入都要卡一会.. 用命令行应该是能想到的最简单的方法了,先把bat命令记下来: SQLCMD -S 172_21_0_5\SQLEXPRESS -U sa -P 123456 -Q " restore database rs2db from disk='C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\Backu

SQLSERVER还原数据库失败:错误: 3154

在SQL Server 2008版本中还原从sql server 2005备份出来的数据库时,提示错误:"备份集中的数据库备份与现有的 '***' 数据库不同.RESTORE DATABASE 正在异常终止. (Microsoft SQL Server,错误: 3154)". 在这里记录一下SQL Server2008 3154错误的解决办法,希望对大家有所帮助. 原因分析 1 在SQL Server2005及以下版本做数据库备份还原时,需要首先建立数据库,然后才能进行数据库还原操作:

Sqlserver 还原那些事

由于想总结的东西比较杂乱,就起了这么一个题目 1.当还原数据库,没有选择结尾日志备份时,会出现下图异常: 这是因为,对于使用完全恢复模式或大容量日志恢复模式的数据库,在大多数情况下,您必须在还原数据库前备份日志的结尾.如果想不抛出这个错误 就需要选择 覆盖现有数据库(With Replace). 使用 REPLACE 选项后,就会忽略还原时通常执行的几项重要安全检查. 忽略的检查如下: 一 还原时使用其他数据库的备份覆盖现有数据库.使用 REPLACE 选项后,即使指定的数据库名称与备份集中记录

sqlserver还原备份(转)

一.知识点 完全备份: 备份全部选中的文件夹,并不依赖文件的存档属性来确定备份那些文件.(在备份过程中,任何现有的标记都被清除,每个文件都被标记为已备份,换言之,清除存档属性).完全备份也叫完整备份. 差异备份: 差异备份是针对完全备份:备份上一次的完全备份后发生变化的所有文件.(差异备份过程中,只备份有标记的那些选中的文件和文件夹.它不清除标记,即:备份后不标记为已备份文件,换言之,不清除存档属性). 增量备份: 增量备份是针对于上一次备份(无论是哪种备份):备份上一次备份后,所有发生变化的文

SQLserver还原提示正在还原中。解决方法

今天在Sqlerver还原数据库时一直就卡在那里提示“正在还原…”的状态,此时无法操作数据库,下面我来给大家介绍解决些问题的方法 解决方法: RESTORE DATABASE demo FROM DISK = 'D:/demo.bak' WITH MOVE 'demo' TO 'd:/demo.mdf', MOVE 'demo_log' TO 'd:/demo.ldf', STATS = 10, REPLACE GO如果不清楚备份文件对应的逻辑文件名,可用如下进行查询:--返回由备份集内包含的数

sqlserver 还原.mdf文件

USE master; GO CREATE DATABASE libao ON (FILENAME = 'F:\lib\lib.mdf'), (FILENAME = 'F:\lib\lib_1.ldf') FOR ATTACH; GO 原文地址:https://www.cnblogs.com/lxh520/p/9004096.html

(4.19)深入理解SQLSERVER的日志链

您真的理解了SQLSERVER的日志链了吗? 转自:https://www.cnblogs.com/lyhabc/p/3460272.html 先感谢宋沄剑给本人指点迷津,还有郭忠辉童鞋今天在QQ群里抛出的问题 这个问题跟宋沄剑讨论了三天,再次感谢宋沄剑 一直以来,SQLSERVER提供了一个非常好的管理工具:SSMS 又因为这个管理工具太好了,所有操作的简单化,以至于使我们中毒太深, 对于SQLSERVER内部的一些概念搞得不清不楚 比如这些概念:日志备份链,备份日志链,日志链,备份链,备份集

SQLSERVER使用密码加密备份文件以防止未经授权还原数据库

原文:SQLSERVER使用密码加密备份文件以防止未经授权还原数据库 SQLSERVER使用密码加密备份文件以防止未经授权还原数据库 在备份数据库的时候,用户可以为媒体集.备份集或两者指定密码 在backup语句中,定义备份集密码和媒体密码为可选功能.使用密码可防止利用SQLSERVER工具未经授权地执行还原操作和在媒体中添加备份集. 如果指定了密码则用户还必须提供媒体密码才能执行这些操作 关于媒体集和备份集大家可以参考MSDN:http://msdn.microsoft.com/zh-cn/l