自動定時備份sqlserver資料庫的方法

來源:互聯網
上載者:User

下面是我已經證實可用的自動備份的方法.
1、開啟企業管理器->管理->sql server代理
2、建立一個作業,作業名稱隨便取,例如:data備份,所有者選擇sa,當然你也可以選擇其他使用者,前提是該使用者有執行作業的許可權;
3、點擊步驟標籤,進入步驟面板.建立步驟,步驟名可以隨便填寫,如步驟1,類型和資料庫預設,不需要修改.命令中寫入以下語句:
BACKUP DATABASE [資料庫名] TO DISK = N'F:\\databack\\firenews備份' WITH NOINIT , NOUNLOAD , NAME = N'firenews備份', NOSKIP , STATS = 10, NOFORMAT
注意:需要修改的地方,資料庫名,DISK=(這裡需要填寫路徑和你的Database Backup的名稱)後面的Name=可以隨便填寫.
4、點擊調度標籤,進入調度面板,建立調度,名稱隨便填寫,選擇反覆出現,點更改可以選擇你想要執行任務的隨意調度.如每天,每2天,每星期,每月等.根據需要自己設定;(注意:在調度名稱後面有個啟動選項,必須勾選)
5、確定後,不要忘記一件事情,在你剛才建立的工作上點右鍵,啟動工作,如果你的工作沒有問題,將會提示執行成功,並有相對應的備份檔案在你的磁碟上出現;
6、還有一個重要的問題就是你的sql server agent伺服器已經啟動.
如果我們需要根據每天的日期來產生一個新的備份,以便我們區別備份檔案.這時,我們需要修改一下剛才的sql語句.
參考執行個體:

1、自動備份,固定備份名,每次會追加備份 複製代碼 代碼如下:backup database FireNews to disk=N'F:\\databack\\firenews備份' with noinit,nounload,name=N'firenews備份',noskip,stats=10,noformat
backup database fireweb to disk=N'F:\\backup\\data\\fireweb\\fireweb備份' with noinit,nounload,name=N'fireweb備份',noskip,stats=10,noformat

2、自動備份,以時間命名,完整備份 複製代碼 代碼如下:declare @filename nvarchar(100) set @filename='F:\\databack\\data'+convert(char(8),getdate(),112)+'.bak' print @filename BACKUP DATABASE [firenews] TO DISK = @filename WITH NOINIT , NOUNLOAD , NAME = N'firenews備份', NOSKIP, STATS = 10, NOFORMAT
declare @filename nvarchar(100) set @filename='F:\\backup\\data\\fireweb\\fireweb'+convert(char(8),getdate(),112)+'.bak' print @filename BACKUP DATABASE [fireweb] TO DISK = @filename WITH NOINIT , NOUNLOAD , NAME = N'fireweb備份',NOSKIP, STATS = 10, NOFORMAT

註:
1、備份的資料庫存放的檔案夾必須已經存在;
2、N 必須大寫;
3、NAME的值可以隨便寫;
4、FireNews,fireweb為資料庫名;
5、新增作業時提示:未能找到預存程序master.dbo.xp_regread,表名master資料庫沒有這個預存程序(可能是做安全處理的時候刪除了),需自己註冊。方法是:找到 資料庫——
master——擴充預存程序,右鍵“建立擴充預存程序”(名稱:xp_regread,路徑直接填:xpstar.dll)
以下為完整的備份資料庫的方法:
備份整個資料庫: 複製代碼 代碼如下: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 ] ]
]

參數
DATABASE
指定一個完整的Database Backup。假如指定了一個檔案和檔案組的列表,那麼僅有這些被指定的檔案和檔案組被備份。

說明 在進行完整Database Backup或差異Database Backup時,Microsoft SQL Server 備份足夠的交易記錄,以產生一個將在還原資料庫時使用的一致的資料庫。在 master 資料庫上只能採用完整Database Backup。

