7

我需要使用 Spring 为我的 Web 应用程序安排定期数据库备份。Spring Data 是否为备份提供任何特定支持?我打算使用TaskScheduler 和TaskExecutor。

4

2 回答 2

8

不,没有具体的支持。Spring Data 旨在用于事务性使用,而不是批处理操作。当然,有一种findAll()方法可以迭代并将结果存储在某处。

Spring Batch 可能是一个更好的选择,因为它专注于长时间运行的繁重批处理过程。但是恕我直言,您的应用程序不是运行备份的好地方。为什么不使用数据库或操作系统支持?它会更快,更可靠。

如果您确实需要从应用程序级别备份数据库,请考虑您的数据库手册,也许有一些简单的命令可以将数据库的内容转储到文件中。例如在中,我使用SCRIPTSQL 命令JdbcTemplate将数据库转储到任意文件。但我使用这种技术在每次集成测试后重置数据库。我JdbcTemplate用来最小化开销。这就是为什么 Spring Data 不是这项工作的最佳工具。

MySQL中是有mysqldump进程的,所以从Java中运行会比较麻烦。

于 2013-02-16T16:29:08.210 回答
2

请点击此链接并了解您的问题 Spring 支持它

如果您构建 maven 项目,请将以下依赖项添加到 pom.xml

<dependency>
    <groupId>com.smattme</groupId>
    <artifactId>mysql-backup4j</artifactId>
    <version>1.0.0</version>
</dependency>

如果 gradle spring 项目

将依赖项添加到 build.gradle

编译组:'com.smattme',名称:'mysql-backup4j',版本:'1.0.0'

这篇文章可能有助于理解

https://dzone.com/articles/how-to-backup-mysql-database-programmatically-usin

于 2019-01-04T08:29:19.963 回答