查看: 1804|回复: 5

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

升级   59.33%

9

主题

21

帖子

139

积分

注册会员

Rank: 2

积分
139
发表于 2023-1-29 16:08:13 | 显示全部楼层 |阅读模式
使用ctl -dd功能进行数据的导出备份,在导出的过程中出现报错,导致备份的数据不完整。
看报错内容是内存不足导致了出错。



[Java] 纯文本查看 复制代码
dump data(204/205): com.x.bbs.entity.BBSVoteOption, count: 0.
2023-01-29 15:58:45.032 [pool-37-thread-9] 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) ~[ftpserver-core-1.1.1-SNAPSHOT.jar:1.1.1-SNAPSHOT]
        at org.apache.ftpserver.impl.IODataConnection.transferToClient(IODataConnection.java:161) ~[ftpserver-core-1.1.1-SNAPSHOT.jar:1.1.1-SNAPSHOT]
        at org.apache.ftpserver.command.impl.RETR.execute(RETR.java:169) ~[ftpserver-core-1.1.1-SNAPSHOT.jar:1.1.1-SNAPSHOT]
        at org.apache.ftpserver.impl.DefaultFtpHandler.messageReceived(DefaultFtpHandler.java:211) ~[ftpserver-core-1.1.1-SNAPSHOT.jar:1.1.1-SNAPSHOT]
        at org.apache.ftpserver.listener.nio.FtpHandlerAdapter.messageReceived(FtpHandlerAdapter.java:62) ~[ftpserver-core-1.1.1-SNAPSHOT.jar:1.1.1-SNAPSHOT]
        at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:858) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:542) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:48) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:947) ~[mina-core-2.0.16.jar:?]
        at org.apache.ftpserver.listener.nio.FtpLoggingFilter.messageReceived(FtpLoggingFilter.java:85) ~[ftpserver-core-1.1.1-SNAPSHOT.jar:1.1.1-SNAPSHOT]
        at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:542) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:48) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:947) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:74) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.filter.logging.MdcInjectionFilter.filter(MdcInjectionFilter.java:135) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.filter.util.CommonEventFilter.messageReceived(CommonEventFilter.java:70) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:542) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:48) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:947) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:398) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:234) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:542) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1300(DefaultIoFilterChain.java:48) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:947) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:74) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.core.session.IoEvent.run(IoEvent.java:63) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:770) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:762) ~[mina-core-2.0.16.jar:?]
        at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:704) ~[mina-core-2.0.16.jar:?]
        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)


回复

使用道具 举报

升级   100%

138

主题

1万

帖子

3万

积分

超级版主

Rank: 8Rank: 8

积分
36598
发表于 2023-1-30 09:56:25 | 显示全部楼层
猜测可能是您备份时附件过大导致的内存不足,您可以备份时不要备份附件,附件手动进行备份,看看是否还会报错
回复

使用道具 举报

升级   59.33%

9

主题

21

帖子

139

积分

注册会员

Rank: 2

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

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

使用道具 举报

升级   100%

138

主题

1万

帖子

3万

积分

超级版主

Rank: 8Rank: 8

积分
36598
发表于 2023-1-30 10:03:49 | 显示全部楼层


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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

升级   59.33%

9

主题

21

帖子

139

积分

注册会员

Rank: 2

积分
139
发表于 2023-1-30 10:35:18 | 显示全部楼层
论坛管理员 发表于 2023-1-30 10:03
修改config下的dumpRestoreData.json文件,后重启

谢谢管理员
回复

使用道具 举报

升级   100%

138

主题

1万

帖子

3万

积分

超级版主

Rank: 8Rank: 8

积分
36598
发表于 2023-1-31 09:34:34 | 显示全部楼层
不客气
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表
viewthread