서버 운영/워드프레스(Wordpress)

워드프레스(Wordpress) 백업

씨실과 날실 2019. 3. 9. 12:00



[작업환경]

가상머신 : VirtualBox 6.0

OS : Ubuntu 18.04.2

Apache2 : Apache/2.4.29 (Ubuntu)

PHP7 : PHP 7.3.2-0ubuntu0.18.04.1

MariaDB : mysql  Ver 15.1 Distrib 10.3.12-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

phpMyAdmin : phpMyAdmin 4.6.6deb5

워드프레스가 영문판은 이미 5.1로 업그레이드되었습니다. 그러나 이 글을 쓰는 3월 9일 현재 한글판은 아직 5.0.3대에 머물고 있습니다.

워드프레스 5.1 한글판이 출시되어 워드프레스 업그레이드 연재를 하기에 앞서 백업에 대해 다루고자 합니다.

백업은 디렉토리 및 파일 백업과 DB 백업으로 구성됩니다.

파일 및 디렉토리 백업

워드프레스는 다음과 같은 내용들로 구성되어 있습니다.

WordPress Core 설치

WordPress 플러그인

WordPress 테마

이미지 및 파일

자바 스크립트, PHP 스크립트 및 기타 코드 파일

추가 파일 및 정적 웹 페이지

이 내용들을 모두 백업할 필요가 있습니다. 여러분들의 작업 환경에 따라 WinSCP, FTP Clients, UNIX Shell Skills 등을 이용해 백업합니다.

워드프레스가 설치된 디렉토리 전체를 백업하면 됩니다. 리눅스라면 cp 명령어을 이용해 백업할 수 있고, 리눅스 데스크톱 버전 배포판을 사용한다면 각 리눅스 별 파일 관리 프로그램을 사용하면 되며(우분투의 경우 노틸러스Nautilus) 삼바(Samba)를 사용한다면 윈도 파일 탐색기를 이용해 디렉토리와 파일들을 백업할 수 있습니다.

디렉토리 및 파일 백업에 대한 설명은 이미 많이 다루었으므로 자세한 설명은 생략하도록 하겠습니다. 단, 관련 링크를 걸어드리니 참고하시기 바랍니다.

DB 백업

워드프레스는 파일과 디렉토리 백업 뿐만 아니라 데이터베이스도 같이 백업해야 합니다. 저는 MariaDB를 기준으로 설명해드리며, MySQL도 큰 차이가 없으므로 이 글을 참고하셔도 무방합니다.

phpMyAdmin 이용

phpMyAdmin을 이용하면 초보자도 손쉽게 백업할 수 있습니다.

간단한 백업과 사용자 정의 백업을 안내해드리도록 하겠습니다.

간단한 백업

phpMyAdmin에 접속하여 워드프레스의 DB에 들어갑니다. 그러면 위 그림처럼 나옵니다. 이 상태에서 상단의 내보내기를 눌러줍니다.

만약 우분투18.04 저장소를 통해 phpMyAdmin을 설치한 경우 버전이 phpMyAdmin 4.6.6deb5인데 이 버전은 버그가 있습니다.

그래서 내려받기 등을 이용하면 아래와 같이 오류를 일으킵니다.

이 오류는 phpMyAdmin 4.6.6deb5의 사소한 버그로 모두 무시하고 진행하셔도 큰 문제는 없습니다.

위 그림이 기본값입니다. 기본값 상태에서 실행 버튼을 누르면 위 그림처럼 창이 뜹니다. 파일 저장을 선택하고 활성화되는 확인 버튼을 눌러주시면 다운이 됩니다.

사용자 정의 백업

형식 / 테이블

내보내기 방법에서 커스첨을 선택하시면 아래에 형식, 테이블 등 각각의 섹션별로 설정할 수 있도록 항목이 나옵니다.

형식과 테이블은 그대로 놔두시기 바랍니다.

출력

