SQL備份與還原 二

2022-01-31 06:52:26 字數 4582 閱讀 5902

本文介紹了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...