Sqlserver 資料庫 指令碼備份和還原

2021-10-25 19:04:49 字數 2559 閱讀 6509

完全備份:backup database cpas to disk = 'g:\20210317\bak\cpas_bak_full.bak' with init

use master;

go---宣告變數

declare @dbname nvarchar(max)='cpas1';

declare @dbfullname nvarchar(max)='g:\20210317\bak\cpas2_bak_full.bak';

---備份資料庫

declare @kid varchar(100)  

set @kid=''  

select @kid=@kid+'kill '+cast(spid as varchar(10))  from master..sysprocesses  

where dbid=db_id(@dbname)  

print @kid  

exec(@kid);

backup database cpas1 to disk=@dbfullname;

備註:--完整備份資料庫

backup database test_bak to disk ='e:\20181029\bak\test_bak_full.bak'with init

--差異備份資料庫

backup database test_bak to disk ='e:\20181029\bak\test_bak_diff.bak'with init, differential   --加上differential代表差異備份

--事務日誌備份

backup log test_bak to disk ='e:\20181029\bak\test_bak_log.bak'with init   --backup log表示備份事務日誌,backup database表示完整或差異備份

--備份事務日誌,檔名中包含當前時間,適合定時備份

declare @strbackup nvarchar(100)

--改為日期加時間的

set @strbackup ='e:\20181029\bak\test_bak_log_'

+ replace(replace(replace(convert(varchar, getdate(), 120),'-',''),' ',''),':','') +'.bak'

backup log test_bak to disk = @strbackup with init;

go

還原:--replace 覆蓋原有資料庫 

--recovery 還原資料庫後,資料庫處於正常狀態

--norecovery 還原資料庫後,資料庫處於非正常狀態,等待下一步還原

use master

go---宣告變數

declare @dbname nvarchar(max)='cpas1';

declare @dbfullname nvarchar(max)='g:\20210317\bak\cpas1_bak_full.bak';

--1.1修改為單用模式

exec(n'alter database '+@dbname+' set single_user with rollback immediate');

--1.2結束鏈結程序

declare @kid varchar(max)  

set @kid=''  

select @kid=@kid+'kill '+cast(spid as varchar(10))  from master..sysprocesses  

where dbid=db_id(@dbname)  ;

exec(@kid) ;

--2.執行還原語句

restore database @dbname from  disk=@dbfullname

with replace  --覆蓋現有的資料庫

--3.重置資料庫為多使用者模式

exec(n'alter database '+@dbname+' set multi_user with rollback immediate');

sqlserver 資料庫集群與熱備

ms sql server資料庫伺服器可以說是應用範圍最廣的資料庫產品,並且越來越多地在大型和比較關鍵的應用系統中提供服務。當企業應用越來越複雜 資料量越來越大的時候,sql server資料庫要不停的進行處理 儲存 查詢的工作,這個時候企業就要考慮sql server資料庫伺服器的效能和速度及安全...

cacti 資料庫主備同步指令碼

usr local cacti cacti.sql bin bash user cactiuser password cactiuser database cacti mail babyfenei qq.com 告警通知郵箱 backup dir var www sqlbackup caname c...

查詢SQL Server資料庫所有表字段備註

select 表名 case when a.colorder 1 then d.name else end,表說明 case when a.colorder 1 then isnull f.value,else end,字段序號 a.colorder,欄位名 a.name,字段說明 isnull g...