日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

如何从Confluence数据库手动删除陈旧草稿

發布時間:2023/12/15 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何从Confluence数据库手动删除陈旧草稿 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如果您的Confluence數據庫存儲了大量過時草稿,則協作編輯可能需要很長時間甚至無法啟用。查看下面的錯誤了解更多詳情:

  • CONFSERVER-55745?-?如果數據庫?關閉時存在大量陳舊的草稿,則協作編輯需要花費不可行的時間

診斷

診斷1

要在數據庫中標識此狀態下的草稿數,請運行以下查詢:

SELECT d.contentid, d.title, d.prevver, d.lastmoddate, c.lastmoddate FROM CONTENT d JOIN CONTENT cON d.prevver = c.contentid WHERE d.content_status = 'draft'AND d.prevver IS NOT NULLAND c.lastmoddate > d.lastmoddate;

如果它導致成千上萬的草稿,請繼續下面的解決方案。

診斷2

在??atlassian-confluence.log嘗試啟用協同編輯的時候拋出這個堆棧跟蹤:

2018-07-05 22:26:37,795 ERROR [Long running task: EnableTask] [plugins.synchrony.tasks.AbstractConfigLongRunningTask] runInternal An error occurred when running a Synchrony ConfigLongRunningTask-- url: /rest/synchrony-interop/enable | referer: http://localhost:8090/admin/confluence-collaborative-editor-plugin/configure.action | traceId: d0e2ba5342874779 | userName: admin org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statementat org.springframework.orm.hibernate5.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:241)at org.springframework.orm.hibernate5.HibernateTemplate.doExecute(HibernateTemplate.java:366)at org.springframework.orm.hibernate5.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:326)at com.atlassian.confluence.core.persistence.hibernate.HibernateObjectDao.findNamedQueryStringParams(HibernateObjectDao.java:444)at com.atlassian.confluence.core.persistence.hibernate.HibernateObjectDao.findNamedQueryStringParam(HibernateObjectDao.java:320)at com.atlassian.confluence.pages.persistence.dao.hibernate.AbstractHibernateAttachmentDao.getLatestVersionsOfAttachmentsWithAnyStatus(AbstractHibernateAttachmentDao.java:134)at com.atlassian.confluence.pages.attachments.CachingAttachmentDao.getLatestVersionsOfAttachmentsWithAnyStatus(CachingAttachmentDao.java:141)at com.atlassian.confluence.pages.DefaultAttachmentManager.getLatestVersionsOfAttachmentsWithAnyStatus(DefaultAttachmentManager.java:288)at com.atlassian.confluence.pages.DelegatorAttachmentManager.getLatestVersionsOfAttachmentsWithAnyStatus(DelegatorAttachmentManager.java:75)at com.atlassian.confluence.pages.CachingAttachmentManager.getLatestVersionsOfAttachmentsWithAnyStatus(CachingAttachmentManager.java:67)at sun.reflect.GeneratedMethodAccessor2351.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:497)at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)at com.sun.proxy.$Proxy58.getLatestVersionsOfAttachmentsWithAnyStatus(Unknown Source)at com.atlassian.confluence.core.DefaultContentEntityManager.removeContentEntity(DefaultContentEntityManager.java:213)at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)at com.atlassian.confluence.pages.DefaultPageManager.lambda$removeStaleSharedDrafts$10(DefaultPageManager.java:766)at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)at com.atlassian.confluence.pages.DefaultPageManager.removeStaleSharedDrafts(DefaultPageManager.java:764)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:497)at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)at com.atlassian.spring.interceptors.SpringProfilingInterceptor.invoke(SpringProfilingInterceptor.java:16)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)at com.atlassian.confluence.util.profiling.ConfluenceMonitoringMethodInterceptor.invoke(ConfluenceMonitoringMethodInterceptor.java:34)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)at com.sun.proxy.$Proxy107.removeStaleSharedDrafts(Unknown Source)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:497)at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)at com.sun.proxy.$Proxy258.removeStaleSharedDrafts(Unknown Source)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:497)at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)at com.sun.proxy.$Proxy2280.removeStaleSharedDrafts(Unknown Source)at com.atlassian.confluence.plugins.synchrony.tasks.EnableTask.execute(EnableTask.java:53)at com.atlassian.confluence.plugins.synchrony.tasks.AbstractConfigLongRunningTask.runInternal(AbstractConfigLongRunningTask.java:65)at com.atlassian.confluence.util.longrunning.ConfluenceAbstractLongRunningTask.run(ConfluenceAbstractLongRunningTask.java:26)at com.atlassian.confluence.util.longrunning.ManagedTask.run(ManagedTask.java:52)at com.atlassian.confluence.impl.util.concurrent.ConfluenceExecutors$ThreadLocalContextTaskWrapper.lambda$wrap$1(ConfluenceExecutors.java:90)at com.atlassian.confluence.vcache.VCacheRequestContextOperations.lambda$doInRequestContext$0(VCacheRequestContextOperations.java:50)at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContextInternal(VCacheRequestContextManager.java:87)at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContext(VCacheRequestContextManager.java:71)at com.atlassian.confluence.vcache.VCacheRequestContextOperations.doInRequestContext(VCacheRequestContextOperations.java:49)at com.atlassian.confluence.vcache.VCacheRequestContextOperations.lambda$withRequestContext$2(VCacheRequestContextOperations.java:66)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745) Caused by: org.hibernate.exception.ConstraintViolationException: could not execute statementat org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:112)at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97)at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:208)at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:45)at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3315)at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:3552)at org.hibernate.action.internal.EntityDeleteAction.execute(EntityDeleteAction.java:99)at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:586)at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:460)at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337)at org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:50)at org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1389)at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1474)at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1441)at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1410)at com.atlassian.confluence.core.persistence.hibernate.HibernateObjectDao.lambda$findNamedQueryStringParams$5(HibernateObjectDao.java:468)at org.springframework.orm.hibernate5.HibernateTemplate.doExecute(HibernateTemplate.java:359)... 85 more Caused by: java.sql.SQLException: The DELETE statement conflicted with the REFERENCE constraint "FK_NOTIFICATIONS_CONTENT". The conflict occurred in database "CONFLUENCE", table "dbo.NOTIFICATIONS", column 'CONTENTID'.at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:372)at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2988)at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2421)at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:671)at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:613)at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:572)at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeUpdate(JtdsPreparedStatement.java:727)at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:97)at org.apache.tomcat.dbcp.dbcp2.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:97)at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:205)... 99 more

