SQLserver 数据库的备份与恢复

1、数据库备份bat文件(backup.bat)

@echo off
set path=%path%;C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn
echo 数据库备份开始
osql.exe -S 127.0.0.1 -U sa -P 123456 -i sqlserverbackup.sql -o C:\Users\you\Desktop\sqlserver\sqlserverbackup.out
echo 数据库备份完成
pause

2、数据库恢复bat文件(restore.bat)

@echo off
echo 开始还原数据库
net start "PSY\DETSQLEXPRESS"
osql -U sa -P 123456 -i C:\Users\you\Desktop\sqlserver\sqlserverrestore.sql -o C:\Users\you\Desktop\sqlserver\sqlserverrestore.out
echo 还原数据库完成
pause

3、备份数据库脚本文件(sqlserverbackup.sql)

DECLARE @name varchar(50)
DECLARE @datetime char(14)
DECLARE @path varchar(255)
DECLARE @bakfile varchar(255)
set @name='test'
set @datetime=CONVERT(char(8),getdate(),112) + REPLACE(CONVERT(char(8),getdate(),108),':','')
--备份数据库bak文件存放路径
set @path='C:\Users\you\Desktop\sqlserver\bak\'
set @bakfile=@path+''+@name+'_'+'bak_'+@datetime+'.BAK'
backup database @name to disk=@bakfile with name=@name
go

4、恢复数据库脚本文件(sqlserverrestore.sql)

declare @dumpfile varchar(255)
declare @datetime char(14)
declare @msg varchar(70)
   --还原数据库的bak文件路径
   select @dumpfile = 'C:\Users\you\Desktop\sqlserver\bak\test_bak_20181217135016.BAK'
   select @msg=convert(char(26),getdate(),9)
   print @msg

----同一个备份文件还原成不同名称数据库  
RESTORE DATABASE test
   FROM disk=@dumpfile
   WITH RECOVERY,
   --一个备份文件还原不同名数据库mdf和ldf文件存放位置
   MOVE 'test' TO 'C:\Users\you\Desktop\sqlserver\mdf\test0.mdf', 
   MOVE 'test_Log' TO 'C:\Users\you\Desktop\sqlserver\mdf\test0_Log.ldf'

if (@@ERROR <> 0 )
begin
   select @msg=convert(char(26),getdate(),9)+'-----还原数据失败或出现异常'
   print @msg
end
else
begin
   select @msg=convert(char(26),getdate(),9)+'-----数据库还原完毕'
   print @msg
end

猜你喜欢

转载自blog.csdn.net/m0_38093074/article/details/85156913
今日推荐