mssql数据库备份恢复命令.docx
《mssql数据库备份恢复命令.docx》由会员分享,可在线阅读,更多相关《mssql数据库备份恢复命令.docx(25页珍藏版)》请在冰豆网上搜索。
mssql数据库备份恢复命令
MSSQL数据库备份和恢复命令
BACKUPDATABASE 数据库名称TODISK='备份途径'
数据库恢复命令:
RESTOREDATABASE数据库名称FROMDISK='备份文件完整途径'
MSSQL帮忙文档中对BACKUP命令的说明如下:
。
若是为媒体集概念了媒体密码,那么必需提供密码。
MEDIADESCRIPTION={text|@text_variable}
指明媒体集的自由格式文本描述,最多为255个字符。
MEDIADESCRIPTION={text|@text_variable}
为整个备份媒体集指明媒体名,最多为128个字符。
假设指定了MEDIANAME,那么它必需与以前指定的媒体名相匹配,该媒体名已存在于备份卷中。
假设没有指定MEDIANAME,或指定了SKIP选项,将可不能对媒体名进行验证检查。
MEDIAPASSWORD={mediapassword|@mediapassword_variable}
为媒体集设置密码。
MEDIAPASSWORD是一个字符串。
若是为媒体集概念了密码,那么在该媒体集上创建备份集时必需提供此密码。
另外,从该媒体集执行任何还原操作时也必需提供媒体密码。
只有通过格式化才能重写受密码爱惜的媒体。
有关更多信息,请参见FORMAT选项。
有关利用密码的更多信息,请参见"权限"部份。
NAME={backup_set_name|@backup_set_var}
指定备份集的名称。
名称最长可达128个字符。
假设没有指定NAME,它将为空。
NORECOVERY
只与BACKUPLOG一路利用。
备份日记尾部并使数据库处于正在还原的状态。
当将故障转移到辅助数据库或在RESTORE操作前保留日记尾部时,NORECOVERY很有效。
STANDBY=undo_file_name
只与BACKUPLOG一路利用。
备份日记尾部并使数据库处于只读或备用模式。
撤消文件名指定了容纳回滚更改的存储,若是随后应用RESTORELOG操作,那么必需撤消这些回滚更改。
若是指定的撤消文件名不存在,SQLServer将创建该文件。
若是该文件已存在,那么SQLServer将重写它。
有关更多信息,请参见利用备用效劳器。
NOREWIND
指定SQLServer在备份操作完成后使磁带维持打开。
NOREWIND意即NOUNLOAD。
SQLServer将保留磁带驱动器的所有权,直到BACKUP或RESTORE命令利用REWIND为止。
若是无心中使磁带处于打开状态,那么释放磁带的最快方式是利用下面的RESTORE命令:
RESTORELABELONLYFROMTAPE=WITHREWIND
通过查询master数据库中的sysopentapes表能够查找正在打开的磁带列表。
REWIND
指定SQLServer将释放磁带和倒带。
若是NOREWIND和REWIND均未指定,那么默许设置为REWIND。
NOSKIP
指示BACKUP语句在能够重写媒体上的所有备份集之前先检查它们的过时日期。
SKIP
禁用备份集过时和名称检查,这些检查一样由BACKUP语句执行以防重写备份集。
有关更多信息,请参见注释部份。
NOUNLOAD
指定不在备份后从磁带驱动器中自动卸载磁带。
设置始终为NOUNLOAD,直到指定UNLOAD为止。
该选项只用于磁带设备。
UNLOAD
指定在备份完成后自动倒带并卸载磁带。
启动新用户会话时其默许设置为UNLOAD。
该设置一直维持到用户指定了NOUNLOAD时为止。
该选项只用于磁带设备。
RESTART
指定SQLServer从头启动一个被中断的备份操作。
因为RESTART选项在备份操作被中断处从头启动该操作,因此它节省了时刻。
假设要从头启动一个特定的备份操作,请重复整个BACKUP语句而且加入RESTART选项。
不必然非要利用RESTART选项,可是它能够节省时刻。
重要 该选项只用于导向磁带媒体的备份和跨越了多个磁带卷的备份。
在备份的第一卷上永久可不能有从头启动操作。
STATS[=percentage]
每当另一个percentage终止时显示一条消息,它被用于测量进度。
若是省略percentage,SQLServer将每完成10个百分点显示一条消息。
指定包括在数据库备份中的文件或文件组的逻辑名。
能够指定多个文件或文件组。
FILE={logical_file_name|@logical_file_name_var}
给一个或多个包括在数据库备份中的文件命名。
FILEGROUP={logical_filegroup_name|@logical_filegroup_name_var}
给一个或多个包括在数据库备份中的文件组命名。
说明 当数据库的大小和性能要求使得进行完整数据库备份不切实际时,备份一个文件。
假设要单独备份事务日记,请利用BACKUPLOG。
重要 必需通过利用BACKUPLOG提供事务日记的单独备份,才能利用文件和文件组备份来恢复数据库。
有关文件备份的更多信息,请参见备份利用文件备份。
若是恢复模型为SIMPLE,那么不许诺文件和文件组备份。
n
是一个占位符,表示能够指定多个文件和文件组。
对文件或文件组的最大个数没有限制。
LOG
指定只备份事务日记。
该日记是从上一次成功执行了的LOG备份到当前日记的末尾。
一旦备份日记,可能会截断复制或活动事务再也不需要的空间。
说明 假设备份日记看来并无截断大部份的日记,那么有可能在日记中存在一个旧的开放事务。
能够利用DBCCSQLPERF(LOGSPACE)观看日记空间。
有关更多信息,请参见事务日记备份。
NO_LOG|TRUNCATE_ONLY
不必备份复制日记即删除不活动的日记部份,而且截断日记。
该选项会释放空间。
因为并非保留日记备份,因此没有必要指定备份设备。
NO_LOG和TRUNCATE_ONLY是同义的。
利用NO_LOG或TRUNCATE_ONLY备份日记后,记录在日记中的更改不可恢复。
为了恢复,请当即执行BACKUPDATABASE。
NO_TRUNCATE
许诺在数据库损坏时备份日记。
注释
能够将数据库或日记备份追加到任何磁盘或磁带设备上,从而使得数据库和它的事务日记能存储在一个物理位置中。
当数据库正在利历时,SQLServer利用一个联机备份进程来对数据库进行备份。
下面的列表包括在数据库或事务日记备份时无法进行的操作:
在备份操作时许诺进行文件治理操作,如带有ADDFILE或REMOVEFILE选项的ALTERDATABASE语句,和INSERT、UPDATE或DELETE语句。
收缩数据库或文件。
这包括自动收缩操作。
假设在这些操作正在进行时启动备份,备份将终止。
假设正在进行备份时,试图进行这些操作,那么操作会失败。
只要操作系统支持数据库的排序规那么,就能够够在不同的平台之间执行备份操作,即便这些平台利用不同的处置器类型。
有关更多信息,请参见SQLServer排序规那么基础知识。
备份文件格式
因为SQLServer2000的备份格式遵从Microsoft磁带格式(MTF),该格式与WindowsNT磁带备份所利用的格式相同,因此SQLServer备份可与WindowsNT备份共存于磁带媒体上。
假设要确保彼此操作性,磁带应由NTBackup格式化。
备份类型
SQLServer支持的备份类型包括:
完整数据库备份,它备份包括事务日记的整个数据库。
在完整数据库备份之间执行不同数据库备份。
事务日记备份。
日记备份序列提供了持续的事务信息链,可支持从数据库、不同或文件备份中快速恢复。
文件和文件组备份。
那时刻限制使得完整数据库备份不切实际时,请利用BACKUP备份数据库文件和文件组,而不是备份完整数据库。
假设要备份一个文件而不是整个数据库时,请合理安排步骤以确保数据库中所有的文件按规那么备份。
同时必需进行单独的事务日记备份。
在恢复一个文件备份后,利用事务日记将文件内容前滚,使其与数据库其余部份一致。
在条带集中利用的备份设备必需一直在条带集中利用(除非在某处用FORMAT从头初始化),而且设备数量不变。
在备份设备已概念为条带集的组成部份后,就不能用于单个设备备份,除非指定了FORMAT。
一样,一个含有非条带集备份的备份设备不能用于条带集,除非指定了FORMAT。
利用FORMAT来分开条带备份集。
若是写入媒体头时未指定MEDIANAME或MEDIADESCRIPTION,那么与空项对应的媒体头字段将为空。
若是恢复模型为SIMPLE,那么无法利用BACKUPLOG。
应该利用BACKUPDATABASE来替代。
SKIP、NOSKIP、INIT和NOINIT间的彼此作用
下表说明{INIT|NOINIT}和{NOSKIP|SKIP}子句间是如何彼此作用的。
说明 在所有这些交互操作中,若是磁带媒体为空或磁带备份文件不存在,那么写入媒体头并继续。
若是媒体头不为空或不含有效的媒体头,那么指出这是无效的MTF媒体并取消备份。
INIT
NOINIT
SKIP
如果卷中包含有效的1媒体头,则验证媒体密码并重写媒体上的全部备份集,仅保留媒体头。
如果卷不含有效的媒体头,则使用给定的MEDIANAME、MEDIAPASSWORD和MEDIADESCRIPTION(若有)生成媒体头。
如果卷中包含有效的媒体头,则验证媒体密码并添加备份集,并保留所有现有备份集。
如果卷不含有效的媒体头,则会出错。
NOSKIP
如果该卷包含一个有效的媒体头,将执行以下检查:
验证媒体密码。
2
如果指定了MEDIANAME,将验证所给的媒体名是否匹配媒体头的媒体名。
验证媒体上没有未过期的备份集。
如果有,将终止备份。
如果这些检查都通过了,将重写该媒体上一切备份集,只保留媒体头。
如果卷不含有效的媒体头,则使用给定的MEDIANAME、MEDIAPASSWORD和MEDIADESCRIPTION(若有)生成媒体头。
如果该卷包含一个有效的媒体头,将验证媒体密码*并且验证媒体是否名匹配所给的MEDIANAME(假如有的话)。
如果匹配,追加备份集,同时保留所有现有的备份集。
如果卷不含有效的媒体头,则会出错。
1.有效性包括MTF版本号和其它题目信息。
若是不支持指定的版本或指定的版本不是期望值,将会发生错误。
2.用户必需属于适当的固定数据库或效劳器角色,并提供执行备份操作所需的正确媒体密码。
说明 为维持向后兼容性,在BACKUP语句的语法中可利用DUMP关键字替代BACKUP关键字。
另外,可利用TRANSACTION关键字替代LOG关键字。
备份历史表
SQLServer利用以下的备份历史表来跟踪备份活动:
执行RESTORE时,将修改备份历史记录表。
兼容性注意事项
注意 无法在初期SQLServer版本中还原利用Microsoft®SQLServer?
2000创建的备份。
权限
BACKUPDATABASE和BACKUPLOG权限默许情形下授予sysadmin固定效劳器角色和db_owner及db_backupoperator固定数据库角色的成员。
另外,用户能够为媒体集、备份集或二者指定密码。
若是为媒体集指定了密码,那么用户假设只是适当的固定效劳器和数据库角色成员还不足以执行备份。
用户还必需提供媒体密码才能执行这些操作。
一样,除非在还原命令中指定正确的媒体集密码和备份集密码,不然不能执行还原操作。
在BACKUP语句中,概念备份集密码和媒体集密码为可选功能。
利用密码可避免利用SQLServer2000工具XX地执行还原操作和在媒体中添加备份集,可是,密码不能避免通过FORMAT选项重写媒体。
因此,尽管利用密码对避免利用SQLServer工具XX地访问媒体内容有帮忙,但密码不能避免媒体内容被破坏。
密码不能完全避免XX地访问媒体内容,缘故在于备份集中的数据没有加密,理论上能够被专为此目的创建的程序所检查。
关于平安性相当重要的场合,避免XX的个人访问媒体超级重要。
为不是用相关密码创建的对象指定密码是错误的做法。
BACKUP利用由PASSWORD选项提供的备份集密码创建备份集。
另外,BACKUP正常情形下在写入媒体之前验证由MEDIAPASSWORD选项提供的媒体密码。
BACKUP不验证媒体密码的唯一情形是当格式化媒体时,这将重写媒体头。
BACKUP只在以下情形下格式化媒体:
若是指定了FORMAT选项。
若是媒体头无效且指定了INIT。
若是正在写入延续卷。
若是BACKUP写入媒体头,BACKUP将给MEDIAPASSWORD选项中指定的值指派媒体集密码。
有关密码对SKIP、NOSKIP、INIT和NOINIT选项的阻碍的更多信息,请参见注释部份。
备份设备物理文件的所有权和权限问题可能会妨碍备份操作。
SQLServer必需能够读取并写入设备;运行SQLServer效劳的帐户必需有写入权限。
可是,为设备在系统表中添加项目的sp_addumpdevice不检查文件访问权。
备份设备物理文件的这些问题可能直到为备份或还原而访问物理资源时才会显现。
例如
A.备份整个MyNwind数据库
说明 MyNwind数据库仅用于演示。
下例创建用于寄存MyNwind数据库完整备份的逻辑备份设备。
--CreatealogicalbackupdeviceforthefullMyNwindmasterEXECsp_addumpdevice'disk','MyNwind_1',DISK='c:
\ProgramFiles\MicrosoftSQLServer\MSSQL\BACKUP\'--BackupthefullMyNwindDATABASEMyNwindTOMyNwind_1
B.备份数据库和日记
本例创建了一个数据库和日记的完整备份。
将数据库备份到称为MyNwind_2的逻辑备份设备上,然后将日记备份到称为MyNwindLog1的逻辑备份设备上。
说明 创建逻辑备份设备需要一次完成。
--CreatethebackupdeviceforthefullMyNwindmasterEXECsp_addumpdevice'disk','MyNwind_2','c:
\ProgramFiles\MicrosoftSQLServer\MSSQL\BACKUP\'--CreatethelogbackupmasterEXECsp_addumpdevice'disk','MyNwindLog1','c:
\ProgramFiles\MicrosoftSQLServer\MSSQL\BACKUP\'--BackupthefullMyNwindDATABASEMyNwindTOMyNwind_2--UpdateactivityhasoccurredsincethefulldatabaseBackupthelogoftheMyNwindLOGMyNwindTOMyNwindLog1
MSSQL帮忙文档中对RESTORE命令的说明如下:
RESTORE
还原利用BACKUP命令所做的备份。
有关数据库备份和还原操作的更多信息,请参见。
语法
还原整个数据库:
RESTOREDATABASE{database_name|@database_name_var}[FROM[,...n]][WITH [RESTRICTED_USER] [[,]FILE={file_number|@file_number}] [[,]PASSWORD={password|@password_variable}] [[,]MEDIANAME={media_name|@media_name_variable}] [[,]MEDIAPASSWORD={mediapassword|@mediapassword_variable}] [[,]MOVE'logical_file_name'TO'operating_system_file_name'] [,...n] [[,]KEEP_REPLICATION] [[,]{NORECOVERY|RECOVERY|STANDBY=undo_file_name}] [[,]{NOREWIND|REWIND}] [[,]{NOUNLOAD|UNLOAD}] [[,]REPLACE] [[,]RESTART] [[,]STATS[=percentage]]]
还原数据库的部份内容:
RESTOREDATABASE{database_name|@database_name_var} [,...n][FROM[,...n]][WITH {PARTIAL} [[,]FILE={file_number|@file_number}] [[,]PASSWORD={password|@password_variable}] [[,]MEDIANAME={media_name|@media_name_variable}] [[,]MEDIAPASSWORD={mediapassword|@mediapassword_variable}] [[,]MOVE'logical_file_name'TO'operating_system_file_name'] [,...n] [[,]NORECOVERY] [[,]{NOREWIND|REWIND}] [[,]{NOUNLOAD|UNLOAD}] [[,]REPLACE] [[,]RESTRICTED_USER] [[,]RESTART] [[,]STATS[=percentage]]]
还原特定的文件或文件组:
RESTOREDATABASE{database_name|@database_name_var} [,...n][FROM[,...n]][WITH [RESTRICTED_USER] [[,]FILE={file_number|@file_number}] [[,]PASSWORD={password|@password_variable}] [[,]MEDIANAME={media_name|@media_name_variable}] [[,]MEDIAPASSWORD={mediapassword|@mediapassword_variable}] [[,]MOVE'logical_file_name'TO'operating_system_file_name'] [,...n] [[,]NORECOVERY] [[,]{NOREWIND|REWIND}] [[,]{NOUNLOAD|UNLOAD}] [[,]REPLACE] [[,]RESTART] [[,]STATS[=percentage]]]
还原事务日记:
RESTORELOG{database_name|@database_name_var}[FROM[,...n]][WITH [RESTRICTED_USER] [[,]FILE={file_number|@file_number}] [[,]PASSWORD={password|@password_variable}] [[,]MOVE'logical_file_name'TO'operating_system_file_name'] [,...n] [[,]MEDIANAME={media_name|@media_name_variable}] [[,]MEDIAPASSWORD={mediapassword|@mediapassword_variable}] [[,]KEEP_REPLICATION] [[,]{NORECOVERY|RECOVERY|STANDBY=undo_file_name}] [[,]{NOREWIND|REWIND}] [[,]{NOUNLOAD|UNLOAD}] [[,]RESTART] [[,]STATS[=percentage]] [[,]STOPAT={date_time|@date_time_var} |[,]STOPATMARK='mark_name'[AFTERdatetime] |[,]STOPBEFOREMARK='mark_name'[AFTERdatetime] ]]
:
:
= { {'logical_backup_device_name'|@logical_backup_device_name_var}