운영중인 MariaDB를 수정해야해서, 혹시 모른 상황에 대비해 MariaDB를 백업하기로 했다.
현재 상황) EC2에서 MariaDB 컨테이너를 올려서 사용 중.
인터넷에 검색해보니
docker exec [MariaDB 컨테이너 이름] /usr/bin/mysqldump -u [데이터베이스 유저 이름] -p --all-databases > [백업할 파일명]
을 하라고 했는데 백업이 잘 안됐다.
OCI runtime exec failed: exec failed: unable to start container process: exec: "/usr/bin/mysqldump": stat /usr/bin/mysqldump: no such file or directory: unknown
mysqldump가 없다는 결과만 나왔다.
그래서 컨테이너에서 들어가서 살펴보니 /usr/bin 위치에 mysqldump 대신 mariadb-dump라는 애가 보였다!
mysqldump 대신 mariadb-dump를 사용하면 될 것 같았다. (그리고 정말 됐다!)
먼저 백업할 MariaDB 컨테이너에 들어간다.
docker exec -it [MariaDB 컨테이너 이름] /bin/bash
컨테이너 안에서 아래 명령어를 실행하면 백업 파일이 컨테이너 안에 생성된다.
mariadb-dump -u [데이터베이스 유저 이름] -p --all-databases > [백업할 파일명]
# mariadb-dump -u [유저 이름] -p --all-databases > release-backup-all.sql
파일이 잘 생성된 모습이다!
백업 파일이 잘 생성되었으면 exit 명령어를 쳐 컨테이너에서 빠져나온다.
이제 컨테이너 안에 생성된 파일을 호스트로 옮겨주면 된다.
docker cp [MariaDB 컨테이너 이름]:[컨테이너 안 백업 파일 경로] [호스트 안 파일 경로]
# docker cp [MariaDB 컨테이너 이름]:/release-backup-all.sql ~/release-backup-all.sql
명령어를 치면 이와 같이 성공했다는 메세지가 뜨며 파일이 호스트 안에 복사된다.
cat release-backup-all.sql로 파일을 살펴보면
잘 백업된 것을 볼 수 있다. DB 백업 끝!!
'ETC' 카테고리의 다른 글
깃허브 블로그 만들고 hugo 테마 적용하기 (github.io / PaperMod 테마) (1) | 2023.07.09 |
---|---|
[IntelliJ] Java 11 설치 + Java 8 쓰다가 Java 11 쓰기 (1) | 2023.05.10 |
[JavaScript] DB에 저장된 값 개행해서 출력하기 (0) | 2023.05.01 |