笔记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