sqlserver2008R2資料庫自動備份指令碼

2022-07-20 16:57:10 字數 2974 閱讀 3771

1

create

proc

[dbo

].[usp_autobackupdb]2

@dbname sysname=

null

--要備份的資料庫名,不指定即為全部備份

3 ,@path

nvarchar(128)=

'd:\'--

備份目錄路徑

4 ,@backup_type

varchar(16)=

'database'--

備份型別,可以為database,log

5 ,@backup_sysdb

int=0--

是否備份系統資料庫,0為不備份,1為備份6as

7set nocount on;8

9declare

@dbcnt

int=

010 ,@sql

varchar(2000)=

''11 ,@except_db

varchar(1000)=

case

@backup_sysdb

12when

0then

''''+'

master'+

''''+'

,'+''''+'

msdb'+

''''+'

,'+''''+'

tempdb'+

''''+'

,'+''''+'

model'+

''''

13when

1then

''end;14

declare

@db_list

table(id int

identity(1,1) not

null

,name sysname);

15declare

@backup_err_list

table(id int

identity(1,1) not

null

,name sysname);

16if

right(@path,1)<>'\

'17set@path

=@path+'

\'1819

if@dbname

isnull

or@dbname

in ('

all','*'

)20begin

21--

將所有資料庫名存到一張臨時表上

22set

@sql='

select name from sys.databases where name not in ('+

@except_db+'

);'23insert

into

@db_list(name) exec(@sql

);24

25--

得到一共有多少個資料庫

26select

@dbcnt

=count(1) from

@db_list;27

--開始迴圈

28while

@dbcnt

>029

begin

30--

從臨時表中獲得最後乙個資料庫的名字

31select

@dbname

=name from

@db_list

where id=

@dbcnt;32

set@sql='

backup '+

@backup_type+'

'+@dbname+'

to disk='+

''''

+@path

+@backup_type+'

_'+@dbname+'

.'+convert(varchar(8),getdate(),112)+'.

'+datename(hh,getdate())+

''''

33--

開始迴圈備份

34exec (@sql

);35

if@@error

<>036

insert

into

@backup_err_list(name) values(@dbname

);37

set@dbcnt

=@dbcnt-1

38end

39end

40else

41begin

42set

@sql='

backup '+

@backup_type+'

'+@dbname+'

to disk='+

''''

+@path

+@backup_type+'

_'+@dbname+'

.'+convert(varchar(8),getdate(),112)+'.

'+datename(hh,getdate())+

''''

43--

僅備份一次

44exec (@sql

);45

if@@error

<>046

insert

into

@backup_err_list(name) values(@dbname

);47

48end

49if

exists(select

*from

@backup_err_list)50

select id ,name as

'backup_err_dbname

'from

@backup_err_list;51

else

print

'backup success';

5253

set nocount off;54

55go

Sqlserver2008 R2 機器改名

sqlserver2008 r2 機器改名 1.對於安裝好 sqlserver 2008 r2 的機器首先要啟動混合方式登入,允許 sa賬戶登入 2.重啟機器更名後,可以將新機器的 windows 賬戶加入到 sql中,需要兩步,先增加登入使用者,再增加角色 3.在查詢視窗執行如下命名 1.使用se...

Sqlserver2008 R2 機器改名

今天在做sql server 2008 複製的發布時,發現所用的伺服器被改名過,發布時總是找回原來的名稱。1.對於安裝好sqlserver 2008 r2 的機器首先要啟動混合方式登入,允許sa賬戶登入 2.重啟機器更名後,可以將新機器的windows賬戶加入到sql中,需要兩步,先增加登入使用者,...

SQLSERVER2008 R2的埠設定

通過儲存過程檢視 我們首先開啟sqlserver連線sqlserver2008的資料庫例項,然後執行如下儲存過程 查詢埠號 exec sys.sp readerrorlog 0,1,listening 查詢出來的結果如下圖所示 從上圖我們可以看出sql server 2008的埠號是1433。這邊也...