BACKUP BACKUP - 北京怡康軟件科技有限公司 資源網(wǎng) "/>
備份整個(gè)數(shù)據(jù)庫(kù)、事務(wù)日志,或者備份一個(gè)或多個(gè)文件或文件組。有關(guān)數(shù)據(jù)庫(kù)備份和恢復(fù)操作的更多信息,請(qǐng)參見備份和還原數(shù)據(jù)庫(kù)。
備份整個(gè)數(shù)據(jù)庫(kù):
BACKUP DATABASE { database_name | @database_name_var }
TO < backup_device > [ ,...n ]
[ WITH
[ BLOCKSIZE = { blocksize | @blocksize_variable } ]
[ [ , ] DESCRIPTION = { 'text' | @text_variable } ]
[ [ , ] DIFFERENTIAL ]
[ [ , ] EXPIREDATE = { date | @date_var }
| RETAINDAYS = { days | @days_var } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] FORMAT | NOFORMAT ]
[ [ , ] { INIT | NOINIT } ]
[ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
[ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]
[ [ , ] { NOSKIP | SKIP } ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
]
備份特定的文件或文件組:
BACKUP DATABASE { database_name | @database_name_var }
< file_or_filegroup > [ ,...n ]
TO < backup_device > [ ,...n ]
[ WITH
[ BLOCKSIZE = { blocksize | @blocksize_variable } ]
[ [ , ] DESCRIPTION = { 'text' | @text_variable } ]
[ [ , ] DIFFERENTIAL ]
[ [ , ] EXPIREDATE = { date | @date_var }
| RETAINDAYS = { days | @days_var } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] FORMAT | NOFORMAT ]
[ [ , ] { INIT | NOINIT } ]
[ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
[ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]
[ [ , ] { NOSKIP | SKIP } ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
]
備份一個(gè)事務(wù)日志:
BACKUP LOG { database_name | @database_name_var }
{
TO < backup_device > [ ,...n ]
[ WITH
[ BLOCKSIZE = { blocksize | @blocksize_variable } ]
[ [ , ] DESCRIPTION = { 'text' | @text_variable } ]
[ [ ,] EXPIREDATE = { date | @date_var }
| RETAINDAYS = { days | @days_var } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] FORMAT | NOFORMAT ]
[ [ , ] { INIT | NOINIT } ]
[ [ , ] MEDIADESCRIPTION = { 'text' | @text_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
[ [ , ] NAME = { backup_set_name | @backup_set_name_var } ]
[ [ , ] NO_TRUNCATE ]
[ [ , ] { NORECOVERY | STANDBY = undo_file_name } ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOSKIP | SKIP } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
]
}
< backup_device > ::=
{
{ logical_backup_device_name | @logical_backup_device_name_var }
|
{ DISK | TAPE } =
{ 'physical_backup_device_name' | @physical_backup_device_name_var }
}
< file_or_filegroup > ::=
{
FILE = { logical_file_name | @logical_file_name_var }
|
FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
}
截?cái)嗍聞?wù)日志:
BACKUP LOG { database_name | @database_name_var }
{
[ WITH
{ NO_LOG | TRUNCATE_ONLY } ]
}
DATABASE
指定一個(gè)完整的數(shù)據(jù)庫(kù)備份。假如指定了一個(gè)文件和文件組的列表,那么僅有這些被指定的文件和文件組被備份。
說明 在進(jìn)行完整數(shù)據(jù)庫(kù)備份或差異數(shù)據(jù)庫(kù)備份時(shí),Microsoft® SQL Server™ 備份足夠的事務(wù)日志,以生成一個(gè)將在還原數(shù)據(jù)庫(kù)時(shí)使用的一致的數(shù)據(jù)庫(kù)。在 master 數(shù)據(jù)庫(kù)上只能采用完整數(shù)據(jù)庫(kù)備份。
{ database_name | @database_name_var }
指定了一個(gè)數(shù)據(jù)庫(kù),從該數(shù)據(jù)庫(kù)中對(duì)事務(wù)日志、部分?jǐn)?shù)據(jù)庫(kù)或完整的數(shù)據(jù)庫(kù)進(jìn)行備份。如果作為變量 (@database_name_var) 提供,則可將該名稱指定為字符串常量 (@database_name_var = database name) 或字符串?dāng)?shù)據(jù)類型(ntext 或 text 數(shù)據(jù)類型除外)的變量。
< backup_device >
指定備份操作時(shí)要使用的邏輯或物理備份設(shè)備??梢允窍铝幸环N或多種形式:
當(dāng)指定 TO DISK 或 TO TAPE 時(shí),請(qǐng)輸入完整路徑和文件名。例如,DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\Mybackup.dat' 或 TAPE = '\\.\TAPE0'。
說明 對(duì)于備份到磁盤的情況,如果輸入一個(gè)相對(duì)路徑名,備份文件將存儲(chǔ)到默認(rèn)的備份目錄中。該目錄在安裝時(shí)被設(shè)置并且存儲(chǔ)在 KEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer 目錄下的 BackupDirectory 注冊(cè)表鍵值中。
如果使用的是具有統(tǒng)一命名規(guī)則 (UNC) 名稱的網(wǎng)絡(luò)服務(wù)器或已重新定向的驅(qū)動(dòng)器號(hào),則請(qǐng)指定磁盤的設(shè)備類型。
當(dāng)指定多個(gè)文件時(shí),可以混合邏輯文件名(或變量)和物理文件名(或變量)。但是,所有的設(shè)備都必須為同一類型(磁盤、磁帶或管道)。
Windows 98 不支持備份到磁盤。
n
是表示可以指定多個(gè)備份設(shè)備的占位符。備份設(shè)備數(shù)目的上限為 64。
BLOCKSIZE = { blocksize | @blocksize_variable }
用字節(jié)數(shù)來指定物理塊的大小。在 Windows NT 系統(tǒng)上,默認(rèn)設(shè)置是設(shè)備的默認(rèn)塊大小。一般情況下,當(dāng) SQL Server 選擇適合于設(shè)備的塊大小時(shí)不需要此參數(shù)。在基于 Windows 2000 的計(jì)算機(jī)上,默認(rèn)設(shè)置是 65,536(64 KB,是 SQL Server 支持的最大大?。?。
對(duì)于磁盤,BACKUP 自動(dòng)決定磁盤設(shè)備合適的塊大小。
說明 如果要將結(jié)果備份集存儲(chǔ)到 CD-ROM 中然后從 CD-ROM 中恢復(fù),請(qǐng)將 BLOCKSIZE 設(shè)為 2048。
磁帶的默認(rèn) BLOCKSIZE 為 65,536 (64 KB)。顯式聲明塊大小將替代 SQL Server 選擇的塊大小。
DESCRIPTION = { 'text' | @text_variable }
指定描述備份集的自由格式文本。該字符串最長(zhǎng)可以有 255 個(gè)字符。
DIFFERENTIAL
指定數(shù)據(jù)庫(kù)備份或文件備份應(yīng)該與上一次完整備份后改變的數(shù)據(jù)庫(kù)或文件部分保持一致。差異備份一般會(huì)比完整備份占用更少的空間。對(duì)于上一次完整備份時(shí)備份的全部單個(gè)日志,使用該選項(xiàng)可以不必再進(jìn)行備份。有關(guān)更多信息,請(qǐng)參見差異數(shù)據(jù)庫(kù)備份和文件差異備份。
說明 在進(jìn)行完整數(shù)據(jù)庫(kù)備份或差異備份時(shí),SQL Server 備份足夠的事務(wù)日志,從而在恢復(fù)數(shù)據(jù)庫(kù)時(shí)生成一個(gè)一致的數(shù)據(jù)庫(kù)。
EXPIREDATE = { date | @date_var }
指定備份集到期和允許被重寫的日期。如果將該日期作為變量 (@date_var) 提供,則可以將該日期指定為字符串常量 (@date_var = date)、字符串?dāng)?shù)據(jù)類型變量(ntext 或 text 數(shù)據(jù)類型除外)、smalldatetime 或者 datetime 變量,并且該日期必須符合已配置的系統(tǒng) datetime 格式。
RETAINDAYS = { days | @days_var }
指定必須經(jīng)過多少天才可以重寫該備份媒體集。假如用變量 (@days_var) 指定,該變量必須為整型。
重要 假如 EXPIREDATE 或 RETAINDAYS 沒有指定,有效期將取決于 sp_configure 的 media retention 配置設(shè)置。這些選項(xiàng)僅僅阻止 SQL Server 重寫文件。用其它方法可擦除磁帶,而通過操作系統(tǒng)可以刪除磁盤文件。有關(guān)過期驗(yàn)證的更多信息,請(qǐng)參見本主題的 SKIP 和 FORMAT。
PASSWORD = { password | @password_variable }
為備份集設(shè)置密碼。 PASSWORD 是一個(gè)字符串。如果為備份集定義了密碼,必須提供這個(gè)密碼才能對(duì)該備份集執(zhí)行任何還原操作。
重要 備份集密碼防止未經(jīng)授權(quán)即通過 SQL Server 2000 工具訪問備份集的內(nèi)容,但是不能防止重寫備份集。
有關(guān)使用密碼的更多信息,請(qǐng)參見"權(quán)限"部分。
FORMAT
指定應(yīng)將媒體頭寫入用于此備份操作的所有卷。任何現(xiàn)有的媒體頭都被重寫。FORMAT 選項(xiàng)使整個(gè)媒體內(nèi)容無效,并且忽略任何現(xiàn)有的內(nèi)容。
重要 使用 FORMAT 要謹(jǐn)慎。格式化一個(gè)備份設(shè)備或媒體將使整個(gè)媒體集不可用。例如,如果初始化現(xiàn)有條帶備份集中的單個(gè)磁帶,則整個(gè)備份集都將變得不可用。
通過指定 FORMAT,備份操作也就暗示了 SKIP 和 INIT;這些都不必顯式說明。
NOFORMAT
指定媒體頭不應(yīng)寫入所有用于該備份操作的卷中,并且不要重寫該備份設(shè)備除非指定了 INIT。
INIT
指定應(yīng)重寫所有備份集,但是保留媒體頭。如果指定了 INIT,將重寫那個(gè)設(shè)備上的所有現(xiàn)有的備份集數(shù)據(jù)。
當(dāng)遇到以下幾種情況之一時(shí)不重寫備份媒體:
使用 SKIP 選項(xiàng)替代這些檢查。有關(guān)使用 SKIP、NOSKIP、INIT 和 NOINIT 時(shí)的相互作用關(guān)系的更多信息,請(qǐng)參見注釋部分。
說明 如果備份媒體有密碼保護(hù),SQL Server 將不寫入媒體,除非提供媒體密碼。SKIP 選項(xiàng)不替代此檢查。只有通過格式化才能重寫受密碼保護(hù)的媒體。有關(guān)更多信息,請(qǐng)參見 FORMAT 選項(xiàng)。
NOINIT
表示備份集將追加到指定的磁盤或磁帶設(shè)備上,以保留現(xiàn)有的備份集。NOINIT 是默認(rèn)設(shè)置。
RESTORE 命令的 FILE 選項(xiàng)用于在還原時(shí)選擇適當(dāng)?shù)膫浞菁?。有關(guān)更多信息,請(qǐng)參見 RESTORE。
如果為媒體集定義了媒體密碼,則必須提供密碼。
MEDIADESCRIPTION = { text | @text_variable }
指明媒體集的自由格式文本描述,最多為 255 個(gè)字符。
MEDIADESCRIPTION = { text | @text_variable }
為整個(gè)備份媒體集指明媒體名,最多為 128 個(gè)字符。假如指定了 MEDIANAME,則它必須與以前指定的媒體名相匹配,該媒體名已存在于備份卷中。假如沒有指定 MEDIANAME,或指定了 SKIP 選項(xiàng),將不會(huì)對(duì)媒體名進(jìn)行驗(yàn)證檢查。
MEDIAPASSWORD = { mediapassword | @mediapassword_variable }
為媒體集設(shè)置密碼。MEDIAPASSWORD 是一個(gè)字符串。
如果為媒體集定義了密碼,則在該媒體集上創(chuàng)建備份集時(shí)必須提供此密碼。另外,從該媒體集執(zhí)行任何還原操作時(shí)也必須提供媒體密碼。只有通過格式化才能重寫受密碼保護(hù)的媒體。有關(guān)更多信息,請(qǐng)參見 FORMAT 選項(xiàng)。
有關(guān)使用密碼的更多信息,請(qǐng)參見"權(quán)限"部分。
NAME = { backup_set_name | @backup_set_var }
指定備份集的名稱。名稱最長(zhǎng)可達(dá) 128 個(gè)字符。假如沒有指定 NAME,它將為空。
NORECOVERY
只與 BACKUP LOG 一起使用。備份日志尾部并使數(shù)據(jù)庫(kù)處于正在還原的狀態(tài)。當(dāng)將故障轉(zhuǎn)移到輔助數(shù)據(jù)庫(kù)或在 RESTORE 操作前保存日志尾部時(shí),NORECOVERY 很有用。
STANDBY = undo_file_name
只與 BACKUP LOG 一起使用。備份日志尾部并使數(shù)據(jù)庫(kù)處于只讀或備用模式。撤消文件名指定了容納回滾更改的存儲(chǔ),如果隨后應(yīng)用 RESTORE LOG 操作,則必須撤消這些回滾更改。
如果指定的撤消文件名不存在,SQL Server 將創(chuàng)建該文件。如果該文件已存在,則 SQL Server 將重寫它。有關(guān)更多信息,請(qǐng)參見使用備用服務(wù)器。
NOREWIND
指定 SQL Server 在備份操作完成后使磁帶保持打開。NOREWIND 意即 NOUNLOAD。SQL Server 將保留磁帶驅(qū)動(dòng)器的所有權(quán),直到 BACKUP或 RESTORE 命令使用 REWIND 為止。
如果無意中使磁帶處于打開狀態(tài),則釋放磁帶的最快方法是使用下面的 RESTORE 命令:
RESTORE LABELONLY FROM TAPE = <name> WITH REWIND
通過查詢 master 數(shù)據(jù)庫(kù)中的 sysopentapes 表可以查找正在打開的磁帶列表。
REWIND
指定 SQL Server 將釋放磁帶和倒帶。如果 NOREWIND 和 REWIND 均未指定,則默認(rèn)設(shè)置為 REWIND。
NOSKIP
指示 BACKUP 語(yǔ)句在可以重寫媒體上的所有備份集之前先檢查它們的過期日期。
SKIP
禁用備份集過期和名稱檢查,這些檢查一般由 BACKUP 語(yǔ)句執(zhí)行以防重寫備份集。有關(guān)更多信息,請(qǐng)參見注釋部分。
NOUNLOAD
指定不在備份后從磁帶驅(qū)動(dòng)器中自動(dòng)卸載磁帶。設(shè)置始終為 NOUNLOAD,直到指定 UNLOAD 為止。該選項(xiàng)只用于磁帶設(shè)備。
UNLOAD
指定在備份完成后自動(dòng)倒帶并卸載磁帶。啟動(dòng)新用戶會(huì)話時(shí)其默認(rèn)設(shè)置為 UNLOAD。該設(shè)置一直保持到用戶指定了 NOUNLOAD 時(shí)為止。該選項(xiàng)只用于磁帶設(shè)備。
RESTART
指定 SQL Server 重新啟動(dòng)一個(gè)被中斷的備份操作。因?yàn)?RESTART 選項(xiàng)在備份操作被中斷處重新啟動(dòng)該操作,所以它節(jié)省了時(shí)間。若要重新啟動(dòng)一個(gè)特定的備份操作,請(qǐng)重復(fù)整個(gè) BACKUP 語(yǔ)句并且加入 RESTART 選項(xiàng)。不一定非要使用 RESTART 選項(xiàng),但是它可以節(jié)省時(shí)間。
重要 該選項(xiàng)只用于導(dǎo)向磁帶媒體的備份和跨越了多個(gè)磁帶卷的備份。在備份的第一卷上永遠(yuǎn)不會(huì)有重新啟動(dòng)操作。
STATS [= percentage]
每當(dāng)另一個(gè) percentage 結(jié)束時(shí)顯示一條消息,它被用于測(cè)量進(jìn)度。如果省略 percentage,SQL Server 將每完成 10 個(gè)百分點(diǎn)顯示一條消息。
<file_or_filegroup>
指定包含在數(shù)據(jù)庫(kù)備份中的文件或文件組的邏輯名??梢灾付ǘ鄠€(gè)文件或文件組。
FILE = { logical_file_name | @logical_file_name_var }
給一個(gè)或多個(gè)包含在數(shù)據(jù)庫(kù)備份中的文件命名。
FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
給一個(gè)或多個(gè)包含在數(shù)據(jù)庫(kù)備份中的文件組命名。
說明 當(dāng)數(shù)據(jù)庫(kù)的大小和性能要求使得進(jìn)行完整數(shù)據(jù)庫(kù)備份不切實(shí)際時(shí),備份一個(gè)文件。若要單獨(dú)備份事務(wù)日志,請(qǐng)使用 BACKUP LOG。
重要 必須通過使用 BACKUP LOG 提供事務(wù)日志的單獨(dú)備份,才能使用文件和文件組備份來恢復(fù)數(shù)據(jù)庫(kù)。有關(guān)文件備份的更多信息,請(qǐng)參見備份使用文件備份。
如果恢復(fù)模型為 SIMPLE,則不允許文件和文件組備份。
n
是一個(gè)占位符,表示可以指定多個(gè)文件和文件組。對(duì)文件或文件組的最大個(gè)數(shù)沒有限制。
LOG
指定只備份事務(wù)日志。該日志是從上一次成功執(zhí)行了的 LOG 備份到當(dāng)前日志的末尾。一旦備份日志,可能會(huì)截?cái)鄰?fù)制或活動(dòng)事務(wù)不再需要的空間。
說明 假如備份日志看來并沒有截?cái)啻蟛糠值娜罩?,則有可能在日志中存在一個(gè)舊的開放事務(wù)??梢允褂?DBCC SQLPERF (LOGSPACE) 觀察日志空間。有關(guān)更多信息,請(qǐng)參見事務(wù)日志備份。
NO_LOG | TRUNCATE_ONLY
無須備份復(fù)制日志即刪除不活動(dòng)的日志部分,并且截?cái)嗳罩?。該選項(xiàng)會(huì)釋放空間。因?yàn)椴⒉槐4嫒罩緜浞荩詻]有必要指定備份設(shè)備。NO_LOG 和 TRUNCATE_ONLY 是同義的。
使用 NO_LOG 或 TRUNCATE_ONLY 備份日志后,記錄在日志中的更改不可恢復(fù)。為了恢復(fù),請(qǐng)立即執(zhí)行 BACKUP DATABASE。
NO_TRUNCATE
允許在數(shù)據(jù)庫(kù)損壞時(shí)備份日志。
可以將數(shù)據(jù)庫(kù)或日志備份追加到任何磁盤或磁帶設(shè)備上,從而使得數(shù)據(jù)庫(kù)和它的事務(wù)日志能存儲(chǔ)在一個(gè)物理位置中。
當(dāng)數(shù)據(jù)庫(kù)正在使用時(shí),SQL Server 使用一個(gè)聯(lián)機(jī)備份過程來對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份。下面的列表包括在數(shù)據(jù)庫(kù)或事務(wù)日志備份時(shí)無法進(jìn)行的操作:
假如在這些操作正在進(jìn)行時(shí)啟動(dòng)備份,備份將終止。假如正在進(jìn)行備份時(shí),試圖進(jìn)行這些操作,則操作會(huì)失敗。
只要操作系統(tǒng)支持?jǐn)?shù)據(jù)庫(kù)的排序規(guī)則,就可以在不同的平臺(tái)之間執(zhí)行備份操作,即使這些平臺(tái)使用不同的處理器類型。有關(guān)更多信息,請(qǐng)參見 SQL Server 排序規(guī)則基礎(chǔ)知識(shí)。
因?yàn)?SQL Server 2000 的備份格式遵從 Microsoft 磁帶格式 (MTF),該格式與 Windows NT 磁帶備份所使用的格式相同,所以 SQL Server 備份可與 Windows NT 備份共存于磁帶媒體上。若要確保相互操作性,磁帶應(yīng)由 NTBackup 格式化。
SQL Server 支持的備份類型包括:
日志備份序列提供了連續(xù)的事務(wù)信息鏈,可支持從數(shù)據(jù)庫(kù)、差異或文件備份中快速恢復(fù)。
當(dāng)時(shí)間限制使得完整數(shù)據(jù)庫(kù)備份不切實(shí)際時(shí),請(qǐng)使用 BACKUP 備份數(shù)據(jù)庫(kù)文件和文件組,而不是備份完整數(shù)據(jù)庫(kù)。若要備份一個(gè)文件而不是整個(gè)數(shù)據(jù)庫(kù)時(shí),請(qǐng)合理安排步驟以確保數(shù)據(jù)庫(kù)中所有的文件按規(guī)則備份。同時(shí)必須進(jìn)行單獨(dú)的事務(wù)日志備份。在恢復(fù)一個(gè)文件備份后,使用事務(wù)日志將文件內(nèi)容前滾,使其與數(shù)據(jù)庫(kù)其余部分一致。
在條帶集中使用的備份設(shè)備必須一直在條帶集中使用(除非在某處用 FORMAT 重新初始化),而且設(shè)備數(shù)目不變。在備份設(shè)備已定義為條帶集的組成部分后,就不能用于單個(gè)設(shè)備備份,除非指定了 FORMAT。同樣,一個(gè)含有非條帶集備份的備份設(shè)備不能用于條帶集,除非指定了 FORMAT。使用 FORMAT 來分開條帶備份集。
如果寫入媒體頭時(shí)未指定 MEDIANAME 或 MEDIADESCRIPTION,則與空項(xiàng)對(duì)應(yīng)的媒體頭字段將為空。
如果恢復(fù)模型為 SIMPLE,則無法使用 BACKUP LOG。應(yīng)該使用 BACKUP DATABASE 來替代。
下表說明 { INIT | NOINIT }和{ NOSKIP | SKIP } 子句間是如何相互作用的。
說明 在所有這些交互操作中,如果磁帶媒體為空或磁帶備份文件不存在,則寫入媒體頭并繼續(xù)。如果媒體頭不為空或不含有效的媒體頭,則指出這是無效的 MTF 媒體并取消備份。
INIT | NOINIT | |
---|---|---|
SKIP | 如果卷中包含有效的1 媒體頭,則驗(yàn)證媒體密碼并重寫媒體上的全部備份集,僅保留媒體頭。 如果卷不含有效的媒體頭,則使用給定的 MEDIANAME、MEDIAPASSWORD 和 MEDIADESCRIPTION(若有)生成媒體頭。 | 如果卷中包含有效的媒體頭,則驗(yàn)證媒體密碼并添加備份集,并保留所有現(xiàn)有備份集。 如果卷不含有效的媒體頭,則會(huì)出錯(cuò)。 |
NOSKIP | 如果該卷包含一個(gè)有效的媒體頭,將執(zhí)行以下檢查:
如果這些檢查都通過了,將重寫該媒體上一切備份集,只保留媒體頭。 如果卷不含有效的媒體頭,則使用給定的 MEDIANAME、MEDIAPASSWORD 和 MEDIADESCRIPTION(若有)生成媒體頭。 | 如果該卷包含一個(gè)有效的媒體頭,將驗(yàn)證媒體密碼*并且驗(yàn)證媒體是否名匹配所給的 MEDIANAME(假如有的話)。如果匹配,追加備份集,同時(shí)保留所有現(xiàn)有的備份集。 如果卷不含有效的媒體頭,則會(huì)出錯(cuò)。 |
1. 有效性包括 MTF 版本號(hào)和其它標(biāo)題信息。如果不支持指定的版本或指定的版本不是期望值,將會(huì)發(fā)生錯(cuò)誤。
2. 用戶必須屬于適當(dāng)?shù)墓潭〝?shù)據(jù)庫(kù)或服務(wù)器角色,并提供執(zhí)行備份操作所需的正確媒體密碼。
說明 為保持向后兼容性,在 BACKUP 語(yǔ)句的語(yǔ)法中可使用 DUMP 關(guān)鍵字替代 BACKUP 關(guān)鍵字。另外,可使用 TRANSACTION 關(guān)鍵字替代 LOG 關(guān)鍵字。
SQL Server 使用以下的備份歷史表來跟蹤備份活動(dòng):
執(zhí)行 RESTORE 時(shí),將修改備份歷史記錄表。
兼容性注意事項(xiàng)
注意 無法在早期 SQL Server 版本中還原使用 Microsoft® SQL Server™ 2000 創(chuàng)建的備份。
BACKUP DATABASE 和 BACKUP LOG 權(quán)限默認(rèn)情況下授予 sysadmin 固定服務(wù)器角色和 db_owner 及 db_backupoperator 固定數(shù)據(jù)庫(kù)角色的成員。
此外,用戶可以為媒體集、備份集或兩者指定密碼。如果為媒體集指定了密碼,則用戶若只是適當(dāng)?shù)墓潭ǚ?wù)器和數(shù)據(jù)庫(kù)角色成員還不足以執(zhí)行備份。用戶還必須提供媒體密碼才能執(zhí)行這些操作。同樣,除非在還原命令中指定正確的媒體集密碼和備份集密碼,否則不能執(zhí)行還原操作。
在 BACKUP 語(yǔ)句中,定義備份集密碼和媒體集密碼為可選功能。使用密碼可防止利用 SQL Server 2000 工具未經(jīng)授權(quán)地執(zhí)行還原操作和在媒體中添加備份集,但是,密碼不能防止通過 FORMAT 選項(xiàng)重寫媒體。
因此,盡管使用密碼對(duì)防止利用 SQL Server 工具未經(jīng)授權(quán)地訪問媒體內(nèi)容有幫助,但密碼不能防止媒體內(nèi)容被破壞。密碼不能完全防止未經(jīng)授權(quán)地訪問媒體內(nèi)容,原因在于備份集中的數(shù)據(jù)沒有加密,理論上可以被專為此目的創(chuàng)建的程序所檢查。對(duì)于安全性至關(guān)重要的場(chǎng)合,防止未經(jīng)授權(quán)的個(gè)人訪問媒體非常重要。
為不是用相關(guān)密碼創(chuàng)建的對(duì)象指定密碼是錯(cuò)誤的做法。
BACKUP 使用由 PASSWORD 選項(xiàng)提供的備份集密碼創(chuàng)建備份集。另外,BACKUP 正常情況下在寫入媒體之前驗(yàn)證由 MEDIAPASSWORD 選項(xiàng)提供的媒體密碼。BACKUP 不驗(yàn)證媒體密碼的唯一情況是當(dāng)格式化媒體時(shí),這將重寫媒體頭。BACKUP 只在下列情況下格式化媒體:
如果 BACKUP 寫入媒體頭,BACKUP 將給 MEDIAPASSWORD 選項(xiàng)中指定的值指派媒體集密碼。
有關(guān)密碼對(duì) SKIP、NOSKIP、INIT 和 NOINIT 選項(xiàng)的影響的更多信息,請(qǐng)參見注釋部分。
備份設(shè)備物理文件的所有權(quán)和權(quán)限問題可能會(huì)妨礙備份操作。SQL Server 必須能夠讀取并寫入設(shè)備;運(yùn)行 SQL Server 服務(wù)的帳戶必須有寫入權(quán)限。但是,為設(shè)備在系統(tǒng)表中添加項(xiàng)目的 sp_addumpdevice 不檢查文件訪問權(quán)。備份設(shè)備物理文件的這些問題可能直到為備份或還原而訪問物理資源時(shí)才會(huì)出現(xiàn)。
說明 MyNwind 數(shù)據(jù)庫(kù)僅用于演示。
下例創(chuàng)建用于存放 MyNwind 數(shù)據(jù)庫(kù)完整備份的邏輯備份設(shè)備。
-- Create a logical backup device for the full MyNwind backup.
USE master
EXEC sp_addumpdevice 'disk', 'MyNwind_1',
DISK ='c:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\MyNwind_1.dat'
-- Back up the full MyNwind database.
BACKUP DATABASE MyNwind TO MyNwind_1
本例創(chuàng)建了一個(gè)數(shù)據(jù)庫(kù)和日志的完整備份。將數(shù)據(jù)庫(kù)備份到稱為 MyNwind_2 的邏輯備份設(shè)備上,然后將日志備份到稱為 MyNwindLog1 的邏輯備份設(shè)備上。
說明 創(chuàng)建邏輯備份設(shè)備需要一次完成。
-- Create the backup device for the full MyNwind backup.相關(guān)文章
USE master
EXEC sp_addumpdevice 'disk', 'MyNwind_2',
'c:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\MyNwind_2.dat'
--Create the log backup device.
USE master
EXEC sp_addumpdevice 'disk', 'MyNwindLog1',
'c:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\MyNwindLog1.dat'
-- Back up the full MyNwind database.
BACKUP DATABASE MyNwind TO MyNwind_2
-- Update activity has occurred since the full database backup.
-- Back up the log of the MyNwind database.
BACKUP LOG MyNwind
TO MyNwindLog1