Search
Duplicate

명령어

문서번호 : 11-302071

1. 백업(Backup)

데이터베이스를 백업하는 명령어입니다. db 세션 접속후 실행합니다.
BACKUP [DATABASE] <database_name> [WITH { INIT | DIFFERENTIAL | SPLIT PARTITIONS [BY 2] }] TO "backup_path" [(OPTION resource_pool = resource_pool_name)]
Bash
복사
database_name
SingleStore 데이터베이스 이름입니다.
resource_pool_name
백업 작업이 실행되는 리소스 풀의 이름으로, 선택 사항입니다.
WITH { INIT | DIFFERENTIAL }
해당 절을 사용하여 증분 백업을 수행합니다. 이 절을 지정하지 않으면 전체 백업이 수행됩니다.
WITH {SPLIT PARTITIONS [BY 2]}
해당 절을 사용하여 오프라인 방식으로 데이터베이스의 파티션 수를 두 배로 늘립니다. 자세한 내용은 파티션 분할 항목을 참조하십시오.
backup_path
백업 파일이 저장될 경로이며, 각 노드의 memsqld 프로세스가 액세스할 수 있어야 합니다. backup_path가 상대경로일 경우 엔진변수 datadir에 설정된 디렉토리에서의 상대경로이며, 이 경로는 재정의 할 수 있습니다.
[정보]
이 명령은 MA 노드 또는 CA 노드에서 실행할 수 있으며, 백업 시 모든 노드 가 백업 파일이 저장되는 대상 서버에 쓰기 권한이 있어야 합니다.
이 명령은 데이터베이스에 대한 일관된 스냅샷을 Disk 에 기록합니다. 즉, 백업은 BACKUP DATABASE 작업이 시작될 당시 데이터베이스의 데이터 (모든 commit 된 트랜잭션)를 저장합니다. 데이터베이스의 참조 테이블이 포함된 백업 파일은 MA 노드에 저장되며, 백업 파일들은 Leaf 노드에도 저장됩니다.
이 명령은 온라인 작업이기 때문에 백업이 진행되는 동안 쓰기가 계속 실행됩니다. BACKUP DATABASE 가 시작된 후 실행된 쓰기는 저장된 백업에 반영되지 않습니다.
BACKUP DATABASE 작업을 실행하려면 데이터베이스의 모든 파티션이 온라인 또는 복제 상태여야 합니다. 백업 파일은 mysqldump 와 다르게 클라이언트가 아닌 서버에 생성됩니다.
BACKUP DATABASE 를 시작하려면 Aggregator는 클러스터에서 새 쿼리가 실행되지 않도록 잠시 차단해야 하지만 일단 BACKUP DATABASE 작업이 시작되면 클러스터에 대해 정상적으로 쿼리를 실행 할 수 있습니다. 작업이 실행될 때 장시간 실행 중인 쓰기 쿼리가 있는 경우 해당 쿼리가 완료될 때까지 기다립니다.
시스템 데이터베이스의 백업 은 만들 수 없습니다.
기본 데이터베이스가 복제되는 보조 클러스터의 데이터베이스와 같이 원격 데이터베이스는 이 명령을 사용하여 백업할 수 없습니다.
로컬 백업이 이루어지면 백업 파일이 SingleStore DB 의 MA 노드 및 Leaf 노드에 저장됩니다.
로컬 백업보다 네트워크 드라이브에 백업하는 것이 좋습니다. 그 이유는 SingleStore DB 노드에 로컬로 저장된 백업 파일이 손상되거나 손실되면 전체 백업을 복원할 수 없기 때문입니다.
증분 백업은 모든 노드가 같은 경로로 공유하는 파일 시스템이어야 합니다.
증분 백업에는 Columnstore 테이블에 대한 증분 데이터만 포함됩니다. Rowstore 테이블의 경우 증분 백업에는 증분 데이터 대신 Rowstore 데이터의 전체 사본이 포함됩니다.

