本文介紹了sql備份與還原的實戰用例.
我們日常使用的moss進行公司部門站點的資訊管理與收發,後台使用ms sql2005.
我計畫採用完全備份,差異備份和日誌備份來實現moss資料的日常備份和管理.
計畫如下:
採用完全恢復模型。
備份裝置:disk為主,可以用本地磁碟或網路磁碟備份。
備份方法:完全備份+差異備份+事務日誌備份。
備份日程:完全備份每天進行一次,差異備份每四個小時一次,事務日誌備份每三十分鐘一次。備份網路磁碟僅保留近一周的備份檔案。
備份檔案命名:
完全備份:資料庫例項名稱+「_full.bak」
差異備份:資料庫例項名稱+「_diff_」+hh+」.b」
事務日誌備份:資料庫例項名稱+「_log_+hhmm
備份路徑:網路磁碟\yymmdd\
下文以eip資料庫例項為例來說明操作步驟。
每天檢查並刪除過時的備份檔案1--
function:full backup database 2--
1 variable declaration
3declare
@dbpath
varchar
(500)4
declare
@dbname
sysname
5declare
@filename
varchar
(500)6
--2 initialize variables
7set
@dbname='
wsseip'--
custom
8set
@dbpath='
\\172.22.8.121\d$\dbbackup\'+
@dbname+'
\'+convert
(varchar(10
),getdate
(),112) +
'\'9
set@filename
=@dbpath
+@dbname+'
_full.bak'10
--3 net connect and create file
11exec
master.dbo.xp_cmdshell
'net use \\172.22.8.121\d$\dbbackup'12
exec
master.dbo.xp_create_subdir
@dbpath
13--
4 create backup
14backup
database
eip
todisk
=@filename
with
init
15go
16每天做一次完全備份1--
function:del backup database 2--
1 variable declaration
3declare
@dbpath
varchar
(500)4
declare
@dbname
sysname
5declare
@filename
varchar
(500)6
declare
@cmdshell
varchar
(500)7
--2 initialize variables
8set
@dbname='
wsseip'--
custom
9set
@dbpath='
\\172.22.8.121\d$\dbbackup\'+
@dbname+'
\'+convert
(varchar(10
),dateadd
(day,-
5,getdate
()),
112)
10set
@cmdshell='
rd /s /q '+
@dbpath
11--
3 net connect and create file
12exec
master.dbo.xp_cmdshell
'net use \\172.22.8.121\d$\dbbackup'13
--4 del log backup
14exec
master..xp_cmdshell
@cmdshell
--刪除5天前的備份,也就是只保留5個最新備份
15go
16每4個小時做一次差異備份1--
function:diff backup database 2--
1 variable declaration
3declare
@dbpath
varchar
(500)4
declare
@dbname
sysname
5declare
@filename
varchar
(500)6
--2 initialize variables
7set
@dbname='
wsseip'--
custom
8set
@dbpath='
\\172.22.8.121\d$\dbbackup\'+
@dbname+'
\'+convert
(varchar(10
),getdate
(),112) +
'\'9
set@filename
=@dbpath
+@dbname+'
_diff_'+
cast
(datepart
(hour,
getdate
())
asvarchar)+
'.bak'10
--3 net connect and create file
11exec
master.dbo.xp_cmdshell
'net use \\172.22.8.121\d$\dbbackup'12
exec
master.dbo.xp_create_subdir
@dbpath
13--
4 create diff backup
14backup
database
eip
todisk
=@filename
with
differential
--差異備份資料庫
15go
16每30分鐘做一次事物日誌備份1--
function:diff backup database 2--
1 variable declaration
3declare
@dbpath
varchar
(500)4
declare
@dbname
sysname
5declare
@filename
varchar
(500)6
--2 initialize variables
7set
@dbname='
wsseip'--
custom
8set
@dbpath='
\\172.22.8.121\d$\dbbackup\'+
@dbname+'
\'+convert
(varchar(10
),getdate
(),112) +
'\'9
set@filename
=@dbpath
+@dbname+'
_log_'+
cast
(datepart
(hour,
getdate
())
asvarchar)+
cast
(datepart
(minute,
getdate
())
asvarchar)10
--3 net connect and create file
11exec
master.dbo.xp_cmdshell
'net use \\172.22.8.121\d$\dbbackup'12
exec
master.dbo.xp_create_subdir
@dbpath
13--
4 create log backup
14alter
database
eip
setrecovery
full
15backup
logeip
todisk
=@filename
--日誌備份資料庫
16go
17
SQL 資料庫備份與還原
備份資料庫 backup database northwind to disk c xx.bak 還原資料庫 返回由備份集內包含的資料庫和日誌檔案列表組成的結果集 restore filelistonly from disk c x.bak 還原由backup備份的資料庫 restore datab...
SQL資料庫備份與還原
1.備份資料庫 bakup database db name to device with blocksize description db name資料庫備份 differential,expiredate retaindays password format noformat medianame...
轉 SQL檔案組備份和還原(二)
from 上次關於sql檔案組的備份和還原似乎意猶未盡,我總覺得好像欠些什麼。做了尾日誌備份,是為了能將資料庫還原到故障發生時的那個點。但如果沒有發生故障,而是因為誤操作,想還原到前面的乙個點呢,當然,同樣要先做尾日誌備份,否則還原會出錯,但是還原的時候不要還原尾日誌了。我建了乙個測試資料庫test...