{ database_name | @database_name_var }
指定了一個資料庫,從該資料庫中對交易記錄、部分資料庫或完整的資料庫進行備份。如果作為變數 (@database_name_var) 提供,則可將該名稱指定為字串常量 (@database_name_var = database name) 或字串資料型別(ntext 或 text 資料類型除外)的變數。
< backup_device >
指定備份操作時要使用的邏輯或物理備份裝置。可以是下列一種或多種形式:
{ logical_backup_device_name } | { @logical_backup_device_name_var }
是由 sp_addumpdevice 建立的備份裝置的邏輯名稱,資料庫將備份到該裝置中,其名稱必須遵守標識符規則。如果將其作為變數 (@logical_backup_device_name_var) 提供,則可將該備份裝置名稱指定為字串常量 (@logical_backup_device_name_var = logical backup device name) 或字串資料型別(ntext 或 text 資料類型除外)的變數。
{ DISK | TAPE } =
'physical_backup_device_name' | @physical_backup_device_name_var
允許在指定的磁碟或磁帶裝置上建立備份。在執行 BACKUP 語句之前不必存在指定的物理裝置。如果存在物理裝置且 BACKUP 語句中沒有指定 INIT 選項,則備份將追加到該裝置。
當指定 TO DISK 或 TO TAPE 時,請輸入完整路徑和檔案名稱。例如,DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\Mybackup.dat' 或 TAPE = '\\.\TAPE0'。

說明 對於備份到磁碟的情況,如果輸入一個相對路徑名,備份檔案將儲存到預設的備份目錄中。該目錄在安裝時被設定並且儲存在 KEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer 目錄下的 BackupDirectory 註冊表索引值中。
如果使用的是具有統一命名規則 (UNC) 名稱的網路伺服器或已重新定向的磁碟機代號,則請指定磁碟的裝置類型。
當指定多個檔案時,可以混合邏輯檔案名稱(或變數)和物理檔案名稱(或變數)。但是,所有的裝置都必須為同一類型(磁碟、磁帶或管道)。
Windows 98 不支援備份到磁碟。

是表示可以指定多個備份裝置的預留位置。備份裝置數目的上限為 64。
BLOCKSIZE = { blocksize | @blocksize_variable }
用位元組數來指定物理塊的大小。在 Windows NT 系統上,預設設定是裝置的預設塊大小。一般情況下,當 SQL Server 選擇適合於裝置的塊大小時不需要此參數。在基於 Windows 2000 的電腦上,預設設定是 65,536(64 KB,是 SQL Server 支援的最大大小)。
對於磁碟,BACKUP 自動決定磁碟裝置合適的塊大小。

說明 如果要將結果備份組儲存到 CD-ROM 中然後從 CD-ROM 中恢複,請將 BLOCKSIZE 設為 2048。

磁帶的預設 BLOCKSIZE 為 65,536 (64 KB)。顯式聲明塊大小將替代 SQL Server 選擇的塊大小。
DESCRIPTION = { 'text' | @text_variable }
指定描述備份組的自由格式文本。該字串最長可以有 255 個字元。
DIFFERENTIAL
指定Database Backup或檔案備份應該與上一次完整備份後改變的資料庫或檔案部分保持一致。差異備份一般會比完整備份佔用更少的空間。對於上一次完整備份時備份的全部單個日誌,使用該選項可以不必再進行備份。有關更多資訊,請參見差異Database Backup和檔案差異備份。

說明 在進行完整Database Backup或差異備份時,SQL Server 備份足夠的交易記錄,從而在恢複資料庫時產生一個一致的資料庫。

EXPIREDATE = { date | @date_var }
指定備份組到期和允許被重寫的日期。如果將該日期作為變數 (@date_var) 提供,則可以將該日期指定為字串常量 (@date_var = date)、字串資料型別變數(ntext 或 text 資料類型除外)、smalldatetime 或者 datetime 變數,並且該日期必須符合已配置的系統 datetime 格式。
RETAINDAYS = { days | @days_var }
指定必須經過多少天才可以重寫該備份媒體集。假如用變數 (@days_var) 指定,該變數必須為整型。

重要 假如 EXPIREDATE 或 RETAINDAYS 沒有指定,有效期間將取決於 sp_configure 的 media retention 配置設定。這些選項僅僅阻止 SQL Server 重寫檔案。用其它方法可擦除磁帶,而通過作業系統可以刪除磁碟檔案。有關到期驗證的更多資訊,請參見本主題的 SKIP 和 FORMAT。