2. 복원(Restore)

백업된 바이너리 파일로 데이터베이스를 복원하는 명령어입니다. db 세션 접속 후 실행합니다.
RESTORE [DATABASE] <database_name> FROM "backup_path" [WITH FILE incr_backup_id] [sync_options] [(OPTION resource_pool = resource_pool_name)] sync_options: WITH {SYNC | ASYNC} DURABILITY | WITH {SYNC | ASYNC} REPLICATION | WITH {SYNC | ASYNC} DURABILITY {SYNC | ASYNC} REPLICATION
Bash
복사
database_name
복원할 SingleStore DB 데이터베이스입니다. 이 데이터베이스에는 백업의 원본 클러스터와 동일한 수의 파티션이나 Leaf가 필요하지 않습니다. 이 데이터베이스가 네트워크 파일 시스템을 사용하는 경우 중복 수준(redundancy level)이 다를 수 있습니다.
resource_pool_name
복원 작업이 실행되는 리소스 풀의 이름으로 선택 사항입니다.
WITH FILE incr_backup_id
할당된 incr_backup_id로 증분 백업을 복원합니다.
WITH {SYNC | ASYNC} REPLICATION
해당 절을 사용하여 HA가 동기식 또는 비동기식으로 수행되는지 여부를 데이터베이스 복원 후 확인할 수 있습니다. 트랜잭션 commit이 클라이언트 응용프로그램에 승인되기 전에 Master 파티션의 동기식 복제가 모든 복제본에서 완료됩니다. 해당 옵션을 지정하지 않은 경우 backup_path에 지정된 데이터베이스의 복제 설정이 사용됩니다.
WITH {SYNC | ASYNC} DURABILITY
해당 절을 사용하여 데이터베이스 복원 후 DDL 및 DML 명령을 사용하여 만든 인메모리 데이터베이스 업데이트도 동기식 또는 비동기식으로 디스크에 로그에 저장됩니다. 클라이언트 응용 프로그램에 대한 트랜잭션 commit이 승인되기 전에 로그온 디스크에 대한 동기식 업데이트가 완료됩니다. 해당 옵션을 지정하지 않은 경우 backup_path에 지정된 데이터베이스의 내구성 설정이 사용됩니다. DURABILITY는 SYNC로, REPLICATION은 ASYNC로 동시에 지정할 수 없습니다.
backup_path
백업 파일이 저장된 경로이며, 각 노드의 memsqld 프로세스가 액세스할 수 있어야 합니다. backup_path가 상대경로일 경우 엔진변수 datadir에 설정된 디렉토리에서의 상대경로이며, 이 경로는 재정의할 수 있습니다.
[정보]
이 명령은 MA 노드에서 실행해야 합니다.
이 명령은 SingleStore DB 를 Startup 시 데이터베이스 스냅샷을 복구하는 것과 동일한 방식으로 바이너리 백업 파일을 복원 합니다.
복원 작업을 수행하면 해당 데이터베이스가 일시적으로 복구 스냅샷 상태로 전환됩니다. 이 상태에서는 쿼리 할 수 없으며 RESTORE 명령이 완료되면 온라인 상태로 전환됩니다.
복원하는 데이터베이스는 복원하려는 대상 클러스터에 존재하지 않아야 합니다.
5.0 이상의 모든 릴리스 의 전체 백업을 SingleStore 7.8 버전으로 복원할 수 있습니다.

3. 내보내기(Export)

mysqldump 바이너리 명령어를 사용하여 데이터 내보내기를 진행합니다. 사용하려면, mysql-client 패키지를 설치해야 합니다.
mysqldump -h 127.0.0.1 -u root -P 3306 [<db_name> | --all-databases] > <file_name>.sql
Bash
복사
보다 자세한 절차는 [데이터 내보내기 (Export)] 페이지를 참고 하시기 바랍니다.
일자
작성자
비고
2022.5.20
min