這似乎是由Hibernate啟動自動刷新時表的順序引起的。繼續執行下面的解決方案,手動清除數據庫中的陳舊草稿。

解決方案

  • 停止Confluence(如果運行DC,則為Synchrony)
  • 備份數據庫
  • 運行以下查詢以刪除Stale Draft條目:
  • DELETE FROM NOTIFICATIONS WHERE CONTENTID IN (SELECT d.contentid FROM CONTENT d JOIN CONTENT cON d.prevver = c.contentid WHERE d.content_status = 'draft'AND d.prevver IS NOT NULLAND c.lastmoddate > d.lastmoddate);DELETE FROM CONFANCESTORS WHERE DESCENDENTID IN (SELECT d.contentid FROM CONTENT d JOIN CONTENT cON d.prevver = c.contentid WHERE d.content_status = 'draft'AND d.prevver IS NOT NULLAND c.lastmoddate > d.lastmoddate);DELETE FROM BODYCONTENT WHERE CONTENTID IN (SELECT d.contentid FROM CONTENT d JOIN CONTENT cON d.prevver = c.contentid WHERE d.content_status = 'draft'AND d.prevver IS NOT NULLAND c.lastmoddate > d.lastmoddate);DELETE FROM CONTENTPROPERTIES WHERE CONTENTID IN (SELECT d.contentid FROM CONTENT d JOIN CONTENT cON d.prevver = c.contentid WHERE d.content_status = 'draft'AND d.prevver IS NOT NULLAND c.lastmoddate > d.lastmoddate);DELETE FROM LINKS WHERE CONTENTID IN (SELECT d.contentid FROM CONTENT d JOIN CONTENT cON d.prevver = c.contentid WHERE d.content_status = 'draft'AND d.prevver IS NOT NULLAND c.lastmoddate > d.lastmoddate);DELETE FROM usercontent_relation WHERE targetcontentid IN (SELECT d.contentid FROM CONTENT d JOIN CONTENT cON d.prevver = c.contentid WHERE d.content_status = 'draft'AND d.prevver IS NOT NULLAND c.lastmoddate > d.lastmoddate);DELETE FROM extrnlnks WHERE CONTENTID IN (SELECT d.contentid FROM CONTENT d JOIN CONTENT cON d.prevver = c.contentid WHERE d.content_status = 'draft'AND d.prevver IS NOT NULLAND c.lastmoddate > d.lastmoddate);DELETE FROM likes WHERE CONTENTID IN (SELECT d.contentid FROM CONTENT d JOIN CONTENT cON d.prevver = c.contentid WHERE d.content_status = 'draft'AND d.prevver IS NOT NULLAND c.lastmoddate > d.lastmoddate);DELETE FROM CONTENT WHERE CONTENTID IN (SELECT d.contentid FROM CONTENT d JOIN CONTENT cON d.prevver = c.contentid WHERE d.content_status = 'draft'AND d.prevver IS NOT NULLAND c.lastmoddate > d.lastmoddate);delete from bandana where bandanakey = 'synchrony_collaborative_editor_app_registered'or bandanakey = 'synchrony_collaborative_editor_app_secret'or bandanakey = 'synchrony_collaborative_editor_app_id';
  • 啟動Confluence
  • 轉到Collaborative Editing管理頁面
  • 嘗試將模式更改為ON
  • 轉載于:https://my.oschina.net/dushougudu/blog/3008238

    總結

    以上是生活随笔為你收集整理的如何从Confluence数据库手动删除陈旧草稿的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。