PASSWORD = { password | @password_variable }
為備份組設定密碼。 PASSWORD 是一個字串。如果為備份組定義了密碼,必須提供這個密碼才能對該備份組執行任何還原作業。

重要 備份組密碼防止未經授權即通過 SQL Server 2000 工具訪問備份組的內容,但是不能防止重寫備份組。

有關使用密碼的更多資訊,請參見"許可權"部分。
FORMAT
指定應將媒體頭寫入用於此備份操作的所有卷。任何現有的媒體頭都被重寫。FORMAT 選項使整個媒體內容無效,並且忽略任何現有的內容。

重要 使用 FORMAT 要謹慎。格式化一個備份裝置或媒體將使整個媒體集不可用。例如,如果初始化現有條帶備份組中的單個磁帶,則整個備份組都將變得不可用。

通過指定 FORMAT,備份操作也就暗示了 SKIP 和 INIT;這些都不必顯式說明。
NOFORMAT
指定媒體頭不應寫入所有用於該備份操作的卷中,並且不要重寫該備份裝置除非指定了 INIT。
INIT
指定應重寫所有備份組,但是保留媒體頭。如果指定了 INIT,將重寫那個裝置上的所有現有的備份組資料。
當遇到以下幾種情況之一時不重寫備份媒體:
媒體上的備份設定沒有全部到期。有關更多資訊,請參見 EXPIREDATE 和 RETAINDAYS 選項。

如果 BACKUP 語句給出了備份組名,該備份組名與備份媒體上的名稱不匹配。有關更多資訊,請參見 NAME 子句。
使用 SKIP 選項替代這些檢查。有關使用 SKIP、NOSKIP、INIT 和 NOINIT 時的相互作用關係的更多資訊,請參見注釋部分。

說明 如果備份媒體有密碼保護,SQL Server 將不寫入媒體,除非提供媒體密碼。SKIP 選項不替代此檢查。只有通過格式化才能重寫受密碼保護的媒體。有關更多資訊,請參見 FORMAT 選項。

NOINIT
表示備份組將追加到指定的磁碟或磁帶裝置上,以保留現有的備份組。NOINIT 是預設設定。
RESTORE 命令的 FILE 選項用於在還原時選擇適當的備份組。有關更多資訊,請參見 RESTORE。
如果為媒體集定義了媒體密碼,則必須提供密碼。
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
只與 BACKUP LOG 一起使用。備份日誌尾部並使資料庫處於正在還原的狀態。當將容錯移轉到次要資料庫或在 RESTORE 操作前儲存日誌尾部時,NORECOVERY 很有用。
STANDBY = undo_file_name
只與 BACKUP LOG 一起使用。備份日誌尾部並使資料庫處於唯讀或備用模式。恢復檔案名指定了容納復原更改的儲存,如果隨後應用 RESTORE LOG 操作,則必須撤消這些復原更改。
如果指定的恢復檔案名不存在,SQL Server 將建立該檔案。如果該檔案已存在,則 SQL Server 將重寫它。有關更多資訊,請參見使用待命伺服器。
NOREWIND
指定 SQL Server 在備份操作完成後使磁帶保持開啟。NOREWIND 意即 NOUNLOAD。SQL Server 將保留磁帶磁碟機的所有權,直到 BACKUP或 RESTORE 命令使用 REWIND 為止。
如果無意中使磁帶處於開啟狀態,則釋放磁帶的最快方法是使用下面的 RESTORE 命令:
RESTORE LABELONLY FROM TAPE = <name> WITH REWIND通過查詢 master 資料庫中的 sysopentapes 表可以尋找正在開啟的磁帶列表。
REWIND
指定 SQL Server 將釋放磁帶和倒帶。如果 NOREWIND 和 REWIND 均未指定,則預設設定為 REWIND。
NOSKIP
指示 BACKUP 語句在可以重寫媒體上的所有備份組之前先檢查它們的到期日期。
SKIP
禁用備份組到期和名稱檢查,這些檢查一般由 BACKUP 語句執行以防重寫備份組。有關更多資訊,請參見注釋部分。
NOUNLOAD
指定不在備份後從磁帶磁碟機中自動卸載磁帶。設定始終為 NOUNLOAD,直到指定 UNLOAD 為止。該選項只用於磁帶裝置。
UNLOAD
指定在備份完成後自動倒帶並卸載磁帶。啟動新使用者會話時其預設設定為 UNLOAD。該設定一直保持到使用者指定了 NOUNLOAD 時為止。該選項只用於磁帶裝置。
RESTART
指定 SQL Server 重新啟動一個被中斷的備份操作。因為 RESTART 選項在備份操作被中斷處重新啟動該操作,所以它節省了時間。若要重新啟動一個特定的備份操作,請重複整個 BACKUP 語句並且加入 RESTART 選項。不一定非要使用 RESTART 選項,但是它可以節省時間。

