1.6. MariaDB 데이터 백업
MariaDB 데이터베이스에서 데이터를 백업하는 방법은 다음 두 가지가 있습니다.
- 논리 백업
논리적 백업은 데이터를 복원하는 데 필요한 SQL 문으로 구성됩니다. 이 유형의 백업은 일반 텍스트 파일에 정보와 레코드를 내보냅니다.
물리적 백업에 대한 논리적 백업의 주요 장점은 이식성과 유연성입니다. 데이터는 물리적 백업에서는 사용할 수 없는 기타 하드웨어 구성, MariaDB 버전 또는 DBMS(데이터베이스 관리 시스템)에서 복원할 수 있습니다.
논리 백업은
mariadb.service
가 실행 중인 경우에만 수행할 수 있습니다. 논리 백업에는 로그 및 구성 파일이 포함되지 않습니다.- 물리적 백업
물리적 백업은 콘텐츠를 저장하는 파일 및 디렉터리의 사본으로 구성됩니다.
물리적 백업은 논리 백업에 비해 다음과 같은 이점이 있습니다.
- 출력이 더 컴팩트합니다.
- 백업 크기가 작아집니다.
- 백업 및 복원 속도가 빨라집니다.
백업에는 로그 및 구성 파일이 포함됩니다.
물리적 백업은
mariadb.service
가 실행 중이 아닌 경우 수행해야 합니다. 그렇지 않으면 백업 중 변경이 발생하지 않도록 데이터베이스의 모든 테이블이 잠깁니다.
다음 MariaDB 백업 방법 중 하나를 사용하여 MariaDB 데이터베이스에서 데이터를 백업할 수 있습니다.
-
mariadb-dump
를 사용한 논리 백업 -
naabackup 유틸리티를 사용하여
물리적 온라인 백업
- 파일 시스템 백업
- 백업 솔루션으로 복제
1.6.1. mariadb-dump를 사용하여 논리 백업 수행 링크 복사링크가 클립보드에 복사되었습니다!
mariadb-dump
클라이언트는 백업 목적으로 데이터베이스 또는 데이터베이스 컬렉션을 덤프하거나 다른 데이터베이스 서버로 전송하는 데 사용할 수 있는 백업 유틸리티입니다. mariadb-dump
의 출력은 일반적으로 서버 테이블 구조를 다시 생성하거나 데이터 또는 둘 다로 채우는 SQL 문으로 구성됩니다. MariaDB-dump
는 XML 및 구분된 텍스트 형식(예: CSV)을 포함하여 다른 형식으로 파일을 생성할 수도 있습니다.
mariadb-dump
백업을 수행하려면 다음 옵션 중 하나를 사용할 수 있습니다.
- 하나 이상의 선택된 데이터베이스 백업
- 모든 데이터베이스 백업
- 하나의 데이터베이스에서 테이블 하위 집합 백업
프로세스
단일 데이터베이스를 덤프하려면 다음을 실행합니다.
mariadb-dump [options] --databases db_name > backup-file.sql
# mariadb-dump [options] --databases db_name > backup-file.sql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여러 데이터베이스를 한 번에 덤프하려면 다음을 실행합니다.
mariadb-dump [options] --databases db_name1 [db_name2 ...] > backup-file.sql
# mariadb-dump [options] --databases db_name1 [db_name2 ...] > backup-file.sql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 데이터베이스를 덤프하려면 다음을 실행합니다.
mariadb-dump [options] --all-databases > backup-file.sql
# mariadb-dump [options] --all-databases > backup-file.sql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 덤프된 하나 이상의 전체 데이터베이스를 서버로 다시 로드하려면 다음을 실행합니다.
mariadb < backup-file.sql
# mariadb < backup-file.sql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터베이스를 원격 MariaDB 서버에 로드하려면 다음을 실행합니다.
mariadb --host=remote_host < backup-file.sql
# mariadb --host=remote_host < backup-file.sql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 하나의 데이터베이스에서 테이블 서브 세트를 덤프하려면
mariadb-dump
명령 끝에 선택한 테이블 목록을 추가합니다.mariadb-dump [options] db_name [tbl_name ...] > backup-file.sql
# mariadb-dump [options] db_name [tbl_name ...] > backup-file.sql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 하나의 데이터베이스에서 덤프된 테이블의 하위 집합을 로드하려면 다음을 실행합니다.
mariadb db_name < backup-file.sql
# mariadb db_name < backup-file.sql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고db_name 데이터베이스는 이 시점에 있어야 합니다.
mariadb-dump 가 지원하는 옵션 목록을 보려면 다음을 실행합니다.
mariadb-dump --help
$ mariadb-dump --help
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.6.2. mariabackup 유틸리티를 사용하여 물리적 온라인 백업 수행 링크 복사링크가 클립보드에 복사되었습니다!
mariabackup
유틸리티는 Percona XtraBackup 기술을 기반으로 하며 InnoDB, Aria 및 MyISAM 테이블의 물리적 온라인 백업을 수행할 수 있습니다. 유틸리티는 암호화 및 압축 데이터를 포함하는 MariaDB 서버의 전체 백업 기능을 지원합니다.
사전 요구 사항
-
mariadb-backup
패키지는 시스템에 설치되어 있습니다. -
mariabackup
에 백업이 실행되는 사용자의 자격 증명을 제공해야 합니다. 자격 증명은 명령줄 또는 구성 파일을 통해 제공할 수 있습니다. -
mariabackup
사용자는RELOAD
,LOCK CryostatS
및REPLICATION CLIENT
권한이 있어야 합니다.
프로세스
다음 옵션 중 하나를 사용하여 백업을 생성합니다.
명령줄에서 자격 증명을 제공하는 동안 백업을 생성하려면 다음을 입력합니다.
mariabackup --backup --target-dir <backup_directory> --user <backup_user> --password <backup_passwd>
$ mariabackup --backup --target-dir <backup_directory> --user <backup_user> --password <backup_passwd>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow target-dir
옵션은 백업 파일이 저장되는 디렉터리를 정의합니다. 전체 백업을 수행하려면 대상 디렉터리가 비어 있거나 존재하지 않아야 합니다.사용자
및암호
옵션을 사용하면 사용자 이름과 암호를 구성할 수 있습니다.구성 파일에 인증 정보가 설정된 백업을 생성하려면 다음을 수행합니다.
-
/etc/my.cnf.d/
디렉터리에 구성 파일을 만듭니다(예:/etc/my.cnf.d/mariabackup.cnf
). 파일에 다음 내용을 추가합니다.
[mysqld] user=<backup_username> password=<password>
[mysqld] user=<backup_username> password=<password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 백업을 수행합니다.
mariabackup --backup --target-dir <backup_directory>
$ mariabackup --backup --target-dir <backup_directory>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
1.6.3. mariabackup 유틸리티를 사용하여 데이터 복원 링크 복사링크가 클립보드에 복사되었습니다!
mariabackup
유틸리티에서 생성한 MariaDB 백업이 있는 경우 동일한 유틸리티를 사용하여 데이터를 복원할 수 있습니다.
사전 요구 사항
-
mariadb
서비스가 중지되었습니다. - data 디렉터리가 비어 있습니다.
-
mariabackup
사용자는RELOAD
,LOCK CryostatS
및REPLICATION CLIENT
권한이 있어야 합니다.
프로세스
다음 옵션 중 하나를 사용하여 데이터를 복원합니다.
/var/mariadb/backup/
디렉터리의 백업 데이터를 복원하고 원래 백업 파일을 유지하려면 다음을 입력합니다.mariabackup --copy-back --target-dir=/var/mariadb/backup/
$ mariabackup --copy-back --target-dir=/var/mariadb/backup/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /var/mariadb/backup/
디렉터리의 백업 데이터를 복원하고 원래 백업 파일을 제거하려면 다음을 입력합니다.mariabackup --move-back --target-dir=/var/mariadb/backup/
$ mariabackup --move-back --target-dir=/var/mariadb/backup/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
파일 권한을 수정합니다. 예를 들어 파일의 소유권을
mysql
사용자 및 그룹으로 재귀적으로 변경하려면 다음을 입력합니다.chown -R mysql:mysql /var/lib/mysql/
# chown -R mysql:mysql /var/lib/mysql/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터베이스를 복원할 때
mariabackup
은 백업의 파일 및 디렉터리 권한을 유지합니다. 그러나mariabackup
은 데이터베이스를 복원하는 사용자 및 그룹으로 파일을 디스크에 씁니다. 따라서 백업을 복원한 후 MariaDB 서버의 사용자 및 그룹과 일치하도록 데이터 디렉터리의 소유자를 조정해야 합니다.mariadb
서비스를 시작합니다.systemctl start mariadb.service
# systemctl start mariadb.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.6.4. MariaDB 서버에서 파일 시스템 백업 수행 링크 복사링크가 클립보드에 복사되었습니다!
MariaDB 데이터 파일의 파일 시스템 백업을 생성하려면 MariaDB 데이터 디렉터리의 콘텐츠를 백업 위치에 복사합니다.
현재 구성 또는 로그 파일도 백업하려면 다음 절차의 선택적 단계를 사용합니다.
프로세스
mariadb
서비스를 중지합니다.systemctl stop mariadb.service
# systemctl stop mariadb.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터 파일을 복사합니다.
cp -rp /var/lib/mysql/ /backup-location/data/
# cp -rp /var/lib/mysql/ /backup-location/data/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 구성 파일을 복사합니다.
cp -rp /etc/my.cnf /etc/my.cnf.d/ /backup-location/configuration/
# cp -rp /etc/my.cnf /etc/my.cnf.d/ /backup-location/configuration/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 로그 파일을 복사합니다.
cp -p /var/log/mariadb/* /backup-location/logs/
# cp -p /var/log/mariadb/* /backup-location/logs/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mariadb
서비스를 시작합니다.systemctl start mariadb.service
# systemctl start mariadb.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 백업 위치의 백업 데이터를
/var/lib/mysql
디렉토리로 로드할 때mysql:mysql
이/var/lib/mysql
에 있는 모든 데이터의 소유자인지 확인합니다.chown -R mysql:mysql /var/lib/mysql/
# chown -R mysql:mysql /var/lib/mysql/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.6.5. 백업 솔루션으로 복제 링크 복사링크가 클립보드에 복사되었습니다!
소스 서버가 복제본 서버에 복제되는 경우 소스에 영향을 주지 않고 복제본에서 백업을 실행할 수 있습니다. 복제본을 종료하고 복제본에서 데이터를 백업하는 동안 소스가 계속 실행될 수 있습니다.
복제 자체는 충분한 백업 솔루션이 아닙니다. 복제는 하드웨어 장애로부터 소스 서버를 보호하지만 데이터 손실을 방지하지는 않습니다.