数据 "index creation failed" "merge-db failed"
datomic "index creation failed" "merge-db failed"
在 datomic 中添加新索引后出现此错误。
几年前我的一个系统上也出现过同样的问题,至今仍未解决:
2018-11-27 10:23:37.580 WARN default datomic.update - {:message "Index creation failed", :db-id "xxx-8eb416be-ec26-4bff-b4ce-503bb734026b", :pid 29822, :tid 15}
java.io.IOException: Datei oder Verzeichnis nicht gefunden
at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[na:1.8.0_191]
at java.io.File.createTempFile(File.java:2024) ~[na:1.8.0_191]
at datomic.external_sort$temp_file_io$reify__5949.make_temp_file(external_sort.clj:22) ~[datomic-transactor-pro-0.9.5656.jar:na]
at datomic.external_sort$file_system_sorter$fn__6044.invoke(external_sort.clj:113) ~[datomic-transactor-pro-0.9.5656.jar:na]
at clojure.core$map$fn__5587.invoke(core.clj:2747) ~[clojure-1.9.0-RC1.jar:na]
at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[clojure-1.9.0-RC1.jar:na]
at clojure.lang.LazySeq.seq(LazySeq.java:49) ~[clojure-1.9.0-RC1.jar:na]
at clojure.lang.RT.seq(RT.java:528) ~[clojure-1.9.0-RC1.jar:na]
2018-11-27 10:23:37.602 WARN default datomic.index - {:message "merge-db failed", :pid 29822, :tid 15}
java.io.IOException: Datei oder Verzeichnis nicht gefunden
at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[na:1.8.0_191]
at java.io.File.createTempFile(File.java:2024) ~[na:1.8.0_191]
at datomic.external_sort$temp_file_io$reify__5949.make_temp_file(external_sort.clj:22) ~[datomic-transactor-pro-0.9.5656.jar:na]
at datomic.external_sort$file_system_sorter$fn__6044.invoke(external_sort.clj:113) ~[datomic-transactor-pro-0.9.5656.jar:na]
似乎 datomic 无法为索引进程写下一些缓存。
它总是在重新启动尝试执行索引作业后不久崩溃。
上次这种情况发生在我的一个系统上,我联系了来自 datomic 的@marshall 支持。在他的帮助下,我转储了数据库,抓取了备份,减少了数据量,分配了很多 ram ...并且它起作用了。这次不可能了。
找到解决方案
交易索引器忽略配置文件中的路径设置("datomic.version"“0.9.5656”和测试前)并尝试保存实际的相对文件路径。
我使 datomic-pro 文件夹可访问,瞧,它创建了一个 ..../data 目录和索引工作
详细:
在我的 debian 设置中,我已将数据库路径设置为 data-dir=/var/lib/datomic
所有 db 和 tmp 文件都正确存储在 /var/lib/datomic
datomic pro 安装在 /usr/local/share/datomic/datomic-pro-0.9.5656/
我启动事务处理程序的相对路径(通过 start-stop-daemon)也是 /usr/local/share/datomic/datomic-pro-0.9.5656/
.
在我的案例中,索引在以下时间后有效:
chown datomic:datomic /usr/local/share/datomic/datomic-pro-0.9.5656/
或更好
mkdir /usr/local/share/datomic/datomic-pro-0.9.5656/data
chown datomic:datomic /usr/local/share/datomic/latest/data
您可以观看 datomic 创建 /usr/local/share/datomic/latest/data/indexer
文件夹
希望对您有所帮助!
在 datomic 中添加新索引后出现此错误。 几年前我的一个系统上也出现过同样的问题,至今仍未解决:
2018-11-27 10:23:37.580 WARN default datomic.update - {:message "Index creation failed", :db-id "xxx-8eb416be-ec26-4bff-b4ce-503bb734026b", :pid 29822, :tid 15} java.io.IOException: Datei oder Verzeichnis nicht gefunden at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[na:1.8.0_191] at java.io.File.createTempFile(File.java:2024) ~[na:1.8.0_191] at datomic.external_sort$temp_file_io$reify__5949.make_temp_file(external_sort.clj:22) ~[datomic-transactor-pro-0.9.5656.jar:na] at datomic.external_sort$file_system_sorter$fn__6044.invoke(external_sort.clj:113) ~[datomic-transactor-pro-0.9.5656.jar:na] at clojure.core$map$fn__5587.invoke(core.clj:2747) ~[clojure-1.9.0-RC1.jar:na] at clojure.lang.LazySeq.sval(LazySeq.java:40) ~[clojure-1.9.0-RC1.jar:na] at clojure.lang.LazySeq.seq(LazySeq.java:49) ~[clojure-1.9.0-RC1.jar:na] at clojure.lang.RT.seq(RT.java:528) ~[clojure-1.9.0-RC1.jar:na]
2018-11-27 10:23:37.602 WARN default datomic.index - {:message "merge-db failed", :pid 29822, :tid 15} java.io.IOException: Datei oder Verzeichnis nicht gefunden at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[na:1.8.0_191] at java.io.File.createTempFile(File.java:2024) ~[na:1.8.0_191] at datomic.external_sort$temp_file_io$reify__5949.make_temp_file(external_sort.clj:22) ~[datomic-transactor-pro-0.9.5656.jar:na] at datomic.external_sort$file_system_sorter$fn__6044.invoke(external_sort.clj:113) ~[datomic-transactor-pro-0.9.5656.jar:na]
似乎 datomic 无法为索引进程写下一些缓存。 它总是在重新启动尝试执行索引作业后不久崩溃。
上次这种情况发生在我的一个系统上,我联系了来自 datomic 的@marshall 支持。在他的帮助下,我转储了数据库,抓取了备份,减少了数据量,分配了很多 ram ...并且它起作用了。这次不可能了。
找到解决方案
交易索引器忽略配置文件中的路径设置("datomic.version"“0.9.5656”和测试前)并尝试保存实际的相对文件路径。
我使 datomic-pro 文件夹可访问,瞧,它创建了一个 ..../data 目录和索引工作
详细:
在我的 debian 设置中,我已将数据库路径设置为 data-dir=/var/lib/datomic
所有 db 和 tmp 文件都正确存储在 /var/lib/datomic
datomic pro 安装在 /usr/local/share/datomic/datomic-pro-0.9.5656/
我启动事务处理程序的相对路径(通过 start-stop-daemon)也是 /usr/local/share/datomic/datomic-pro-0.9.5656/
.
在我的案例中,索引在以下时间后有效:
chown datomic:datomic /usr/local/share/datomic/datomic-pro-0.9.5656/
或更好
mkdir /usr/local/share/datomic/datomic-pro-0.9.5656/data chown datomic:datomic /usr/local/share/datomic/latest/data
您可以观看 datomic 创建 /usr/local/share/datomic/latest/data/indexer
文件夹
希望对您有所帮助!