Manual:DumpBackup.php

Category:MediaWiki code#DumpBackup.php

Details

dumpBackup.php file creates an XML dump for export or backup. XML dumps contain the content of the wiki (wiki pages with all their revisions), without the site-related data. DumpBackup.php does not create a full backup of the wiki database, the dump does not contain user accounts, images, deleted revisions, etc.[1] Once the dump is completed, you can import the XML dump.

Examples

General examples

You must choose a name for the data dump.

For example, with this command, you are saving the revision history of all pages (--full) into a file named dump.xml:

php dumpBackup.php --full > pagedump.xml

You can also include the uploaded files by doing:

php dumpBackup.php --full --include-files --uploads > page-and-filedump.xml
For more details on this dump.xml example, see Detailed example below.

You can restrict the data dump to one namespace. In this example, there are only templates with their current revision:

php dumpBackup.php --current --quiet --filter=namespace:10 > templates.xml

or templates with all of their revisions:

php dumpBackup.php --full --quiet --filter=namespace:10 > templates.xml

To include multiple namespaces with their current revision:

php dumpBackup.php --current --quiet --filter=namespace:10,11 > templates_plus_template_talk.xml

To also include files when filtering by certain namespaces:

php dumpBackup.php --current --quiet --filter=namespace:0,1,6 --include-files --uploads > main_plus_talk_plus_files.xml

Example usage of a plugin:

php dumpBackup.php \
  --plugin=AbstractFilter:extensions/ActiveAbstract/AbstractFilter.php \
  --current \
  --output=gzip:/dumps/abstract.xml.gz \
  --filter=namespace:NS_MAIN \
  --filter=noredirect \
  --filter=abstract \
  --quiet

or

php dumpBackup.php \
  --plugin=MathMLFilter:../extensions/MathSearch/maintenance/MathMLFilter.php \
  --current \
  --filter=namespace:NS_MAIN \
  --filter=mathml \
  --quiet

The --stub option can be used with dumpTextPass.php.

To --include-files:

php dumpBackup.php \
  --full \
  --include-files \
  --uploads \
  --output=gzip:/dumps/abstract.xml.gz \
  --quiet

The --uploads option must also be used. Otherwise, no files will be included.

Detailed example

In this example Green text is text you type in.

  1. Redirect to the maintenance folder using the cd command. The location of your maintenance folder will vary from this example.
  1. Type in php dumpBackup.php --full > /var/tmp/dump.xml and press enter. A long list of code is created, similar to the example below.

user@server:/$ cd /var/www/html/wiki/w/maintenance

user@server:/var/www/html/wiki/w/maintenance$ php dumpBackup.php --full > /var/tmp/dump.xml

2014-08-15 09:54:08: my_wiki-finddcjobs (ID 23578) 0 pages (0.0|0.0/sec all|curr), 100 revs (404.7|404.7/sec all|curr), ETA 2014-08-15 09:54:11 [max 1143]

2014-08-15 09:54:08: my_wiki-finddcjobs (ID 23578) 0 pages (0.0|0.0/sec all|curr), 200 revs (499.7|652.8/sec all|curr), ETA 2014-08-15 09:54:10 [max 1143]

2014-08-15 09:54:08: my_wiki-finddcjobs (ID 23578) 10 pages (19.2|83.8/sec all|curr), 300 revs (577.4|838.3/sec all|curr), ETA 2014-08-15 09:54:10 [max 1143]

2014-08-15 09:54:08: my_wiki-finddcjobs (ID 23578) 17 pages (24.1|91.4/sec all|curr), 400 revs (567.0|537.9/sec all|curr), ETA 2014-08-15 09:54:10 [max 1143]

2014-08-15 09:54:09: my_wiki-finddcjobs (ID 23578) 18 pages (15.6|40.2/sec all|curr), 500 revs (433.4|223.1/sec all|curr), ETA 2014-08-15 09:54:10 [max 1143]

2014-08-15 09:54:09: my_wiki-finddcjobs (ID 23578) 23 pages (15.4|66.8/sec all|curr), 600 revs (400.6|290.5/sec all|curr), ETA 2014-08-15 09:54:11 [max 1143]

2014-08-15 09:54:09: my_wiki-finddcjobs (ID 23578) 59 pages (36.0|412.4/sec all|curr), 700 revs (426.6|699.0/sec all|curr), ETA 2014-08-15 09:54:10 [max 1143]

2014-08-15 09:54:09: my_wiki-finddcjobs (ID 23578) 62 pages (36.2|856.3/sec all|curr), 800 revs (466.9|1381.2/sec all|curr), ETA 2014-08-15 09:54:10 [max 1143]

2014-08-15 09:54:10: my_wiki-finddcjobs (ID 23578) 89 pages (48.8|798.3/sec all|curr), 900 revs (493.2|896.9/sec all|curr), ETA 2014-08-15 09:54:10 [max 1143]

2014-08-15 09:54:10: my_wiki-finddcjobs (ID 23578) 120 pages (62.4|1224.2/sec all|curr), 1000 revs (520.1|1020.2/sec all|curr), ETA 2014-08-15 09:54:10 [max 1143]

