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

 

posted @ 2013-08-04 19:53 桦仔 阅读(...) 评论(...)  编辑 收藏