I modified the large export script to support individual spaces. With my
modded version, you can also export to a directory rather than zip
compressing the export (you can then zip the contents of the dir
manually), hopefully skipping the zip compression will save enough ram
to prevent running out of heap space.

You say you have a 1gb database, are there lots of big attachments or
just a ridiculous number of pages? It might be that one attachment is so
big that it breaks the export engine.

How long does it take to run out of memory? If it takes a long time,
then it is probably too much data -> my script might fix it.
If it's immediate, you are probably almost out of ram already. the
HSQLDB database (which comes with the package) shares ram with XWiki,
HSQL also seems to move the entire database to ram so you will need more
than -Xmx1024m
You can specify more memory with Xmx than you actually have physical ram
because it can use swap space.

here is my modified export script, I'll post it to the code zone after I
decide if it needs any more features.






1.1 Large Export

<%

import com.xpn.xwiki.*;
import com.xpn.xwiki.doc.*;
import com.xpn.xwiki.plugin.packaging.*;
import java.util.zip.*;
import com.xpn.xwiki.util.Util;

def getXAR(String filename, XWikiContext context) {
    def request = context.getRequest();
    def export = context.getWiki().getPluginApi("package", context);
    List<String> spaces = request.getParameterMap().get("spaces");
    export.setWithVersions(true);
    export.setAuthorName("XWiki.Admin");
    export.setDescription("");
    export.setLicence("");
    export.setVersion("");
    export.setBackupPack(true);
    export.setName("backup");
    def pack = export.getPackage();
//    pack.addAllWikiDocuments(context);
    ArrayList<String> docNames = new ArrayList<String>();
    for(String space : spaces){
        for(String docName : context.getWiki().getSpaceDocsName(space,
context)){
            pack.add(docName,
com.xpn.xwiki.plugin.packaging.DocumentInfo.ACTION_OVERWRITE, context);
        }
    }
    if(request.dir){
        pack.exportToDir(new File(filename), context);
    }else{
        pack.export(new FileOutputStream(new File(filename)), context);
    }
}

if (request.filename) {
   getXAR(request.filename, context.getContext())
  } else {
%>
<form action="" method="post">
<table border="0">
<tr>
<td>File/directory to write to:</td><td><input type="text"
name="filename" size="60" /></td>
</tr>
</table>
<%
for(String space : xwiki.getSpaces()){
    println(space+"<input type=\"checkbox\" name=\"spaces\"
value=\""+space+"\"/>\n");
}
%>
Don't zip files, output to directory <input type="checkbox" name="dir"/>
<br/>
<input type="submit" name="Export" />
</form>
<%
  }
%>







[Ricardo Rodriguez] Your EPEC Network ICT Team wrote:
> Hi Francisco!
>
> Hernández Cuchí wrote:
>   
>> Hi, 
>>
>> That is not really what I want. My problem is that I have an xwiki 1.7.14 
>> and I wanto to move to a 2.0milestone 2 in another machine. I get a lot of 
>> corrupted xar files (cannot open them with 7zip) because of java memory heap 
>> exception (even if they are spaces of only one page!). So I need a different 
>> way of exporting the data, because if I have 40 spaces, 10 xar files are 
>> corrupted. Even, I wrote my own snippet to get the spaces exported 
>> selectively, but still getting corrupted xar files. So, ¿is it posible to 
>> backup the database and import it in the new installation?
>>   
>>     
> Hopefully I will face a similar workflow in the following weeks, so let 
> see if I am able to help here :-)
>
> As far as I understand, you have to XWiki installations. Each of them on 
> a different box. What you are looking for is to move the whole 1.7.14 
> database to a brand new 2.0m2 in a different box.
>
> If this is what you want and although this not solve the doubts about 
> why do exports get corrupted, you can export the whole XWiki database 
> schema, reimport it in the new database installation (if there is one in 
> the same box where you have installed the new XWiki instance) and 
> provided you have correctly configured username and password in 
> hibernate.cfg.xml file it must work.
>
> The first time the new XWiki instances starts, the required database 
> schema updated will be performed by the system. I've done that severel 
> times in the past without any problem working with MySQL databases. 
> There have been issues related with schema updates in early releases, 
> but I've not read anything about them lately. In fact, it is a similar 
> process to install a new XWiki from the scratch but dealing with an 
> existing database. If XWiki finds a database, it will use it instead of 
> creating a new one.
>
> Of course modifications done to Velocity templates, skins,... not stored 
> in the database must be done separately. Also, as with a regular update, 
> you must be extremely cautious when importing the new default xar file 
> for the new release.
>
> HTH,
>
> Ricardo
>
>   

_______________________________________________
users mailing list
users@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users

Reply via email to