2014-08-15 09:54:10: my_wiki-finddcjobs (ID 23578) 124 pages (59.0|697.5/sec all|curr), 1100 revs (523.7|562.5/sec all|curr), ETA 2014-08-15 09:54:10 [max 1143]

user@server:/var/www/html/wiki/w/maintenance$

The new xml file will be created in the maintenance folder (you may need to refresh your SCP to see the xml file).

Options

As of MediaWiki 1.43.x:

$ php maintenance/run.php dumpBackup --help

This script dumps the wiki page or logging database into an
XML interchange wrapper format for export or backup.

XML output is sent to stdout; progress reports are sent to stderr.

WARNING: this is not a full database dump! It is merely for public export
         of your wiki. For full backup, see our online help at:
         https://www.mediawiki.org/wiki/Backup

Usage: php maintenance/run.php dumpBackup [OPTION]...

Script runner options:
    --conf <CONF>: Location of LocalSettings.php, if not default
    --globals: Output globals at the end of processing for debugging
    --help (-h): Display this help message
    --memory-limit <MEMORY-LIMIT>: Set a specific memory limit for the
        script, "max" for no limit or "default" to avoid changing it
    --profiler <PROFILER>: Profiler output format (usually "text")
    --quiet (-q): Whether to suppress non-error output
    --server <SERVER>: The protocol and server name to use in URLs, e.g.
        https://en.wikipedia.org. This is sometimes necessary because server
        name detection may fail in command line scripts.
    --wiki <WIKI>: For specifying the wiki ID

Common options:
    --dbgroupdefault <DBGROUPDEFAULT>: The default DB group to use.
    --dbpass <DBPASS>: The password to use for this script
    --dbuser <DBUSER>: The DB user to use for this script

Script specific options:
    --7ziplevel <7ZIPLEVEL>: 7zip compression level for all 7zip
        outputs. Used for -mx option to 7za command.
    --current: Dump only the latest revision of every page.
    --end <END>: Stop before page_id or log_id n (exclusive)
    --filter <FILTER>: Add a filter on an output branch. Specify as
        <type>[:<options>]. <types>s: latest, notalk, namespace
    --full: Dump all revisions of every page
    --include-files: Include files within the XML stream
    --logs: Dump all log events
    --namespaces: Limit to this comma-separated list of namespace
        numbers
    --orderrevs: Dump revisions in ascending revision order (implies
        dump of a range of pages)
    --output (-o) <OUTPUT (-O)>: Begin a filtered output stream; Specify
        as <type>:<file>. <type>s: file, gzip, bzip2, 7zip, dbzip2, lbzip2
    --pagelist <PAGELIST>: Dump only pages included in the file
    --plugin <PLUGIN>: Load a dump plugin class. Specify as
        <class>[:<file>].
    --report <REPORT>: Report position and speed after every n pages
        processed. Default: 100.
    --revend <REVEND>: Stop before rev_id n (exclusive)
    --revrange: Dump range of revisions specified by revstart and revend
        parameters
    --revstart <REVSTART>: Start from rev_id
    --schema-version <SCHEMA-VERSION>: Schema version to use for output.
        Default: 0.11
    --skip-footer: Don't output the </mediawiki> footer
    --skip-header: Don't output the <mediawiki> header
    --stable: Dump stable versions of pages
    --start <START>: Start from page_id or log_id
    --stub: Don't perform old_text lookups; for 2-pass dump
    --uploads: Include upload records without files

This script connects to the database using the username and password defined by $wgDBadminuser and $wgDBadminpassword, which are normally set in LocalSettings.php. Usually $wgDBadminuser is a user with more privileges than the one in $wgDBuser, but for running dumpBackup.php no extra privileges are required, so the usernames and passwords may be the same. If the variables are not set, dumpBackup.php will fail when trying to connect to the database:

$ php dumpBackup.php --full
DB connection error: Unknown error

Notes

The XML file is sent to standard output (stdout); progress reports are sent to standard error (stderr). These are the default output and the output device for errors. When you call the script from the shell, then both outputs should by default be sent to the shell, meaning: You should see "informational" output and errors directly on screen.

Error messages

If you are not in the correct folder, you will receive this message:

No input file specified.

The dumpBackup script says "Warning: Division by zero in [DIRECTORY]/maintenance/backup.inc" when the parameter after "--report" evaluates as 0 or not-a-number. The fix is to run dumpBackup without the "--report" option; then dumpBackup will print a status line every 100 pages processed.

  • $wgRevisionCacheExpiry should be set to 0, to avoid inserting all revisions into the object cache. Most of them won't benefit from being stored in the cache because your readers normally won't view random old revisions of pages on your wiki.

See also

References

  1. DumpBackup.php creates an XML interchange wrapper.
Category:Maintenance scripts#DumpBackup.php Category:Import/Export
Category:Import/Export Category:Maintenance scripts Category:MediaWiki code