Flywaydb迁移冻结

时间:2016-09-02 00:37:38

标签: sql-server postgresql maven flyway

我在一个项目的docker容器中使用postgres 9.4。它有9个数据库。除了一个sql脚本大小为219Mb的数据库外,所有数据库大小都低于100Kb。我使用pg_dump备份了数据。现在,当我尝试使用flywaydb和maven(flyway-maven-plugin 3.2.1)恢复该数据时,它会挂在唯一的大型sql脚本(即219Mb脚本)的最后一个命令上。服务器的内存是4Gb。它没有显示任何错误。

相同的还原过程适用于提前一天的备份,其中大型sql脚本大小为205Mb。这两个备份之间没有架构更改。

我在这里使用的自定义配置文件与此类似: https://flywaydb.org/documentation/maven/migrate 并使用此命令还原备份。 maven -X compile 此命令的日志打印通常的sql脚本还原日志,并挂起在大sql脚本的最后一行。 sql脚本最后几行的一部分是:

SELECT pg_catalog.lo_open('31673', 131072);
SELECT pg_catalog.lowrite(0,'\x6c656173696e672c2070726f7065727479206d616e6167656d656e742c20636f6e737472756374696f6e2c206c6567616c2c20737061636520706c616e6e696e672c206172636869746563747572616c207365727669636573');
SELECT pg_catalog.lo_close(0);

SELECT pg_catalog.lo_open('31674', 131072);
SELECT pg_catalog.lowrite(0, '\x4c6f616e2074797065733a2066697865642d726174652c20666c6f6174696e6720726174652c206d657a7a2c20636f6e737472756374696f6e2c206272696467652c20666f727761726420636f6d6d69746d656e742c207265706f736974696f6e696e67');
SELECT pg_catalog.lo_close(0);

SELECT pg_catalog.lo_open('31675', 131072);
SELECT pg_catalog.lowrite(0, '\x436f6d6d65726369616c206c6f616e2073616c65732c207265736964656e7469616c206c6f616e2073616c65732c207265736964656e7469616c206d6f7274676167652073657276696365732c2064656274202b206571756974792066696e616e63652c206c6f616e20706f7274666f6c696f2076616c756174696f6e');
SELECT pg_catalog.lo_close(0);

SELECT pg_catalog.lo_open('41834', 131072);
SELECT pg_catalog.lowrite(0, '\x362f323020546f6f6b2061207472697020746f204166726963612c20666f6c6c6f772075702061742074686520656e64206f66204a756c792e');
SELECT pg_catalog.lo_close(0);

SELECT pg_catalog.lo_open('41841', 131072);
SELECT pg_catalog.lowrite(0, '\x362f3237202d2050726573656e746174696f6e206174203820414d');
SELECT pg_catalog.lo_close(0);

SELECT pg_catalog.lo_open('47060', 131072);
SELECT pg_catalog.lowrite(0, '\x4b657920636f6e74616374206973206120667269656e64206f662056697368616c');
SELECT pg_catalog.lo_close(0);

COMMIT;

--
-- PostgreSQL database dump complete
--

恢复过程在最后一行之后挂起。这种行为的可能原因是什么?如何解决?或者在postgres-9.4 docker容器中恢复postgres备份的更好方法。

0 个答案:

没有答案