本周客户提了一个数据库实时备份的功能,看到网上的资料不是很详细,而且也比较麻烦,就把自己的实现方法分享一下。因为目前项目用的是SSM,就想到了写一个用于备份的存储过程,然后后台通过sql调用执行,把指定的数据库备份到相应的路径,具体操作如下:
1.先写一个用于备份的存储过程:
--备份数据库by jay zhong 2017-11-09
CREATE PROC back_up
(
@dbPath NVARCHAR(300) , --备份文件存放路径,最后带/(也可以不带,自己决定)
@dbName VARCHAR(100) --要备份的数据库名称
)
AS
SELECT @dbPath = @dbPath + @dbName + '_' +CONVERT(VARCHAR(20), GETDATE(), 112)
+REPLACE(CONVERT(VARCHAR(20), GETDATE(), 108), ':', '') + '.bak' --文件路径:@dbpath+当前时间.bak
BACKUP DATABASE @dbName
TO DISK = @dbPath WITH NOINIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT --这个自己根据情况配置
写好之后运行一下就ok了
2.然后后台调用这个存储过程,传入相应的参数
exec &{framework.tmis.table.prefix['platform']}back_up #{dbPath},#{dbName}
]]>
成功后就能看到备份的文件啦。