程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 如何實現 自動定時備份sqlserver數據庫

如何實現 自動定時備份sqlserver數據庫

編輯:關於SqlServer
 

下面是我已經證實可用的自動備份的方法.

   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=(這裡需要填寫路徑和你的數據庫備份的名稱)後面的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

指定一個完整的數據庫備份。假如指定了一個文件和文件組的列表,那麼僅有這些被指定的文件和文件組被備份。

 

說明  在進行完整數據庫備份或差異數據庫備份時,Microsoft® SQL Server™ 備份足夠的事務日志,以生成一個將在還原數據庫時使用的一致的數據庫。在 master 數據庫上只能采用完整數據庫備份。

 

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 不支持備份到磁盤。

n

是表示可以指定多個備份設備的占位符。備份設備數目的上限為 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

指定數據庫備份或文件備份應該與上一次完整備份後改變的數據庫或文件部分保持一致。差異備份一般會比完整備份占用更少的空間。對於上一次完整備份時備份的全部單個日志,使用該選項可以不必再進行備份。有關更多信息,請參見差異數據庫備份和文件差異備份。

 

說明  在進行完整數據庫備份或差異備份時,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 選項。

   

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved