我需要使用Spring为我的Web应用程序安排定期数据库备份。 Spring Data是否为backupping提供任何特定支持?我打算使用TaskScheduler和TaskExecutor。
答案 0 :(得分:7)
不,没有具体的支持。 Spring Data用于事务性使用,而不是批处理操作。当然,有findAll()
方法可以迭代并将结果存储在某处。
Spring Batch可能是一个更好的选择,因为它专注于长时间运行,繁重的批处理过程。但是恕我直言,你的应用程序不是运行备份的好地方。为什么不使用数据库或OS支持?它会更快,更可靠。
如果您确实需要从应用程序级别备份数据库,请考虑您的数据库手册,可能有一些简单的命令将数据库的内容转储到文件中。例如,在h2中,我使用来自JdbcTemplate
的{{3}} SQL命令将数据库转储到任意文件。但我使用这种技术SCRIPT
。我使用JdbcTemplate
来减少开销。这就是为什么Spring Data不是最好的工具。
在MySQL中有一个mysqldump
进程,因此从Java运行起来有点麻烦。
答案 1 :(得分:0)
请点击此链接,以获取有关您的问题的想法 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