Oops, the mail client bungled my code. You can download it as an
application here:
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(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users