본문 바로가기
미디어위키

Manual dumpBackup.php

by 다움위키 2023. 12. 31.
MediaWiki file: dumpBackup.php
Location: maintenance/
Source code: master1.38.21.37.41.35.7
Classes: DumpBackup

 

미디어위키 데이터베이스 업데이트로 미디어위키 업데이트가 되지 않을 때, 사용해 볼 수 있는 방법입니다.

Details

dumpBackup.php 파일은 내보내기 또는 백업을 위해 XML 덤프를 만듭니다. XML 덤프는, 사이트-관련 데이터없이, (모든 개정을 갖는 위키 페이지) 위키의 컨텐츠를 포함합니다. dumpBackup.php는 위키 데이터베이스의 전체 백업을 생성하지 않으며, 덤프는 사용자 계정, 이미지, 편집 로그 등을 포함하지 않습니다. 한번 덤프가 완료되면, XML 덤프를 가져오기를 할 수 있습니다.

Examples

데이터 덤프에 대해 이름을 선택해야 합니다.

예를 들어 여기서 사용자는 개정 역사의 모든 것 (--full)을 dump.xml라는 이름의 파일에 저장합니다:

php dumpBackup.php --full > dump.xml

이 dump.xml 예제에 대해 보다 자세한 것에 대해, 아래의 자세한 예제를 참조하십시오.


하나의 이름공간으로 데이터 덤프를 제한할 수 있습니다. 이 예제에서, 오직 템플릿을 덤프합니다:

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

여러 이름공간을 포함하기 위해:

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

플럭-인(확장)의 예제 사용법:

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

또는

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

--stub 선택사항은 dumpTextPass.php와 함께 사용될 수 있습니다.

--include-files을 하기 위해:

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

--uploads 선택사항은 역시 사용될 필요가 있습니다. 그렇지 않으면 파일은 포함되지 않을 것입니다.

 

Detailed example

이 예제에서 초록색 텍스트는 키보드로 입력하는 것입니다.

  1. cd 명령을 사용하여 maintenance 폴더로 재지정하십시오. maintenance 폴더의 위치는 이 예제와 다를 수 있습니다.
  2. php dumpBackup.php --full > dump.xml를 입력하고 ↵ Enter를 누르십시오. 아래의 예제와 비슷한, 코드의 긴 목록은 생성됩니다.

새로운 xml 파일이 maintenance 폴더에 생성될 것입니다 (xml 파일을 보기 위해 SCP를 새로 고침해야 할 수 있습니다).

Options

미디어위키 r105912로부터:

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.

Usage: php dumpBackup.php <action> [<options>]
Actions:
  --full      모든 각 페이지의 개정 모두를 덤프.
  --current   모든 각 페이지의 오직 마지막 개정을 덤프.
  --logs      모든 로그 이벤트를 덤프.
  --stable    페이지의 안정 버전? (이건 뭘까요?)
  --pagelist=<file>
			  여기서 <file>은 덤프하려는 기사(페이지) 제목의 목록입니다.
  --revrange  개정의 지정된 영역을 덤프, revstart와 
              revend 선택사항이 필요합니다.
Options:
  --quiet     상태 보고서를 stderr에 덤프하지 않습니다.
  --report=n  모든 각 n 페이지가 처리된 후에 위치 및 속도를 보고합니다.
              (기본값: 100)
  --server=h  MySQL 서버 h로부터 강제 읽기
  --start=n   page_id 또는 log_id n에서 시작합니다.
  --end=n     page_id 또는 log_id n 전에 멈춥니다 (끝점 제외)
  --revstart=n  rev_id n에서 시작하기
  --revend=n    rev_id n 전에 멈춥니다 (끝점 제외)
  --skip-header <mediawiki> 머릿글을 출력하지 않습니다.
  --skip-footer </mediawiki> 바닥글을 출력하지 않습니다.
  --stub      old_text 조회를 수행하지 않습니다; 2-pass 덤프에 대해
  --uploads   파일없이 업로드 레코드를 포함합니다.
  --include-files XML 스트림 안에 파일을 포함합니다.
  --conf=<file>  지정된 구성 파일 (LocalSettings.php)을 사용하기
  --wiki=<wiki>  오직 지정된 <wiki>를 백업하기

Fancy stuff: (동작하나요? 예제 추가를 부탁드립니다.)
  --plugin=<class>[:<file>]   덤프 플럭인 클래스를 로드하기
  --output=<type>:<file>      필터된 출력 스트림을 시작하기;
                              <type>s: file, gzip, bzip2, 7zip
  --filter=<type>[:<options>] 출력 가지에 대해 필터를 추가하기

이 스크립트는 $wgDBadminuser$wgDBadminpassword에 정의된 사용자이름과 암호를 사용하여 데이터베이스에 연결되며, 이것은 정상적으로 LocalSettings.php에 설정되어 있습니다. 비록 AdminSettings.php는 더 이상 사용하지 않을지라도, 그 파일에서 설정된 사용자이름과 암호를 사용할 수 있습니다. 보통 $wgDBadminuser는 $wgDBuser보다 많은 권한을 가진 사용자이지만, dumpBackup.php를 실행에 대해 추가 권한이 요구되지 않으므로, 사용자이름과 암호가 동일할 수 있습니다. 만약 변수가 설정되어 있지 않으면, dumpBackup.php는 데이터베이스에 연결하려고 시도할 때 실패할 것입니다:

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

Notes

XML 파일은 표준 출력 (stdout)으로 보내집니다; 진행 보고서는 표준 오류 (stderr)로 보내집니다. 이것들은 기본 출력과 오류에 대해 출력 장치입니다. 쉘에서 스크립트를 호출할 때, 출력 둘 다는 기본적으로 쉘로 전송되어야 합니다. 즉: 화면에 직접 "정보" 출력과 오류를 볼 수 있어야 합니다.

Error messages

만약 정확한 폴더에 있지 않으면, 다음 메시지를 출력할 것입니다:

No input file specified.

dumpBackup 스크립트는, "--report" 다음의 매개변수가 0 또는 숫자가 아님(not-a-number)으로 평가될 때, "Warning: Division by zero in [DIRECTORY]/maintenance/backup.inc"라고 표시합니다. 해결 방법은 "--report" 선택사항 없이 dumpBackup를 실행하는 것입니다; 그런 다음 dumpBackup는 모든 각 100 페이지를 처리한 후에 상태 줄을 인쇄할 것입니다.

See also