tf001 发表于 2023-1-29 16:08:13

数据库备份时报错(java内存不足)导致无法生成catalog.json

使用ctl -dd功能进行数据的导出备份,在导出的过程中出现报错,导致备份的数据不完整。
看报错内容是内存不足导致了出错。



dump data(204/205): com.x.bbs.entity.BBSVoteOption, count: 0.
2023-01-29 15:58:45.032 WARN org.apache.ftpserver.impl.IODataConnection - Exception during data transfer, closing data connection socket
java.net.SocketException: Software caused connection abort: socket write error
      at java.net.SocketOutputStream.socketWrite0(Native Method) ~[?:?]
      at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:110) ~[?:?]
      at java.net.SocketOutputStream.write(SocketOutputStream.java:150) ~[?:?]
      at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:81) ~[?:?]
      at java.io.BufferedOutputStream.write(BufferedOutputStream.java:127) ~[?:?]
      at org.apache.ftpserver.impl.IODataConnection.transfer(IODataConnection.java:289) ~
      at org.apache.ftpserver.impl.IODataConnection.transferToClient(IODataConnection.java:161) ~
      at org.apache.ftpserver.command.impl.RETR.execute(RETR.java:169) ~
      at org.apache.ftpserver.impl.DefaultFtpHandler.messageReceived(DefaultFtpHandler.java:211) ~
      at org.apache.ftpserver.listener.nio.FtpHandlerAdapter.messageReceived(FtpHandlerAdapter.java:62) ~
      at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:858) ~
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:542) ~
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:48) ~
      at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:947) ~
      at org.apache.ftpserver.listener.nio.FtpLoggingFilter.messageReceived(FtpLoggingFilter.java:85) ~
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:542) ~
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:48) ~
      at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:947) ~
      at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:74) ~
      at org.apache.mina.filter.logging.MdcInjectionFilter.filter(MdcInjectionFilter.java:135) ~
      at org.apache.mina.filter.util.CommonEventFilter.messageReceived(CommonEventFilter.java:70) ~
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:542) ~
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:48) ~
      at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:947) ~
      at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:398) ~
      at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:234) ~
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:542) ~
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:48) ~
      at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:947) ~
      at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:74) ~
      at org.apache.mina.core.session.IoEvent.run(IoEvent.java:63) ~
      at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:770) ~
      at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:762) ~
      at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:704) ~
      at java.lang.Thread.run(Thread.java:829) ~[?:?]
Exception in thread "Thread-69" java.lang.OutOfMemoryError
      at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
      at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
      at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
      at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:603)
      at java.base/java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:678)
      at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:737)
      at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:159)
      at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:173)
      at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
      at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
      at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:661)
      at com.x.server.console.action.DumpData$RunnableImpl.run(DumpData.java:103)
      at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.OutOfMemoryError: Java heap space
      at java.base/java.util.Arrays.copyOf(Arrays.java:3745)
      at java.base/java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:120)
      at java.base/java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:95)
      at java.base/java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:156)
      at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1128)
      at org.apache.commons.io.IOUtils.copy(IOUtils.java:849)
      at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1104)
      at com.x.base.core.entity.StorageObject.vfsReadContent(StorageObject.java:402)
      at com.x.base.core.entity.StorageObject.readContent(StorageObject.java:184)
      at com.x.base.core.entity.StorageObject.readContent(StorageObject.java:167)
      at com.x.server.console.action.DumpData$RunnableImpl.binary(DumpData.java:232)
      at com.x.server.console.action.DumpData$RunnableImpl.dump(DumpData.java:209)
      at com.x.server.console.action.DumpData$RunnableImpl.lambda$run$0(DumpData.java:118)
      at com.x.server.console.action.DumpData$RunnableImpl$$Lambda$737/0x0000011990f4b040.accept(Unknown Source)
      at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
      at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
      at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
      at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:290)
      at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
      at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
      at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
      at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
      at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
      at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)

论坛管理员 发表于 2023-1-30 09:56:25

猜测可能是您备份时附件过大导致的内存不足,您可以备份时不要备份附件,附件手动进行备份,看看是否还会报错

tf001 发表于 2023-1-30 09:57:28

论坛管理员 发表于 2023-1-30 09:56
猜测可能是您备份时附件过大导致的内存不足,您可以备份时不要备份附件,附件手动进行备份,看看是否还会报 ...

请问如何选择备份的时候不带上附件呀

论坛管理员 发表于 2023-1-30 10:03:49



修改config下的dumpRestoreData.json文件,后重启

tf001 发表于 2023-1-30 10:35:18

论坛管理员 发表于 2023-1-30 10:03
修改config下的dumpRestoreData.json文件,后重启

谢谢管理员

论坛管理员 发表于 2023-1-31 09:34:34

不客气:)
页: [1]
查看完整版本: 数据库备份时报错(java内存不足)导致无法生成catalog.json