笔记239 海南海口力加啤酒厂数据库备份还原脚本
笔记239 海南海口力加啤酒厂数据库备份还原脚本
1 --海南海口力加啤酒厂数据库备份还原脚本 2 3 4 5 --说明:这个sql脚本里分三个脚本,脚本一只需要安装人员安装的时候执行一次就可以了 6 --脚本二需要客户每天都执行一次 7 --脚本三是当数据库损坏的时候需要还原数据库的时候才执行 8 --因为当时间长了之后备份文件会比较多,希望油站人员每隔两个星期删除一些两个星期以前的 9 --备份文件以腾出硬盘空间 10 11 12 --------------------------创建关闭数据库连接的存储过程------------------------------------------------------- 13 --脚本一只需要安装人员安装的时候执行一次就可以了 14 --脚本一: 15 USE master 16 SET ANSI_NULLS ON 17 SET QUOTED_IDENTIFIER ON 18 go 19 20 CREATE PROC [dbo].[Sp_KillAllProcessInDB] @DbName VARCHAR(100) 21 AS 22 IF DB_ID(@DbName) = NULL 23 BEGIN 24 PRINT 'DataBase dose not Exist' 25 END 26 ELSE 27 BEGIN 28 DECLARE @killspId VARCHAR(30) 29 DECLARE TmpCursor CURSOR 30 FOR 31 SELECT 'Kill ' + CONVERT(VARCHAR, spid) AS spId 32 FROM master..SysProcesses 33 WHERE DB_NAME(dbid) = @DbName 34 AND spid <> @@spid --终止不是当前进程的进程(不等于当前进程) 35 AND dbid <> 0 --数据库ID不是0 36 OPEN TmpCursor 37 FETCH NEXT FROM TmpCursor 38 39 INTO @killspId --select into @killspId 40 WHILE @@FETCH_STATUS = 0 41 BEGIN 42 EXEC (@killspId) 43 FETCH NEXT FROM TmpCursor 44 INTO @killspId 45 46 END 47 48 CLOSE TmpCursor 49 DEALLOCATE TmpCursor 50 END 51 52 ------------------------------------------------------------------------------------ 53 54 55 56 57 58 59 --脚本二: 60 --备份数据库 61 --------------------------------------------------------------------------------------- 62 DECLARE @strbackup NVARCHAR(100) 63 --改为日期加时间的 64 SET @strbackup='H:\GPOSDB_full_backup_'+replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')+'.bak' 65 BACKUP DATABASE [GPOSDB] TO DISK=@strbackup 66 67 68 69 --脚本三 70 --还原数据库------------------------------------------------------------------------- 71 --先执行下面两句 72 USE master 73 exec Sp_KillAllProcessInDB 'test' 74 --再执行下面两句 75 --注意:“GPOSDB_full_backup_20121102.bak” 文件名根据你选择要还原的那个文件名 76 --来进行还原,最后还原之前看一下文件夹里的备份文件 77 RESTORE DATABASE test 78 From Disk ='H:\MSSQL\DataBackup\GPOSDB_full_backup_20121102.bak' WITH replace,RECOVERY