Spring Data实现数据库备份

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

8
没有特定的支持。Spring Data旨在用于事务处理,而不是批量操作。当然,您可以使用findAll()方法进行迭代并将结果存储在某个地方。
Spring Batch可能是更好的选择,因为它专注于长时间运行和重型批处理过程。但是,在我看来,您的应用程序不适合运行备份。为什么不使用数据库或操作系统支持?这样会更快速和可靠。
如果您确实需要从应用程序级别备份数据库,请查看您的数据库手册,也许有一些简单的命令可以将数据库内容转储到文件中。例如,在中,我使用SCRIPT SQL命令从JdbcTemplate中将数据库转储到任意文件中。但我使用这种技术来在每个集成测试后重置数据库。我使用JdbcTemplate来最小化开销。这就是为什么Spring Data不是最好的工具的原因。

在MySQL中,有一个mysqldump进程,所以从Java运行起来有点麻烦。


原因是该应用程序分布在不同的系统上,因此我需要在每个系统上进行不同的配置。这就是为什么我试图通过应用程序来完成它的原因。 - Manu

2
请点击以下链接了解与您相关的问题:Spring支持 IT。
如果您正在构建一个Maven项目,请在pom.xml中添加以下依赖项。
<dependency>
    <groupId>com.smattme</groupId>
    <artifactId>mysql-backup4j</artifactId>
    <version>1.0.0</version>
</dependency>

如果是Gradle Spring项目

在build.gradle文件中添加以下依赖:

compile group: 'com.smattme', name: 'mysql-backup4j', version: '1.0.0'

这篇文章可以帮助您了解更多:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接