--在SQL Server 2000中,如何對資料庫進行備份,並且壓縮備份,拷貝到其他位置
--1:(備份)
--1.1 建立測試庫
USE MASTER
GO
IF DB_ID('DBTEST') IS NOT NULL
DROP DATABASE DBTEST
GO
CREATE DATABASE DBTEST
GO
--1.2 設定備份的路徑及檔案名稱
DECLARE @path varchar(200)
set @path='c:/bak/DBTEST'+CONVERT(VARCHAR(10),GETDATE(),23)+'.bak'
--1.3 備份
backup database DBTEST to disk=@path
--2:(壓縮備份的資料庫檔案)
DECLARE @archive varchar(200),@cmd varchar(200)
--2.1設定壓縮檔名
set @archive='c:/DBTEST'+CONVERT(VARCHAR(10),GETDATE(),23)+'.cab'
exec xp_makecab @archive,mszip,1,@path --sql 2005 中xp_makecab 似乎沒有了,可以用xp_cmdshell 'makecab.exe'替代
--2.2設定copy的其它位置,可以設定為網路上共用電腦的目錄,如//server2/backups/sqldumps
set @cmd='copy '+@archive +' d:/'
exec xp_cmdshell @cmd
----結果顯示如下
/*
正在刪除資料庫檔案 'd:/Program Files/Microsoft SQL Server/MSSQL/data/DBTEST_log.LDF'。
正在刪除資料庫檔案 'd:/Program Files/Microsoft SQL Server/MSSQL/data/DBTEST.mdf'。
CREATE DATABASE 進程正在磁碟 'DBTEST' 上分配 0.75 MB 的空間。
CREATE DATABASE 進程正在磁碟 'DBTEST_log' 上分配 0.49 MB 的空間。
已處理 96 頁,這些頁屬於資料庫 'DBTEST' 的檔案 'DBTEST'(位於檔案 8 上)。
已處理 1 頁,這些頁屬於資料庫 'DBTEST' 的檔案 'DBTEST_log'(位於檔案 8 上)。
BACKUP DATABASE 操作成功地處理了 97 頁,花費了 0.205 秒(3.846 MB/秒)。
訊息 2001,層級 5,狀態 2001
正在將檔案“'c:/bak/DBTEST2010-06-14.bak”添加到壓縮包。
訊息 2002,層級 5,狀態 2002
已將檔案“c:/bak/DBTEST2010-06-14.bak”添加到壓縮包。
output
---------------------------------------------------------------------------------
已複製 1 個檔案。
NULL
(所影響的行數為 2 行)
*/