[color=darkblue]生產線的sqlserver資料庫infoservice星期日做全盤備份,備份名為:infoservice_database.7,星期一做差異備份:infoservice_database.1,星期二:infoservice_database.2...
對應的本地模擬庫infoserviceonline要定期恢復,恢復順序與備份順序相反. 如今天是星期一,要先還原
上個星期日的全盤備份,再還原今天的差異備份.
本程式支援在資料庫伺服器恢復,也支援在工作站恢復.[/color]
斷開資料庫的儲存過程(建立於master庫):
create proc disconnectdb(@dbname varchar(20),@reason nvarchar(200)=null,@delay varchar(8)='00:00:30')
declare @sql nvarchar(500),@cmd nvarchar(500)
declare @spid int
declare @hostname nvarchar(255),@pgname nvarchar(255)
declare @flag bit
set @reason=isnull(@reason,n'未知')
set @flag=0
set @sql='declare getspid cursor for select spid,hostname,program_name from master..sysprocesses where dbid=db_id('''+@dbname+''')'
exec (@sql)
open getspid
print 'ready'
fetch next from getspid into @spid,@hostname,@pgname
while @@fetch_status <>-1
begin
set @flag=1
set @cmd='net send '+ltrim(rtrim(@hostname))+' 請及時儲存你的程式:'+ltrim(rtrim(@pgname))+'的相關資料,'+'資料庫:'+@dbname+'將於'+@delay+'後斷開連線.'+'原因:'+@reason
print @cmd
exec master.dbo.xp_cmdshell @cmd
fetch next from getspid into @spid,@hostname,@pgname
end
close getspid
deallocate getspid
if @flag=1
waitfor delay @delay
exec (@sql)
open getspid
fetch next from getspid into @spid,@hostname,@pgname
while @@fetch_status <>-1
begin
exec('kill '+@spid)
fetch next from getspid into @spid,@hostname,@pgname
end
close getspid
deallocate getspid
print 'disconnect db:'+@dbname+' completely!'
return 0
python指令碼
mysql增量 mysql資料庫增量恢復
mysqldump uroot p b discuzx f x master data 2 events gzip root discuzx.sql.gz 寫入資料 刪除資料 第一時間關閉資料庫對外讀寫功能,並進入資料執行重新整理mysqlbinlog的位置點,新生成檔案 flush logs 根據...
MySQL 資料庫增量資料恢復案例
mysql資料庫每日零點自動全備 某天上午10點,小明莫名其妙地drop了乙個資料庫 我們需要通過全備的資料檔案,以及增量的binlog檔案進行資料恢復 利用全備的sql檔案中記錄的change master語句,binlog檔案及其位置點資訊,找出binlog檔案增量的部分 用mysqlbinlo...
實戰!MySQL 資料庫增量資料恢復
場景概述 1 mysql資料庫每日零點自動全備 2 某天上午10點,小明莫名其妙地drop了乙個資料庫 3 我們需要通過全備的資料檔案,以及增量的binlog檔案進行資料恢復 主要思想 1 利用全備的sql檔案中記錄的change master語句,binlog檔案及其位置點資訊,找出binlog檔...