我想用一个sql存储过程备份所有数据库,求助

我想用一个sql存储过程备份所有数据库,求助,第1张

CREATE

PROCEDURE

[BACKUP_DATABASE]

AS

--SUBSTRING(CONVERT(VARCHAR(50),

GETDATE(),

120),1,10)为当时日期,格式为yyyy-mm-dd

--备份[AAA]数据库

DECLARE

@S

VARCHAR(250)

SET

@S

=

'D:\Database\AAA['

+

SUBSTRING(CONVERT(VARCHAR(50),

GETDATE(),

120),1,10)

+

'].bak'

BACKUP

DATABASE

[AAA]

TO

DISK

=

@S

WITH

NOFORMAT,

NOINIT,

NAME

=

N'TestDB1-完整

数据库

备份',

SKIP,

NOREWIND,

NOUNLOAD

--备份[BBB]数据库

--DECLARE

@S

VARCHAR(250)

SET

@S

=

'D:\Database\BBB['

+

SUBSTRING(CONVERT(VARCHAR(50),

GETDATE(),

120),1,10)

+

'].bak'

BACKUP

DATABASE

[BBB]

TO

DISK

=

@S

WITH

NOFORMAT,

NOINIT,

NAME

=

N'TestDB1-完整

数据库

备份',

SKIP,

NOREWIND,

NOUNLOAD

--备份[CCC]数据库

--DECLARE

@S

VARCHAR(250)

SET

@S

=

'D:\Database\CCC['

+

SUBSTRING(CONVERT(VARCHAR(50),

GETDATE(),

120),1,10)

+

'].bak'

BACKUP

DATABASE

[CCC]

TO

DISK

=

@S

WITH

NOFORMAT,

NOINIT,

NAME

=

N'TestDB1-完整

数据库

备份',

SKIP,

NOREWIND,

NOUNLOAD

GO

这里采用指定数据库名称的方式,不是动态自动获取系统中所有数据库,希望可以给你提供一种思路。假如系统中只有三个数据库AAA、BBB和CCC,如果有四个或者多个,同理添加即可!

个人认为,既然有数据库,就要有DBA,DBA不但是一种职位,还是一种态度。备份数据库就应该是DBA的事情,而想使用存储过程来备份数据库是不现实的,作为某个时间点的镜像倒是还可以。

因为数据库崩溃了,如果数据丢失,存储过程再怎么做也没办法恢复。

另外,存储过程不是拿来做备份的,而是提供可靠和高效率计算的。

建议:使用批处理脚本,创建定时任务,调用 mysqldump.exe 程序来做备份。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9954422.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存