wiki迁移后页面数据未能显示-0.15.0

  • Choerodon平台版本: 0.15.0

  • 遇到问题的执行步骤:
    我们迁移了xwiki的存储:
    1、使用helm按官方文档重新部署了wiki-pvc,并将原来nfs中的wiki目录所有数据拷贝至新的pvc对应目录
    2、按文档重新部署xwiki和wiki-service

  • 文档地址:
    http://v0-15.choerodon.io/zh/docs/installation-configuration/steps/install/parts/choerodon-wiki/

  • 报错日志:
    访问知识管理前端页面,未能显示历史wiki数据

  • 原因分析:
    数据库wiki-service:wiki_space和xwiki:xwikidoc表中均存在相关记录
    使用wiki-scanning-controller//v1/site/scan 同步后未能解决

进入到xwiki的容器中查看一下 容器中 /usr/local/xwiki/data 位置的数据是否正确。

1、查看了xwiki中的/usr/local/xwiki目录是对应NFS存储目录,data下面有storage/xwiki,没有问题
如何判断这里面的数据是正确呢?
2、发现使用admin访问wiki主页时,有如下异常,是否和这个有关系呢:
30-Jul-2019 06:20:22.909 WARNING [http://c7n-wiki.xxx.cn/bin/download/ChoerodonConfig/ChoerodonTheme/Choerodon_favicon.png] org.apache.catalina.connector.Response.setCharacterEncoding The encoding [] is not recognised by the JRE
java.lang.IllegalArgumentException: java.io.UnsupportedEncodingException: The character encoding [] is not supported
at org.apache.coyote.Response.setCharacterEncoding(Response.java:417)
at org.apache.catalina.connector.Response.setCharacterEncoding(Response.java:848)
at org.apache.catalina.connector.ResponseFacade.setCharacterEncoding(ResponseFacade.java:624)
at com.xpn.xwiki.web.XWikiServletResponse.setCharacterEncoding(XWikiServletResponse.java:154)
at com.xpn.xwiki.web.DownloadAction.setCommonHeaders(DownloadAction.java:446)
at com.xpn.xwiki.web.DownloadAction.sendContent(DownloadAction.java:301)
at com.xpn.xwiki.web.DownloadAction.render(DownloadAction.java:183)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:459)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:209)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:112)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:127)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:134)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1468)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.UnsupportedEncodingException: The character encoding [] is not supported
at org.apache.tomcat.util.buf.B2CConverter.getCharsetLower(B2CConverter.java:100)
at org.apache.tomcat.util.buf.B2CConverter.getCharset(B2CConverter.java:76)
at org.apache.coyote.Response.setCharacterEncoding(Response.java:415)
… 54 more

补充一下镜像信息:

kubectl describe po xwiki-7cf758b88b-fxkrv |grep Image:

Image:          registry.cn-shanghai.aliyuncs.com/choerodon/xwiki:10.4-mysql-tomcat-0.15.1

xwiki的存储目录数据还在,但我们查看xwiki数据库,似乎被重置过,怀疑可能是迁移后重启实例时触发执行过/data下的xwiki-release.sql?
1、这个sql什么时候会被触发呢?
2、如果是这个sql脚本重置了,有无办法可以恢复的

你好,wiki安装时是会默认执行初始化sql。

如果数据库不需要进行初始化,可以helm安装时设置--set preJob.initDB=false。会跳过数据库初始化这一步。

这个组件比较特殊,没想到重新安装会重新初始化数据库一次~
我现在被初始化后,还有办法可以修复回来吗:upside_down_face:

建议在文档上增加相关警告描述,提醒用户如果需要重新安装xwiki实例,需要加上:–set preJob.initDB=false,否则数据库会被重新初始化,同时重装前做好相关备份

因为wiki的样式功能调整都是保存在数据中的,所以首次安装需要初始化数据库,初始化我们的修改。
如果你这边备份过数据库,只能用备份恢复了。
我们会在文档上加上警告信息,感谢反馈。