重要 該選項只用於導向磁帶媒體的備份和跨越了多個磁帶卷的備份。在備份的第一卷上永遠不會有重新啟動操作。

STATS [= percentage]
每當另一個 percentage 結束時顯示一條訊息,它被用於測量進度。如果省略 percentage,SQL Server 將每完成 10 個百分點顯示一條訊息。
<file_or_filegroup>
指定包含在Database Backup中的檔案或檔案組的邏輯名。可以指定多個檔案或檔案組。
FILE = { logical_file_name | @logical_file_name_var }
給一個或多個包含在Database Backup中的檔案命名。
FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var }
給一個或多個包含在Database Backup中的檔案組命名。

說明 當資料庫的大小和效能要求使得進行完整Database Backup不切實際時,備份一個檔案。若要單獨備份交易記錄,請使用 BACKUP LOG。

重要 必須通過使用 BACKUP LOG 提供交易記錄的單獨備份,才能使用檔案和檔案組備份來恢複資料庫。有關檔案備份的更多資訊,請參見備份使用檔案備份。

如果恢複模型為 SIMPLE,則不允許檔案和檔案組備份。

是一個預留位置,表示可以指定多個檔案和檔案組。對檔案或檔案組的最大個數沒有限制。
LOG
指定只備份交易記錄。該日誌是從上一次成功執行了的 LOG 備份到當前日誌的末尾。一旦備份日誌,可能會截斷複製或活動事務不再需要的空間。

說明 假如備份日誌看來並沒有截斷大部分的日誌,則有可能在日誌中存在一箇舊的開放事務。可以使用 DBCC SQLPERF (LOGSPACE) 觀察日誌空間。有關更多資訊,請參見交易記錄備份。

NO_LOG | TRUNCATE_ONLY
無須備份複製日誌即刪除不活動的日誌部分,並且截斷日誌。該選項會釋放空間。因為並不儲存記錄備份,所以沒有必要指定備份裝置。NO_LOG 和 TRUNCATE_ONLY 是同義的。
使用 NO_LOG 或 TRUNCATE_ONLY 備份日誌後,記錄在日誌中的更改不可恢複。為了恢複,請立即執行 BACKUP DATABASE。
NO_TRUNCATE
允許在資料庫損壞時備份日誌。
注釋
可以將資料庫或記錄備份追加到任何磁碟或磁帶裝置上,從而使得資料庫和它的交易記錄能儲存在一個物理位置中。
當資料庫正在使用時,SQL Server 使用一個聯機備份過程來對資料庫進行備份。下面的列表包括在資料庫或交易記錄備份時無法進行的操作:
在備份操作時允許進行檔案管理操作,如帶有 ADD FILE 或 REMOVE FILE 選項的 ALTER DATABASE 語句,以及 INSERT、UPDATE 或 DELETE 語句。

收縮資料庫或檔案。這包括自動收縮操作。
假如在這些操作進行中時啟動備份,備份將終止。假如進行中備份時,試圖進行這些操作,則操作會失敗。
只要作業系統支援資料庫的定序,就可以在不同的平台之間執行備份操作,即使這些平台使用不同的處理器類型。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.