나머지는 기본값으로 놔두시고 압축만 자신이 원하는 형태로 선택해주시면 됩니다.

형식 특정 옵션

위 그림처럼 설정해줍니다.

객체 생성 옵션

역시 위 그림처럼 설정해줍니다.

데이터 생성 옵션

역시 위 그림처럼 설정해주시고 실행 버튼을 눌러주시편 DB 백업 파일을 다운받을 수 있습니다.

터미널 이용

이번에는 터미널을 이용해 DB를 백업해 봅시다.

기본 백업

study@study-VirtualBox:~$ cd ~/다운로드
study@study-VirtualBox:~/다운로드$ mysqldump -u root -p wp > wp_db_all_backup01.sql
Enter password: 
study@study-VirtualBox:~/다운로드$ 
> 표시 다음에 백업 파일 이름을 적어주시면 됩니다.

정합성 보장 백업

study@study-VirtualBox:~$ cd ~/다운로드
study@study-VirtualBox:~/다운로드$ mysqldump  --single-transaction --databases wp -h localhost -u root -p > wp_db_all_backup02.sql
Enter password: 
study@study-VirtualBox:~/다운로드$

--single-transaction 옵션은 InnoDB인 경우 사용할 수 있는 옵션으로, 테이블 잠금 없이 일관성을 유지한 채 덤프할 수 있도록 해줍니다. 속도는 기본 백업보다 느리지만 DB 덤프 과정 중 생기는 변화 내용을 추가할 수 있어 정합성을 보장하는 백업입니다. 따라서 가능하면 두번째 백업을 추천합니다.

기본 백업과 --single-transaction 옵션 백업은 내용면에서는 차이가 전혀 없으며 단지 아래와 같은 내용이 추가됩니다.

-- Current Database: `wp`
--

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `wp` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;

USE `wp`;

--

참고로 /*!nnnnn ~*/는 MySQL 버전이 nnnnn이고 조건이 ~인 경우 지정된 내용을 실행한다는 의미입니다.

--databases 옵션은 여러 DB를 백업할 때 씁니다. 백업할 DB명을 wp01 wp02 이런식으로 적어주시면 됩니다.


백업 파일 압축

덤프한 SQL 파일을 .bz2로 압축

study@study-VirtualBox:~/다운로드$ bzip2 wp_db_all_backup2.sql

위 명령대호 압축하면 기존 원본은 지워지고 압축 파일만 남습니다.

백업 압축

.bz2 파일로 압축 백업

study@study-VirtualBox:~/다운로드$ mysqldump  --single-transaction --databases wp -h localhost -u root -p | bzip2 -c > wp_db_all_backup04.sql.gz

bzip2 -c는 파일을 압축하거나 풀 때 표준출력으로 보냅니다.

.gz 파일로 압축 백업

study@study-VirtualBox:~/다운로드$ mysqldump  --single-transaction --databases wp -h localhost -u root -p | gzip > wp_db_all_backup04.sql.gz

확장자별 크기 비교

기본 백업 : wp_db_all_backup01.sql 904.3 kB

정합성 보장 백업 : wp_db_all_backup02.sql 904.4 kB

.bz2 압축 : wp_db_all_backup03.sql.bz2 107.2 kB

.gz 압축 : wp_db_all_backup04.sql.gz 217.4 kB

기타

백업 파일 내 DB명 변경

SQL 파일을 vi로 열어 아래의 명령을 입력해주면 됩니다.

단, 반드시 기존 DB명이 결코 흔한 DB명이어서는 안됩니다. 흔한 것이라면 DB명이 아닌 부분까지 같이 변경되어 내용이 망가지기 때문입니다.

작업 하기 전 백업은 필수 입니다.

%s/기존_DB명/바꿀_DB명/g

예시

%s/wp/wp_backup/g

바꾼 후 DB를 복원하면 phpMyAdmin에서 다음과 같이 DB명이 아래와 같이 바뀐 것을 볼 수 있습니다.