sqlserver2008R2資料庫自動備份指令碼

2021-10-07 17:31:10 字數 2000 閱讀 5152

create proc [dbo].[usp_autobackupdb]

@dbname sysname=null --要備份的資料庫名,不指定即為全部備份

,@path nvarchar(128)='d:\' --備份目錄路徑

,@backup_type varchar(16)='database' --備份型別,可以為database,log

,@backup_sysdb int=0 --是否備份系統資料庫,0為不備份,1為備份

asset nocount on;

declare @dbcnt int =0

,@sql varchar(2000)=''

,@except_db varchar(1000)=case @backup_sysdb

when 0 then ''''+'master'+''''+','+'''' +'msdb'+''''+','+''''+'tempdb'+''''+','+''''+'model'+''''

when 1 then '' end;

declare @db_list table(id int identity(1,1) not null,name sysname);

declare @backup_err_list table(id int identity(1,1) not null,name sysname);

if right(@path,1)<>'\'

set @path=@path+'\'

if @dbname is null or @dbname in ('all','*')

begin

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

set @sql='select name from sys.databases where name not in ('+@except_db+');'

insert into @db_list(name) exec(@sql);

--得到一共有多少個資料庫

select @dbcnt=count(1) from @db_list;

--開始迴圈

while @dbcnt>0

begin

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

select @dbname=name from @db_list where id=@dbcnt;

set @sql='backup '+@backup_type+' '+@dbname+' to disk='+''''+@path+@backup_type+'_'+@dbname+'.'+convert(varchar(8),getdate(),112)+'.'+datename(hh,getdate())+''''

--開始迴圈備份

exec (@sql);

if @@error<>0

insert into @backup_err_list(name) values(@dbname);

set @dbcnt=@dbcnt-1

endend

else

begin

set @sql='backup '+@backup_type+' '+@dbname+' to disk='+''''+@path+@backup_type+'_'+@dbname+'.'+convert(varchar(8),getdate(),112)+'.'+datename(hh,getdate())+''''

--僅備份一次

exec (@sql);

if @@error<>0

insert into @backup_err_list(name) values(@dbname);

endif exists(select * from @backup_err_list)

select id ,name as 'backup_err_dbname' from @backup_err_list;

else print 'backup success';

set nocount off;

go

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。這邊也...